Python SQLite - Xóa dữ liệu
Để xóa bản ghi khỏi bảng SQLite, bạn cần sử dụng câu lệnh DELETE FROM. Để xóa các bản ghi cụ thể, bạn cần sử dụng mệnh đề WHERE cùng với nó.
Để cập nhật các hàng cụ thể, bạn cần sử dụng mệnh đề WHERE cùng với nó.
Cú pháp
Sau đây là cú pháp của truy vấn DELETE trong SQLite:
DELETE FROM table_name [WHERE Clause]
Thí dụ
Giả sử chúng ta đã tạo một bảng có tên CRICKETERS bằng truy vấn sau:
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
Và nếu chúng ta đã chèn 5 bản ghi vào nó bằng cách sử dụng câu lệnh INSERT như -
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>
Tuyên bố sau đây xóa kỷ lục của vận động viên cricket có họ là 'Sangakkara'.
sqlite> DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
sqlite>
Nếu bạn truy xuất nội dung của bảng bằng câu lệnh SELECT, bạn chỉ có thể thấy 4 bản ghi vì chúng tôi đã xóa một bản ghi.
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>
Nếu bạn thực hiện câu lệnh DELETE FROM mà không có mệnh đề WHERE, tất cả các bản ghi từ bảng được chỉ định sẽ bị xóa.
sqlite> DELETE FROM CRICKETERS;
sqlite>
Vì bạn đã xóa tất cả các bản ghi, nếu bạn cố gắng truy xuất nội dung của bảng CRICKETERS, bằng cách sử dụng câu lệnh SELECT, bạn sẽ nhận được một tập hợp kết quả trống như hình dưới đây:
sqlite> SELECT * FROM CRICKETERS;
sqlite>
Xóa dữ liệu bằng python
Để thêm bản ghi vào bảng hiện có trong cơ sở dữ liệu SQLite -
Nhập gói sqlite3.
Tạo một đối tượng kết nối bằng phương thức connect () bằng cách chuyển tên của cơ sở dữ liệu làm tham số cho nó.
Các cursor()phương thức trả về một đối tượng con trỏ sử dụng mà bạn có thể giao tiếp với SQLite3. Tạo một đối tượng con trỏ bằng cách gọi đối tượng con trỏ () trên đối tượng Kết nối (đã tạo ở trên).
Sau đó, gọi phương thức execute () trên đối tượng con trỏ, bằng cách chuyển câu lệnh DELETE làm tham số cho nó.
Thí dụ
Ví dụ python sau sẽ xóa các bản ghi khỏi bảng EMPLOYEE có giá trị tuổi lớn hơn 25.
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()
Đầu ra
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)]