Oracle -da işləyərkən bəzi qeydlərdə dublikatları tapa bilərsiniz. Təkrarlanan satırları müəyyən edərək və müvafiq RowID alias sətir ünvanını istifadə edərək silinə bilər. Başlamadan əvvəl, qeyd silindikdən sonra bir arayışa ehtiyacınız olarsa, ehtiyat cədvəli yaradın.
Addım
Metod 1 /4: Dublikatların müəyyən edilməsi
Addım 1. Dublikatları müəyyənləşdirin
Bu nümunədə, "Alan" dublikatını təyin edirik. Aşağıdakı SQL -ə daxil olaraq silinəcək qeydlərin həqiqətən də dublikat olduğundan əmin olun.
Addım 2. "Ad" başlıqlı sütundan müəyyən edin
Sütunun "Ad" başlığı olması halında, "column_name" ni Ad ilə əvəz etməlisiniz.
Addım 3. Digər sütunları müəyyənləşdirin
Fərqli sütunlardan dublikatları müəyyən etməyə çalışırsınızsa, məsələn, Alanın yaşının adını deyil, "sütun_adı" yerinə "Yaş" yazın və s.
count (column_name)> 1 olan sütun_adı ilə tablo qrupundan column_name, count (column_name) seçin;
Metod 2 /4: Tək Dublikatların çıxarılması
Addım 1. "Adlardan ad" seçin
"SQL" dən sonra (Standart Sorğu Dili üçün qısadır) "adlardan ad seçin" daxil edin.
Addım 2. Dublikat adları olan bütün satırları silin
"SQL" dən sonra "name = 'Alan'; adlarından silin" yazın. " Qeyd etmək lazımdır ki, burada böyük hərflərin yazılması vacibdir ki, bu addım "Alan" adlanan bütün sətirləri silə bilsin. "SQL" dən sonra "əmr et" daxil edin
Addım 3. Dublikatlar olmadan satırları yenidən daxil edin
İndi bütün sətirləri sildiyiniz və onları "Alan" ilə əvəz etdiyiniz üçün "ad dəyərlərinə daxil edin ('Alan');" yazaraq birini doldurun. "SQL" dən sonra yeni bir xətt yaratmaq üçün "əmr et" yazın.
Addım 4. Yeni siyahıya baxın
Yuxarıdakı addımları tamamladıqdan sonra, "adlardan * seçin" yazaraq artıq təkrarlanan qeydlər olmadığından əmin ola bilərsiniz.
SQL> adlardan ad seçin; ADI ------------------------------ Alan Citra Tomi Alan Baris seçildi. SQL> name = 'Alan' olduğu adlardan silin; Xətt silinir. SQL> öhdəliklər; / Tamamlandı. SQL> ad dəyərlərinə daxil edin ('Alan'); sıra yaradılmışdır. SQL> öhdəliklər; Öhdəlik tamamlandı. SQL> adlardan * seçin; ADI ------------------------------ Alan Citra Tomi satırları seçildi.
Metod 3 -dən 4: Birdən çox dublikatın çıxarılması
Addım 1. Silmək istədiyiniz RowID -i seçin
"SQL" dən sonra "seçin rowid, adlardan ad;."
Addım 2. Dublikatları çıxarın
"SQL" dən sonra "rowid olduğu adlardan sil> (b.name = a.name b adlarından min (rowid) seçin) daxil edin"; dublikatları silmək üçün.
Addım 3. Dublikatları yoxlayın
Yuxarıdakı addımları tamamladıqdan sonra, "rowid, adlardan ad seçin" yazaraq dublikatları yoxlayın. sonra "öhdəlik götür".
SQL> rowid, adlardan ad seçin; ROWID ADI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan satırları seçildi. SQL> adlardan silin a harada rowid> (b adlarından min (rowid) seçin b harada b.name = a.name); sətirlər silindi. SQL> rowid seçin, adlardan ad; ROWID ADI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom satırları seçildi. SQL> öhdəliklər; Öhdəlik tamamlandı.
Metod 4 /4: Satırları Sütunlarla Silin
Addım 1. Sıranı seçin
"SQL" dən sonra "adlardan * seçin;" daxil edin. xətti görə bilmək.
Addım 2. Sütunlarını təyin edərək təkrarlanan satırları silin
"SQL" sözündən sonra "rowid> olan adlardan sil" (b.name = a.name və b.age = a.age adlarından b (min) seçin); " dublikat qeydləri silmək üçün.
Addım 3. Dublikatları yoxlayın
Yuxarıdakı addımları tamamladıqdan sonra "adlardan seçin * daxil edin;" sonra dublikatların həqiqətən silindiyini görmək üçün "öhdəlik götür".
SQL> adlardan * seçin; ADI YAŞ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 sıralar seçildi. SQL> adlardan silin a burada rowid> (b.name = a.name və b.age = a.age olan b adlarından min (rowid) seçin); sıra silindi. SQL> adlardan * seçin; ADI YAŞ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 satır seçildi. SQL> öhdəliklər; Öhdəlik tamamlandı.
Xəbərdarlıq
-
Girişinizdə bir dublikat cədvəli yaradın ki, heç bir məlumat silinmədikdə məzmun istinadı kimi istifadə olunsun (suallarınız olarsa).
SQL> adlardan * seçin olaraq alan.names_backup cədvəli yaradın; Cədvəl yaradıldı.