MySQL DELETE Sorgusu: Bir Tablodan Satır Nasıl Silinir

İçindekiler:

Anonim

DELETE Sorgusu nedir?

MySQL DELETE komutu, veritabanı tablolarından artık gerekli olmayan satırları silmek için kullanılır. Tablodan tüm satırı siler ve silinen satırların sayısını döndürür. Sil komutu, veritabanınızdan geçici veya eski verileri silmek için kullanışlıdır.

MySQL'deki Silme sorgusu, tek bir sorguda bir tablodan birden fazla satırı silebilir. Bu, bir veritabanı tablosundan çok sayıda satırı kaldırırken avantaj sağlar.

MySQL satırındaki bir Sil satırı silindikten sonra kurtarılamaz. Bu nedenle, veritabanından herhangi bir veriyi silmeden önce veritabanı yedeklemelerinin yapılması şiddetle tavsiye edilir. Bu, veritabanını geri yüklemenize ve gerektiğinde verileri daha sonra görüntülemenize izin verebilir.

MySQL'de bir satır nasıl silinir

MySQL'de bir satırı silmek için DELETE FROM ifadesi kullanılır:

DELETE FROM `table_name` [WHERE condition];

İŞTE

  • SİL "tablo_adı" MySQL sunucusuna tablodan satırları kaldırmasını söyler…
  • [WHERE koşulu] isteğe bağlıdır ve MySQL DELETE satır sorgusundan etkilenen satırların sayısını sınırlayan bir filtre koymak için kullanılır.

MySQL DELETE sorgusunda WHERE yan tümcesi kullanılmazsa, belirli bir tablodaki tüm satırlar silinecektir.

MySQL Silme Sorgusu Örneği

DELETE komutuyla ilgili daha fazla ayrıntıya girmeden önce, çalışmak için filmler tablosuna bazı örnek veriler ekleyelim.

INSERT INTO `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);INSERT INTO movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

Yukarıdaki komut dosyasını çalıştırmak, filmler tablosuna üç (3) film ekler. Dersimize daha fazla girmeden önce, tüm filmleri masamıza alalım. Aşağıda gösterilen komut dosyası bunu yapar.

SELECT * FROM `movies`;

Yukarıdaki betiği çalıştırmak bize aşağıdaki sonuçları verir.

 
movie_id itle director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Myflix video kütüphanesinin artık üyelerine "The Great Dictator" u kiralamak istemediğini ve veritabanından kaldırılmasını istediklerini varsayalım. Film kimliği 18, satırını filmler tablosundan silmek için aşağıda gösterilen komut dosyasını kullanabiliriz.

DELETE FROM `movies` WHERE `movie_id` = 18;

Yukarıdaki komut dosyasını MySQL WorkBench'te Myflix'e karşı yürütmek, 18 numaralı filmi veritabanı tablosundan siler.

Filmler tablosunun mevcut durumunu görelim.

SELECT * FROM `movies`;
 
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

NOT:

  • 18 kimliğine sahip film sorgu sonuç kümesinde döndürülmedi.
  • bir tablo için tek bir sütunu silemezsiniz. Tüm bir satırı silebilirsiniz.

Diyelim ki silmek istediğimiz filmlerin bir listesi var. IN ile birlikte WHERE cümlesini kullanabiliriz.

DELETE FROM `movies` WHERE `movie_id` IN (20,21);

Yukarıdaki komut dosyasının yürütülmesi, 20 ve 21 numaralı filmleri filmler tablomuzdan siler.

Özet

  • Silme komutu, artık bir tablodan gerekli olmayan verileri kaldırmak için kullanılır.
  • "WHERE yan tümcesi", DELETE sorgusundan etkilenen satırların sayısını sınırlamak için kullanılır.
  • Veriler bir kez silindikten sonra kurtarılamaz, bu nedenle verileri silmeden önce kesinlikle yedekleme yapmanız önerilir.