Semasa bekerja di Oracle, anda dapat mencari pendua pada beberapa rekod. Anda boleh membuang baris pendua dengan mengenal pasti dan menggunakan alamat baris alias RowID yang sesuai. Sebelum memulakan, buat jadual sandaran sekiranya anda memerlukan rujukan setelah rekod dihapus.
Langkah
Kaedah 1 dari 4: Mengenal pasti Pendua
Langkah 1. Kenal pasti pendua
Dalam contoh ini, kami mengenal pasti pendua "Alan". Pastikan rekod yang akan dipadam memang pendua dengan memasukkan SQL di bawah.
Langkah 2. Kenalpasti dari lajur yang bertajuk "Nama"
Sekiranya lajur mempunyai judul "Nama", anda perlu mengganti "kolom_nama" dengan Nama.
Langkah 3. Kenali lajur yang lain
Sekiranya anda cuba mengenal pasti pendua dari lajur yang berlainan, misalnya umur Alan dan bukannya namanya, masukkan "Umur" sebagai pengganti "nama_nama" dan sebagainya.
pilih kolum_nama, hitung (kolom_nama) dari kumpulan jadual dengan lajur_nama yang mempunyai kiraan (lajur_nama)> 1;
Kaedah 2 dari 4: Mengeluarkan Pendua Tunggal
Langkah 1. Pilih "nama dari nama"
Selepas "SQL" (kependekan dari Standard Query Language), masukkan "pilih nama dari nama".
Langkah 2. Padamkan semua baris dengan nama pendua
Selepas "SQL", masukkan "hapus dari nama di mana nama = 'Alan';." Perlu diingatkan bahawa penggunaan huruf besar penting di sini agar langkah ini dapat menghapus semua baris yang bernama "Alan". Selepas "SQL", masukkan "komit"
Langkah 3. Masukkan semula baris tanpa pendua
Sekarang setelah anda memadamkan semua baris dan menggantinya dengan "Alan", isi satu dengan memasukkan "masukkan ke dalam nilai nama ('Alan');." Selepas "SQL", masukkan "komit" untuk membuat baris baru.
Langkah 4. Lihat senarai baru
Setelah menyelesaikan langkah-langkah di atas, anda boleh memeriksa untuk memastikan tidak ada lagi catatan pendua dengan memasukkan "select * from names".
SQL> pilih nama dari nama; NAMA ------------------------------ Alan Citra Tomi Alan Baris dipilih. SQL> hapus dari nama di mana nama = 'Alan'; Garisan dipadamkan. SQL> melakukan; / Komitmen selesai. SQL> masukkan ke dalam nilai nama ('Alan'); baris dibuat. SQL> melakukan; Komitmen selesai. SQL> pilih * dari nama; NAMA ------------------------------ Alan Citra Tomi baris dipilih.
Kaedah 3 dari 4: Menghapus Pendua Berganda
Langkah 1. Pilih RowID yang ingin anda padamkan
Selepas "SQL", masukkan "pilih rowid, nama dari nama;."
Langkah 2. Keluarkan pendua
Selepas "SQL", masukkan "hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name);" untuk membuang pendua.
Langkah 3. Periksa pendua
Setelah menyelesaikan langkah-langkah di atas, periksa pendua dengan memasukkan "pilih rowid, name from names;" kemudian "komited".
SQL> pilih rowid, nama dari nama; NAMA ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Baris Alan dipilih. SQL> hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name); baris dipadamkan. SQL> pilih rowid, nama dari nama; NAMA ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Baris Tom dipilih. SQL> melakukan; Komitmen selesai.
Kaedah 4 dari 4: Menghapus Baris mengikut Lajur
Langkah 1. Pilih baris
Selepas "SQL", masukkan "pilih * dari nama;" untuk dapat melihat garis.
Langkah 2. Keluarkan baris pendua dengan mengenal pasti lajurnya
Selepas "SQL '" masukkan "hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name dan b.age = a.age);" untuk membuang catatan pendua.
Langkah 3. Periksa pendua
Setelah anda menyelesaikan langkah-langkah di atas, masukkan "pilih * dari nama;" kemudian "komit" untuk melihat sama ada pendua telah dikeluarkan.
SQL> pilih * dari nama; NAMA UMUR ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 baris dipilih. SQL> hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name dan b.age = a.age); baris dipadamkan. SQL> pilih * dari nama; NAMA UMUR ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 baris dipilih. SQL> melakukan; Komitmen selesai.
Amaran
-
Buat jadual pendua dalam log masuk anda sehingga dapat digunakan sebagai rujukan isi ketika tidak ada data yang dihapus (jika Anda memiliki pertanyaan).
SQL> buat jadual alan.names_backup sebagai pilih * dari nama; Jadual dibuat.