Python SQLite - Verileri Sil

Kayıtları bir SQLite tablosundan silmek için DELETE FROM deyimini kullanmanız gerekir. Belirli kayıtları kaldırmak için, onunla birlikte WHERE cümlesini kullanmanız gerekir.

Belirli satırları güncellemek için, onunla birlikte WHERE yan tümcesini kullanmanız gerekir.

Sözdizimi

Aşağıda, SQLite'daki DELETE sorgusunun sözdizimi verilmiştir -

DELETE FROM table_name [WHERE Clause]

Misal

Aşağıdaki sorguyu kullanarak CRICKETERS adında bir tablo oluşturduğumuzu varsayalım -

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age int,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255)
);
sqlite>

Ve INSERT ifadelerini kullanarak 5 kayıt eklediysek -

sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>

Aşağıdaki açıklama, soyadı 'Sangakkara' olan kriketçinin rekorunu siliyor.

sqlite> DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
sqlite>

SELECT deyimini kullanarak tablonun içeriğini alırsanız, birini sildiğimiz için yalnızca 4 kaydı görebilirsiniz.

sqlite> SELECT * FROM CRICKETERS;
First_Name Last_Name  Age  Place_Of_B Country
---------- ---------- ---- ---------- -------------
Shikhar    Dhawan     46   Delhi      India
Jonathan   Trott      39   CapeTown   SouthAfrica
Virat      Kohli      31   Delhi      India
Rohit      Sharma     33   Nagpur     India
sqlite>

DELETE FROM deyimini WHERE yan tümcesi olmadan çalıştırırsanız, belirtilen tablodaki tüm kayıtlar silinecektir.

sqlite> DELETE FROM CRICKETERS;
sqlite>

Tüm kayıtları sildiğiniz için, CRICKETERS tablosunun içeriğini almaya çalışırsanız, SELECT deyimini kullanarak aşağıda gösterildiği gibi boş bir sonuç kümesi alırsınız -

sqlite> SELECT * FROM CRICKETERS;
sqlite>

Python kullanarak verileri silme

SQLite veritabanında mevcut bir tabloya kayıt eklemek için -

  • Sqlite3 paketini içe aktarın.

  • Veritabanının adını bir parametre olarak ona ileterek connect () yöntemini kullanarak bir bağlantı nesnesi oluşturun .

  • cursor()yöntem, SQLite3 ile iletişim kurabileceğiniz bir imleç nesnesi döndürür. (Yukarıda oluşturulmuş) Connection nesnesinde cursor () nesnesini çağırarak bir imleç nesnesi oluşturun.

  • Ardından, imleç nesnesinde bir DELETE deyimini parametre olarak ileterek execute () yöntemini çağırın.

Misal

Aşağıdaki python örneği, EMPLOYEE tablosundaki 25'den büyük yaş değerine sahip kayıtları siler.

import sqlite3

#Connecting to sqlite
conn = sqlite3.connect('example.db')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Retrieving contents of the table
print("Contents of the table: ")
cursor.execute('''SELECT * from EMPLOYEE''')
print(cursor.fetchall())

#Deleting records
cursor.execute('''DELETE FROM EMPLOYEE WHERE AGE > 25''')

#Retrieving data after delete
print("Contents of the table after delete operation ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Çıktı

Contents of the table:
[('Ramya', 'Rama priya', 27, 'F', 9000.0), 
   ('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Sharukh', 'Sheik', 26, 'M', 8300.0), 
   ('Sarmista', 'Sharma', 26, 'F', 10000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)]
Contents of the table after delete operation
[('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)]