Home / MAKALELER / Veri Tabanı / Mükerrer Kayıtların Silinmesi

Mükerrer Kayıtların Silinmesi

Tablomuzdaki tekrar eden kayıtları nasıl silebileceğimize ait mini bir makale…

Merhabalar,

Süper lig şampiyonluk sayıların tutulduğu bir tablo oluşturup takımların şampiyonluk sayılarına ait kayıtları tabloya ekliyoruz.
SQL> CREATE TABLE sampiyonlar (takim VARCHAR2 (20),sampiyonluk_sayisi   NUMBER);
Table created.
SQL> insert into sampiyonlar values (‘galatasaray’ ,18);
1 row created.
SQL> insert into sampiyonlar values (‘galatasaray’ ,18);
1 row created.
SQL> insert into sampiyonlar values (‘galatasaray’ ,18);
1 row created.
SQL> insert into sampiyonlar values (‘fenevbahce’ ,18);
1 row created.
SQL> insert into sampiyonlar values (‘besiktas’ ,13);
1 row created.
SQL> insert into sampiyonlar values (‘besiktas’ ,13);
1 row created.
SQL> insert into sampiyonlar values (‘trabzon’ ,6);
1 row created.
SQL> insert into sampiyonlar values (‘bursa’ ,1);
1 row created.
SQL> commit;
Commit complete.
Tablomuzda toplamda kaç kayıt olduğuna bakıyoruz ve  8 kayıt olduğunu görüyoruz.
SQL> SELECT *  FROM sampiyonlar A1;
TAKIM                SAMPIYONLUK_SAYISI
——————– ——————
galatasaray                          18
galatasaray                          18
galatasaray                          18
fenevbahce                           18
besiktas                             13
besiktas                             13
trabzon                               6
bursa                                 1
8 rows selected.
SQL>
Süperlig de toplam 5 şampiyon var mantıken 3 kayıt tekrar ediyor.
Aşağıdaki sorgu ile tekrar eden kayıtları listeleyebiliriz.
SQL> SELECT *  FROM sampiyonlar A1
  2        WHERE EXISTS
  3                 (SELECT ‘x’
  4                    FROM sampiyonlar A2
  5                   WHERE A1.takim = A2.takim
  6                   AND A1.ROWID > A2.ROWID);
TAKIM                SAMPIYONLUK_SAYISI
——————– ——————
galatasaray                          18
galatasaray                          18
besiktas                             13
SQL>
Yukardaki sorgumuz sonucunda listelenen mükerrrer kayıtları aşağıdaki şeklide silebiliriz.
SQL> DELETE FROM sampiyonlar A1
  2        WHERE EXISTS
  3                 (SELECT ‘x’
  4                    FROM sampiyonlar A2
  5                   WHERE A1.takim = A2.takim
  6                   AND A1.ROWID > A2.ROWID);
3 rows deleted.
Tekrar tablomuzdaki kayıtları listeledğimizde mükerrer kayıtların silindiğini görebiliriz.
SQL> SELECT *  FROM sampiyonlar A1;
TAKIM                SAMPIYONLUK_SAYISI
——————– ——————
galatasaray                          18
fenevbahce                           18
besiktas                             13
trabzon                               6
bursa                                 1
SQL

About Yusuf Arslan

Sakarya Üniversitesi Bilgisayar Mühendisliği bölümünü bitirdikten sonra kariyerine Datawarehouse-Database Uzmanı olarak devam etmektedir Sitenin kurucusu ve yazarıdır. yusufarslanbm@gmail.com adresinden bana ulaşabilirsiniz.

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın