logo

MySQL SİL KATIL

DELETE sorgusu, tablolardan satırları kaldırmak için kullanılan veri işleme dilinin bir alt parçasıdır. Katılım nasıl silinir MySQL röportajlar sırasında çok popüler bir sorudur. MySQL'de delete join ifadelerini kullanmak kolay bir işlem değildir. Bu bölümde DELETE sorgusunda INNER JOIN veya LEFT JOIN kullanarak birden fazla tablodaki kayıtları nasıl silebileceğinizi anlatacağız.

INNER JOIN ile JOIN'I SİL

İç Birleştirme sorgusu, bir tablodaki satırları ve diğer tablodan belirtilen koşulu karşılayan eşleşen satırları kaldırmak için Sil sorgusu ile birlikte kullanılabilir.

Sözdizimi

Aşağıda Inner join kullanarak birden fazla tablodaki satırları silmek için kullanılabilecek sözdizimi verilmiştir.

 DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition 

Burada hedef, belirtilen koşulla eşleşen satırları silmek istediğimiz tablo adıdır. Tablodaki satırları silmek istediğinizi varsayalım T1 Ve T2 Neresi öğrenci_kimliği = 2 ise aşağıdaki ifade gibi yazılabilir:

string.substring java
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

Yukarıdaki sözdiziminde hedef tablo (T1 ve T2) DELETE ve FROM anahtar kelimeleri arasına yazılmıştır. Oradan herhangi bir tablo adını çıkarırsak, o zaman beyanı sil yalnızca tek bir tablodaki satırları kaldırır. İle yazılan ifade AÇIK anahtar kelime, tablolardaki sileceğiniz satırlarla eşleşen durumdur.

Örnek

Diyelim ki iki masamız var öğrenciler Ve kişiler aşağıdaki verileri içerir:

Tablo: öğrenciler

MySQL SİL KATIL

Tablo: kişiler

MySQL SİL KATIL

Anlamak için aşağıdaki sorguyu yürütün Katılmayı Sil İç Birleştirme ile. Bu ifade, her iki tabloda da aynı kimliğe sahip bir satırı siler.

 DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4; 

Başarılı bir yürütmenin ardından aşağıdaki mesajı verecektir:

MySQL SİL KATIL

Şimdi, başarıyla silinen satırları doğrulamak için aşağıdaki sorguyu çalıştırın.

 mysql> SELECT * FROM students; mysql> SELECT * FROM contacts; 

Satırların nerede olduğunu görebilirsiniz. öğrenci_id=4 silindi.

MySQL SİL KATIL MySQL SİL KATIL

SOL JOIN ile JOIN'ı SİL

Sol(ilk) tablodaki tüm satırları ve başka bir tablodaki eşleşen veya eşleşmeyen satırları döndüren SELECT deyimiyle LEFT JOIN yan tümcesini zaten öğrenmiştik. Benzer şekilde, sağ(ikinci) tablodan eşleşen satırları olmayan sol(ilk) tablodaki satırları silmek için DELETE anahtar sözcüğüyle birlikte LEFT JOIN yan tümcesini de kullanabiliriz.

asit özellikleri veritabanı

Aşağıdaki sorgu, DELETE ifadesinin, satırları silmek için LEFT JOIN'i nerede kullandığını daha açık bir şekilde açıklamaktadır. Tablo 1 eşleşen satırları olmayan Tablo 2 :

 DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL; 

Yukarıdaki sorguda, INNER JOIN ifadesinde olduğu gibi her ikisini de değil, yalnızca DELETE anahtar sözcüğüyle birlikte Tablo1'i kullanacağımıza dikkat edin.

Örnek

Bir tablo oluşturalım' kişiler ' Ve ' müşteriler ' aşağıdaki verileri içeren bir veritabanında:

Tablo: kişiler

youtube videoları vlc nasıl indirilir
MySQL SİL KATIL

Tablo: müşteriler

MySQL SİL KATIL

Sahibi olmayan müşteriyi kaldıran aşağıdaki ifadeyi yürütün. cep telefonu sayı:

 DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL; 

Başarılı bir yürütmenin ardından aşağıdaki mesajı verecektir:

MySQL SİL KATIL

Şimdi, başarıyla silinen satırları doğrulamak için aşağıdaki sorguyu çalıştırın.

 mysql> SELECT * FROM customers; 

Müşterinin cep telefonu numarasının bulunmadığı satırların silindiğini görebilirsiniz.

MySQL SİL KATIL