Cách để Xóa dữ liệu trùng lặp trong Oracle

Tải về bản PDFTải về bản PDF

Khi làm việc trong Oracle, đôi khi bạn sẽ bắt gặp một số dữ liệu bị trùng lặp. Bạn có thể xóa những dòng dữ liệu trùng lặp này bằng cách nhận dạng và sử dụng RowID hoặc địa chỉ dòng của chúng. Trước khi bắt đầu, bạn nên sao lưu cơ sở dữ liệu phòng trường hợp cần xem lại sau đó.

Phương pháp 1
Phương pháp 1 của 4:

Xác định dữ liệu trùng lặp

Tải về bản PDF
  1. How.com.vn Tiếng Việt: Step 1 Nhận dạng dữ liệu trùng lặp.
    Trong ví dụ này, chúng ta sẽ nhận dạng dữ liệu trùng lặp là tên "Alan". Bạn cần chắc rằng dữ liệu mà cần loại bỏ thực sự bị trùng lặp bằng cách nhập ngôn ngữ truy vấn mang tính cấu trúc SQL (Standard Query Language) bên dưới.
  2. Step 2 Tìm trong cột có tên là "Names".
    Trong ví dụ về cột tên "Names," bạn sẽ thay "column_name" bằng Names.
  3. How.com.vn Tiếng Việt: Step 3 Tìm trong cột khác.
    Nếu bạn muốn xác định dữ liệu trùng lặp trong cột khác, chẳng hạn như tuổi của Alan thay vì tên anh ấy, hãy nhập "Ages" vào vị trí "column_name", những trường hợp khác cũng tương tự.
    select column_name, count(column_name) from table group by column_namehaving count (column_name) > 1;
    Quảng cáo
Phương pháp 2
Phương pháp 2 của 4:

Xóa một dữ liệu trùng lặp

Tải về bản PDF
  1. Step 1 Chọn "name from names".
    Sau "SQL," bạn nhập tiếp "select name from names".
  2. How.com.vn Tiếng Việt: Step 2 Xóa tất cả dòng có tên trùng lặp.
    Sau "SQL," hãy nhập "delete from names where name='Alan';". Lưu ý rằng việc viết hoa rất quan trọng vì điều này sẽ xóa tất cả dòng tên "Alan”. Sau "SQL," bạn nhập "commit" vào.[1]
  3. How.com.vn Tiếng Việt: Step 3 Nhập lại dòng không có dữ liệu trùng lặp.
    Bây giờ sau khi đã xóa tất cả dòng có tên "Alan," bạn có thể chèn lại một tên bằng cách nhập "insert into name values ('Alan');". Sau "SQL," nhập "commit" để tạo dòng mới.
  4. How.com.vn Tiếng Việt: Step 4 Xem danh sách mới.
    Sau khi hoàn tất những bước trên, bạn có thể kiểm tra để chắc chắn rằng không còn dữ liệu trùng lặp bằng cách gõ "select * from names".
    SQL > select name from names;NAME------------------------------AlanCarrieTomAlanrows selected.SQL > delete from names where name='Alan';rows deleted.SQL > commit;Commit complete.SQL > insert into names values ('Alan');row created.SQL > commit;Commit complete.SQL > select * from names;NAME------------------------------AlanCarrieTomrows selected.
    Quảng cáo
Phương pháp 3
Phương pháp 3 của 4:

Xóa nhiều dữ liệu trùng lặp

Tải về bản PDF
  1. How.com.vn Tiếng Việt: Step 1 Chọn RowID mà bạn muốn xóa.
    Sau "SQL," bạn nhập "select rowid, name from names;".
  2. How.com.vn Tiếng Việt: Step 2 Xóa dữ liệu trùng lặp.
    Sau "SQL," hãy nhập "delete from names a where rowid > (select min(rowid) from names b where b.name=a.name);" để xóa dữ liệu trùng lặp.[2]
  3. How.com.vn Tiếng Việt: Step 3 Kiểm tra dữ liệu trùng lặp.
    Sau khi hoàn tất bước trên, hãy kiểm tra xem còn dữ liệu giống nhau nào không bằng cách nhập lệnh "select rowid,name from names;" và "commit".
    SQL > select rowid,name from names;ROWID              NAME------------------ ------------------------------AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAB AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD TomAABJnsAAGAAAdfOAAF Alanrows selected.SQL > delete from names awhere rowid > (select min(rowid) from names bwhere b.name=a.name);rows deleted.SQL > select rowid,name from names;ROWID              NAME------------------ ------------------------------AABJnsAAGAAAdfOAAA AlanAABJnsAAGAAAdfOAAC CarrieAABJnsAAGAAAdfOAAD Tomrows selected.SQL > commit;Commit complete.
    Quảng cáo
Phương pháp 4
Phương pháp 4 của 4:

Xóa dòng với cột

Tải về bản PDF
  1. How.com.vn Tiếng Việt: Step 1 Chọn dòng.
    Sau "SQL," bạn nhập "select * from names;" để xem dòng mà bạn cần.
  2. How.com.vn Tiếng Việt: Step 2 Xóa những dòng giống nhau bằng cách xác định cột của chúng.
    Sau "SQL'" bạn hãy nhập "delete from names a where rowid > (select min(rowid) from names b where b.name=a.name and b.age=a.age);" để xóa dữ liệu trùng lặp.[3]
  3. How.com.vn Tiếng Việt: Step 3 Kiểm tra dữ liệu trùng lặp.
    Sau khi hoàn thành những bước trên, bạn nhập "select * from names;" và "commit" để kiểm tra xem bạn đã xóa hết dữ liệu trùng lặp chưa.
    SQL > select * from names;NAME                                  AGE------------------------------ ----------Alan                                   50Carrie                                 51Tom                                    52Alan                                   50rows selected.SQL > delete from names awhere rowid > (select min(rowid) from names bwhere b.name=a.nameand b.age=a.age);row deleted.SQL > select * from names;NAME                                  AGE------------------------------ ----------Alan                                   50Carrie                                 51Tom                                    52rows selected.SQL > commit;Commit complete.
    Quảng cáo

Cảnh báo

  • Trước khi xóa bất kỳ dữ liệu nào, hãy sao lưu cơ sở dữ liệu trong phiên đăng nhập để bạn có thể xem lại (phòng khi thắc mắc về điều gì đó).
    SQL > create table alan.names_backup as select * from names;Table created.

Về bài How.com.vn này

How.com.vn Tiếng Việt: Nhân viên của How.com.vn
Cùng viết bởi:
Người viết bài của How.com.vn
Bài viết này có đồng tác giả là đội ngũ biên tập viên và các nhà nghiên cứu đã qua đào tạo, những người xác nhận tính chính xác và toàn diện của bài viết.

Nhóm Quản lý Nội dung của How.com.vn luôn cẩn trọng giám sát công việc của các biên tập viên để đảm bảo rằng mọi bài viết đều đạt tiêu chuẩn chất lượng cao. Bài viết này đã được xem 5.905 lần.
Chuyên mục: Office
Trang này đã được đọc 5.905 lần.

Bài viết này đã giúp ích cho bạn?

⚠️ Disclaimer:

Content from Wiki How Tiếng Việt language website. Text is available under the Creative Commons Attribution-Share Alike License; additional terms may apply.
Wiki How does not encourage the violation of any laws, and cannot be responsible for any violations of such laws, should you link to this domain, or use, reproduce, or republish the information contained herein.

Notices:
  • - A few of these subjects are frequently censored by educational, governmental, corporate, parental and other filtering schemes.
  • - Some articles may contain names, images, artworks or descriptions of events that some cultures restrict access to
  • - Please note: Wiki How does not give you opinion about the law, or advice about medical. If you need specific advice (for example, medical, legal, financial or risk management), please seek a professional who is licensed or knowledgeable in that area.
  • - Readers should not judge the importance of topics based on their coverage on Wiki How, nor think a topic is important just because it is the subject of a Wiki article.

Quảng cáo