Oracle -da Dublikat qeydləri silməyin 4 yolu

Mündəricat:

Oracle -da Dublikat qeydləri silməyin 4 yolu
Oracle -da Dublikat qeydləri silməyin 4 yolu

Video: Oracle -da Dublikat qeydləri silməyin 4 yolu

Video: Oracle -da Dublikat qeydləri silməyin 4 yolu
Video: RAR UYGULAMA İLE DOSYA ÇIKARMA 2024, Noyabr
Anonim

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

Oracle 1 -ci addımda Dublikat qeydləri silin
Oracle 1 -ci addımda Dublikat qeydləri silin

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.

Oracle 2 -ci addımdakı Dublikat qeydləri silin
Oracle 2 -ci addımdakı Dublikat qeydləri silin

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.

Oracle 3 -cü addımdakı Dublikat qeydləri silin
Oracle 3 -cü addımdakı Dublikat qeydləri silin

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ı

Oracle 4 -cü addımda Dublikat qeydləri silin
Oracle 4 -cü addımda Dublikat qeydləri silin

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.

Oracle 5 -ci addımdakı Dublikat qeydləri silin
Oracle 5 -ci addımdakı Dublikat qeydləri silin

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

Oracle 6 -cı addımda Dublikat qeydləri silin
Oracle 6 -cı addımda Dublikat qeydləri silin

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.

Oracle Addım 7 -də Dublikat qeydləri silin
Oracle Addım 7 -də Dublikat qeydləri silin

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ı

Oracle Adım 8 -də Dublikat qeydləri silin
Oracle Adım 8 -də Dublikat qeydləri silin

Addım 1. Silmək istədiyiniz RowID -i seçin

"SQL" dən sonra "seçin rowid, adlardan ad;."

Oracle Adım 9 -da Dublikat qeydləri silin
Oracle Adım 9 -da Dublikat qeydləri silin

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.

Oracle Addım 10 -da Dublikat qeydləri silin
Oracle Addım 10 -da Dublikat qeydləri silin

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

Oracle Adım 11 -də Dublikat qeydləri silin
Oracle Adım 11 -də Dublikat qeydləri silin

Addım 1. Sıranı seçin

"SQL" dən sonra "adlardan * seçin;" daxil edin. xətti görə bilmək.

Oracle 12 -ci addımdakı Dublikat qeydləri silin
Oracle 12 -ci addımdakı Dublikat qeydləri silin

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.

Oracle Addım 13 -də Dublikat qeydləri silin
Oracle Addım 13 -də Dublikat qeydləri silin

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ı.

Tövsiyə: