4 cách xóa bản ghi trùng lặp trong Oracle

Mục lục:

4 cách xóa bản ghi trùng lặp trong Oracle
4 cách xóa bản ghi trùng lặp trong Oracle

Video: 4 cách xóa bản ghi trùng lặp trong Oracle

Video: 4 cách xóa bản ghi trùng lặp trong Oracle
Video: Không cần cài Office nữa vẫn có Office bản quyền miễn phí 100% để xài 2024, Có thể
Anonim

Khi làm việc trong Oracle, bạn có thể tìm thấy các bản sao trên một số bản ghi. Bạn có thể xóa các hàng trùng lặp bằng cách xác định chúng và sử dụng địa chỉ hàng bí danh RowID tương ứng. Trước khi bắt đầu, hãy tạo một bảng dự phòng trong trường hợp bạn cần tham chiếu sau khi bản ghi bị xóa.

Bươc chân

Phương pháp 1/4: Xác định các bản sao

Xóa bản ghi trùng lặp trong Oracle Bước 1
Xóa bản ghi trùng lặp trong Oracle Bước 1

Bước 1. Xác định các bản sao

Trong ví dụ này, chúng tôi xác định "Alan" trùng lặp. Đảm bảo rằng các bản ghi cần xóa thực sự là bản sao bằng cách nhập SQL bên dưới.

Xóa bản ghi trùng lặp trong Oracle Bước 2
Xóa bản ghi trùng lặp trong Oracle Bước 2

Bước 2. Xác định từ cột có tiêu đề "Tên"

Trong trường hợp cột có tiêu đề là "Tên", bạn cần thay "tên_cột" bằng Tên.

Xóa các bản ghi trùng lặp trong Oracle Bước 3
Xóa các bản ghi trùng lặp trong Oracle Bước 3

Bước 3. Xác định các cột khác

Nếu bạn đang cố gắng xác định các bản sao từ các cột khác nhau, chẳng hạn như tuổi của Alan thay vì tên của anh ấy, hãy nhập "Tuổi" thay cho "column_name", v.v.

chọn tên cột, đếm (tên cột) từ nhóm bảng theo tên cột có số lượng (tên cột)> 1;

Phương pháp 2/4: Loại bỏ các bản sao đơn lẻ

Xóa bản ghi trùng lặp trong Oracle Bước 4
Xóa bản ghi trùng lặp trong Oracle Bước 4

Bước 1. Chọn "tên từ tên"

Sau "SQL" (viết tắt của Ngôn ngữ Truy vấn Chuẩn), hãy nhập "chọn tên từ các tên".

Xóa các bản ghi trùng lặp trong Oracle Bước 5
Xóa các bản ghi trùng lặp trong Oracle Bước 5

Bước 2. Xóa tất cả các hàng có tên trùng lặp

Sau "SQL", hãy nhập "xóa khỏi các tên mà name = 'Alan';." Cần lưu ý rằng việc viết hoa ở đây rất quan trọng để bước này có thể xóa tất cả các dòng có tên "Alan". Sau "SQL", hãy nhập "cam kết"

Xóa bản ghi trùng lặp trong Oracle Bước 6
Xóa bản ghi trùng lặp trong Oracle Bước 6

Bước 3. Nhập lại các hàng không có bản sao

Bây giờ bạn đã xóa tất cả các hàng và thay thế chúng bằng "Alan", hãy điền lại một hàng bằng cách nhập "chèn vào giá trị tên ('Alan');." Sau "SQL", nhập "cam kết" để tạo một dòng mới.

Xóa bản ghi trùng lặp trong Oracle Bước 7
Xóa bản ghi trùng lặp trong Oracle Bước 7

Bước 4. Xem danh sách mới

Sau khi hoàn thành các bước trên, bạn có thể kiểm tra để đảm bảo không còn bản ghi trùng lặp bằng cách nhập "chọn * từ tên".

SQL chọn tên từ các tên; TÊN ------------------------------ Alan Citra Tomi Alan Baris được chọn. SQL> xóa khỏi tên nơi name = 'Alan'; Dòng đã bị xóa. SQL cam kết; / Cam kết hoàn tất. SQL chèn vào các giá trị tên ('Alan'); hàng đã tạo. SQL cam kết; Cam kết hoàn thành. SQL chọn * từ tên; TÊN ------------------------------ Các hàng của Alan Citra Tomi đã được chọn.

Phương pháp 3/4: Loại bỏ nhiều bản sao

Xóa bản ghi trùng lặp trong Oracle Bước 8
Xóa bản ghi trùng lặp trong Oracle Bước 8

Bước 1. Chọn RowID bạn muốn xóa

Sau "SQL", nhập "chọn rowid, tên từ tên;."

Xóa các bản ghi trùng lặp trong Oracle Bước 9
Xóa các bản ghi trùng lặp trong Oracle Bước 9

Bước 2. Loại bỏ các bản sao

Sau "SQL", hãy nhập "xóa khỏi các tên a trong đó rowid> (chọn min (rowid) từ các tên b trong đó b.name = a.name);" để loại bỏ các bản sao.

Xóa bản ghi trùng lặp trong Oracle Bước 10
Xóa bản ghi trùng lặp trong Oracle Bước 10

Bước 3. Kiểm tra các bản sao

Sau khi hoàn thành các bước trên, hãy kiểm tra các bản sao bằng cách nhập "select rowid, name from names;" sau đó "cam kết".

SQL chọn rowid, tên từ tên; TÊN ROWID ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF hàng Alan đã được chọn. SQL> xóa khỏi tên a nơi rowid> (chọn min (rowid) từ tên b mà b.name = a.name); hàng đã bị xóa. SQL chọn rowid, tên từ tên; TÊN ROWID ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom đã chọn hàng. SQL cam kết; Cam kết hoàn thành.

Phương pháp 4/4: Xóa hàng theo cột

Xóa bản ghi trùng lặp trong Oracle Bước 11
Xóa bản ghi trùng lặp trong Oracle Bước 11

Bước 1. Chọn hàng

Sau "SQL", hãy nhập "select * from names;" để có thể nhìn thấy dòng.

Xóa các bản ghi trùng lặp trong Oracle Bước 12
Xóa các bản ghi trùng lặp trong Oracle Bước 12

Bước 2. Loại bỏ các hàng trùng lặp bằng cách xác định các cột của chúng

Sau khi "SQL" nhập "xóa khỏi các tên a nơi rowid> (chọn min (rowid) từ các tên b trong đó b.name = a.name và b.age = a.age);" để loại bỏ các bản ghi trùng lặp.

Xóa các bản ghi trùng lặp trong Oracle Bước 13
Xóa các bản ghi trùng lặp trong Oracle Bước 13

Bước 3. Kiểm tra các bản sao

Khi bạn đã hoàn thành các bước trên, hãy nhập "select * from names;" sau đó "cam kết" để xem các bản sao đã thực sự bị loại bỏ.

SQL chọn * từ tên; TÊN TUỔI -------------------------------------------------- Alan 50 Citra 51 Tomi 52 Alan 50 hàng đã chọn. SQL> xóa khỏi các tên a trong đó rowid> (chọn min (rowid) từ các tên b trong đó b.name = a.name và b.age = a.age); hàng đã bị xóa. SQL chọn * từ tên; TÊN TUỔI -------------------------------------------------- Alan 50 Citra 51 Tomi 52 hàng được chọn. SQL cam kết; Cam kết hoàn thành.

Cảnh báo

  • Tạo một bảng trùng lặp trong thông tin đăng nhập của bạn để nó có thể được sử dụng làm tài liệu tham khảo nội dung khi không có dữ liệu nào bị xóa (trong trường hợp bạn có bất kỳ câu hỏi nào).

    SQL tạo bảng alan.names_backup như select * từ các tên; Đã tạo bảng.

Đề xuất: