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: Các phân tử DNA có thể dễ dàng lưu trữ dữ liệu trong tương lai | VOA Tiếng Việt 2024, Có thể
Anonim

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

Các bước

Phương pháp 1 trong 4: Xác định bản sao của bạn

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 bản sao

Trong trường hợp này, hãy xác định bản sao ví dụ, "Alan". Đảm bảo rằng các bản ghi bạn đang cố gắng xóa thực sự là bản sao bằng cách nhập SQL bên dưới.

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

Bước 2. Xác định từ một cột có tên là "Tên

"Trong trường hợp của một cột có tên là" Tên ", bạn sẽ thay thế" tên_mạch "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 từ các cột khác

Nếu bạn đang cố gắng xác định trùng lặp bằng một cột khác, chẳng hạn như tuổi của Alan thay vì tên của anh ấy, bạn sẽ nhập "Tuổi" vào vị trí của "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: Xóa một bản sao

Xóa các bản ghi trùng lặp trong Oracle Bước 4
Xóa các 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 bản ghi trùng lặp trong Oracle Bước 5
Xóa 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," enter "xóa khỏi các tên mà name = 'Alan';." Lưu ý rằng việc viết hoa là quan trọng ở đây, vì vậy, điều này sẽ xóa tất cả các hàng có tên "Alan". Sau "SQL", hãy nhập "cam kết".

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

Bước 3. Cho thuê hàng không có bản sao

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

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 của bạn

Khi bạn đã hoàn thành các bước trên, bạn có thể kiểm tra để đảm bảo rằng bạn 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 Carrie Tom Alan hàng được chọn. SQL> xóa khỏi tên nơi name = 'Alan'; hàng đã bị xóa. SQL cam kết; Cam kết hoàn thành. 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 Carrie Tom đã được chọn.

Phương pháp 3/4: Xóa 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", hãy nhập "chọn rowid, tên từ tên;."

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

Bước 2. Xóa bản sao

Sau "SQL," enter "xóa khỏi các tên a mà rowid> (chọn min (rowid) từ các tên b trong đó b.name = a.name);" để xóa các bản ghi trùng lặp.

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 bạn đã hoàn thành những điều trên, các lệnh kiểm tra xem bạn có còn bản ghi trùng lặp hay không bằng cách nhập "select rowid, name from names;" và 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 trong đó 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 có 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 của bạn

Sau "SQL", hãy nhập "chọn * từ tên;" để xem các hàng của bạn.

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. Xóa các hàng trùng lặp bằng cách xác định cột của chúng

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

Xóa bản ghi trùng lặp trong Oracle Bước 13
Xóa 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;" và sau đó "cam kết" để kiểm tra xem bạn đã xóa các bản ghi trùng lặp thành công hay chưa.

SQL chọn * từ tên; TÊN TUỔI -------------------------------------------------- Alan 50 Carrie 51 Tom 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 Carrie 51 Tom 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 sao lưu trong lần đăng nhập của riêng bạn mà bạn có thể sử dụng để hiển thị những gì đã có trước khi bất kỳ hành động xóa nào xảy ra (trong trường hợp 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: