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: Bu qaydalara əməl edin ki oxuduqlarınızın 80%-i yadınızda qalsın 2024, Bilər
Anonim

Oracle -da işləyərkən qeydlərinizin bəzilərinin dublikatları olduğunu görə bilərsiniz. Bu dublikat cərgələri müəyyən edərək RowID və ya satır ünvanını istifadə edərək silə bilərsiniz. Başlamazdan əvvəl, qeydləri sildikdən sonra onlara istinad etməyiniz lazım olduğu halda bir ehtiyat masa yaratmalısınız.

Addımlar

Metod 1 /4: Dublikatınızı müəyyənləşdirin

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

Addım 1. Dublikatı müəyyənləşdirin

Bu halda, "Alan" dublikat nümunəsini müəyyənləşdirin. Aşağıdakı SQL -ə daxil olaraq silməyə çalışdığınız qeydlərin əslində təkrarlandığından əmin olun.

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

Addım 2. "Adlar" adlı bir sütundan müəyyən edilməsi

"" Adlar "adlı bir sütun halında," ustun_adı "nı Adlarla əvəz edərdiniz.

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

Addım 3. Digər sütunlardan müəyyən edilməsi

Dublikatı fərqli bir sütunla təyin etməyə çalışsaydınız, məsələn, adını deyil, Alanın yaşını, "sütun_adı" yerinə "Əsrlər" yazardınız və s.

count (column_name)> 1 olan sütun_adı ilə tablo qrupundan column_name, count (column_name) seçin;

Metod 2 /4: Bir Dublikatın silinməsi

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

"Standart Sorgu Dili mənasını verən" SQL "dən sonra" 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 adı olan bütün satırları silin

"SQL" dən sonra, ad = 'Alan'; olan adlardan sil "daxil edin." Qeyd edək ki, burada böyük hərflərin yazılması vacibdir, buna görə də "Alan" adlı bütün sətirlər silinəcəkdir. "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. Satırı dublikat olmadan kirayəyə götürün

"Alan" nümunə adı olan bütün sətirləri sildiyiniz üçün "ad dəyərlərinə daxil edin ('Alan');" yazaraq bir arxa əlavə edə bilərsiniz. "SQL" dən sonra, yeni satırınızı yaratmaq üçün "öhdəlik" daxil edin.

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

Addım 4. Yeni siyahınıza baxın

Yuxarıdakı addımları tamamladıqdan sonra "adlardan * seçin" yazaraq artıq təkrar qeydlər olmadığından əmin ola bilərsiniz.

SQL> adlardan ad seçin; ADI ------------------------------ Alan Carrie Tom Alan satırları seçildi. SQL> name = 'Alan' olduğu adlardan silin; sətirlər silindi. SQL> əmr et; Öhdəlik tamamlandı. SQL> ad dəyərlərinə daxil edin ('Alan'); sıra yaradılmışdır. SQL> əmr et; Öhdəlik tamamlandı. SQL> adlardan * seçin; ADI ------------------------------ Alan Carrie Tom satırları seçildi.

Metod 3 /4: Birdən çox dublikatın silinməsi

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 seçin

"SQL" dən sonra "daxil edin" 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. Dublikatı silin

"SQL" dən sonra, "rowid> adlarından silin (b.name = a.name b adlarından min (rowid) seçin);" dublikat qeydləri 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ıları tamamladıqdan sonra əmrlər, "sıradan adı, adlardan ad seçin" yazaraq hələ də təkrarlanan qeydlərinizin olub olmadığını yoxlayır. və sonra "öhdəlik götür".

SQL> rowid seçin, adlardan ad; 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, adlardan ad seçin; ROWID ADI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom satırları seçildi. SQL> əmr et; Öhdəlik tamamlandı.

Metod 4 /4: Sütunlu Satırların Silinməsi

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

Addım 1. Sıralarınızı seçin

"SQL" dən sonra "adlardan * seçin;" daxil edin. sıralarınızı görmə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 cüt sətirləri silin

"SQL '" yazdıqdan sonra "rowid> olduğu adlardan silin (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;" və sonra təkrarlanan qeydləri uğurla sildiyinizi yoxlamaq üçün "öhdəlik götürün".

SQL> adlardan * seçin; ADI YAŞ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 sıralar seçildi. SQL> adlardan silin a burada rowid> (b.name = a.name və b.age = a.age adlarından min (rowid) seçin); sıra silindi. SQL> adlardan * seçin; ADI YAŞ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 sıra seçildi. SQL> əmr et; Öhdəlik tamamlandı.

Xəbərdarlıqlar

  • Hər hansı bir silinmə baş verməzdən əvvəl orada olanları göstərmək üçün istifadə edə biləcəyiniz bir giriş masası yaradın (hər hansı bir sualınız varsa).

    SQL> adlardan * seçin olaraq alan.names_backup cədvəli yaradın; Cədvəl yaradıldı.

Tövsiyə: