Sil (SQL) - Delete (SQL)

Veritabanında yapılandırılmış sorgu dili (SQL ), SİL ifadesi bir veya daha fazla kaydı bir masa. Bir koşul kullanılarak silme için bir alt küme tanımlanabilir, aksi takdirde tüm kayıtlar kaldırılır.[1] Biraz Veritabanı Yönetim Sistemleri (DBMS'ler) gibi MySQL, tek bir DELETE ifadesiyle birden çok tablodan satırların silinmesine izin verin (buna bazen çoklu tablo DELETE denir).

Örnekler

Sil satırlar masadan turta nerede sütun lezzet eşittir Limon Beze:

SİL FROM turta NEREDE lezzet='Limon Beze';

İçindeki satırları sil ağaçlareğer değeri yükseklik 80'den küçük.

SİL FROM ağaçlar NEREDE yükseklik < 80;

Tüm satırları sil benim masam:

SİL FROM benim masam;

Satırları sil benim masam nerede koşulunda bir alt sorgu kullanarak:

SİL FROM benim masam NEREDE İD İÇİNDE (       SEÇ İD         FROM mytable2      );

Satırları sil benim masam değerler listesi kullanarak:

SİL FROM benim masam NEREDE İD İÇİNDE (       değer1,       değer2,       değer3,       değer4,       değer5      );

İlgili tablolarla örnek

İnsanları ve adresleri listeleyen basit bir veritabanı olduğunu varsayalım. Belirli bir adreste birden fazla kişi yaşayabilir ve bir kişi birden fazla adreste yaşayabilir (bu, bir çoka çok ilişki ). Veritabanında yalnızca üç tablo vardır, kişi, adres, ve pa, aşağıdaki verilerle:

kişi
pidisim
1Joe
2Bob
3Ann
adres
yardımaçıklama
1002001 Ana St.
20035 Pico Blvd.
pa
pidyardım
1100
2100
3100
1200

pa tablo, Joe, Bob ve Ann'in 2001 Main Street'te yaşadığını, ancak Joe'nun Pico Bulvarı'nda ikamet ettiğini gösteren kişi ve adres tablolarını ilişkilendirir.

Joe'yu veritabanından kaldırmak için iki silme işlemi yapılmalıdır:

 SİL FROM kişi NEREDE pid=1; SİL FROM pa NEREDE pid=1;

Bilgi tutarlılığını korumak için Joe'nun kayıtları her ikisinden de kaldırılmalıdır. kişi ve pa. Bütünlüğün sürdürüldüğü araçlar, değişen ilişkisel veritabanı yönetim sistemlerinde farklı şekillerde gerçekleşebilir.[kaynak belirtilmeli ] Sadece üç tabloya sahip olmanın ötesinde, veritabanı da bir tetikleyici ile ayarlanmış olabilir, böylece bir satır silindiğinde kişi bağlantılı satırlar şuradan silinecek pa. Sonra ilk ifade:

 SİL FROM kişi NEREDE pid=1;

olur otomatik olarak ikinciyi tetikle:

 SİL FROM pa NEREDE pid=1;

İlgili komutlar

Bir tablodan tüm satırları silmek çok zaman alabilir. Biraz DBMS[açıklama gerekli ] teklif TRUNCATE TABLOSU Yalnızca meta verileri değiştirdiği ve tipik olarak kısıtlamaları zorlamak veya tetikleyicileri tetiklemek için zaman harcamadığı için çok daha hızlı çalışan komut.

DELETE yalnızca satırları siler. Bir tabloyu tamamen silmek için DÜŞÜRMEK komut kullanılabilir.

Referanslar

  1. ^ "SQL Silme İfadesi". w3schools.com.