Xóa tất cả dữ liệu khỏi bảng sqlite python

Để xóa các bản ghi trong SQLite bằng Python, bạn phải làm theo các bước dưới đây-

  1. Mở kết nối tới cơ sở dữ liệu bằng cách gọi hàm connect[] và lấy đối tượng Connection
  2. Nhận đối tượng Cursor bằng cách gọi hàm cursor[]
  3. Truyền câu lệnh Delete From cho hàm execute[]
  4. Gọi commit[] để lưu các thay đổi vào cơ sở dữ liệu và sau đó gọi close[] để đóng kết nối

Giả sử, bạn muốn xóa một bản ghi của bảng AndroidPhones có id là 6. Sau đó chạy bên dưới-

import sqlite3
 
conn = sqlite3.connect['mobiledevices.db']
print['Connected to database successfully.']
 
cur = conn.cursor[]
id = [6]

cur.execute["delete from androidphones where id=?", id]
print['Record deleted successfully.']
 
conn.commit[]
conn.close[]

Bài viết đề xuất

SQLite không có lệnh TRUNCATE TABLE rõ ràng như các cơ sở dữ liệu khác. Thay vào đó, nó đã thêm trình tối ưu hóa TRUNCATE vào câu lệnh DELETE. Để cắt bớt một bảng trong SQLite, bạn chỉ cần thực thi câu lệnh DELETE mà không cần mệnh đề WHERE. Trình tối ưu hóa TRUNCATE xử lý phần còn lại. Hãy giải thích

Thông thường, khi bạn thực hiện câu lệnh DELETE, cơ sở dữ liệu phải truy cập từng hàng trong bảng để thực hiện thao tác xóa. Trong SQLite, khi bạn thực thi một câu lệnh XÓA mà không có mệnh đề WHERE, trình tối ưu hóa TRUNCATE sẽ chạy thay vì hành vi xóa thông thường. Trình tối ưu hóa TRUNCATE xóa tất cả dữ liệu khỏi bảng mà không cần truy cập từng hàng trong bảng. Thao tác này nhanh hơn nhiều so với thao tác xóa thông thường

cú pháp

Cú pháp để cắt bớt một bảng trong SQLite [sử dụng trình tối ưu hóa TRUNCATE] là

DELETE FROM table_name;

Tham số hoặc Đối số

table_nameBảng mà bạn muốn cắt bớt

Ghi chú

  • SQLite chỉ có thể sử dụng trình tối ưu hóa TRUNCATE nếu bảng [để cắt bớt] không có bất kỳ trình kích hoạt nào

Ví dụ

Bạn có thể chọn cắt bớt một bảng thay vì bỏ bảng và tạo lại nó. Cắt bớt bảng là phương pháp nhanh hơn để xóa tất cả dữ liệu khỏi bảng

Hãy xem một ví dụ về cách cắt bớt một bảng trong SQLite

Ví dụ

DELETE FROM positions;

Ví dụ này sẽ cắt bớt bảng có tên là vị trí và xóa tất cả các bản ghi khỏi bảng đó. Nếu không có trình kích hoạt nào trên bảng vị trí, SQLite sẽ sử dụng trình tối ưu hóa TRUNCATE để cắt bớt bảng. Dữ liệu sau đó được xóa mà không cần phải truy cập từng hàng của bảng vị trí

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thực hiện DELETE Query trong chương trình Python để xóa dữ liệu của bảng SQLite

Hướng dẫn này chủ yếu tập trung vào

  • Xóa một hàng của bảng SQLite trong Python
  • Xóa nhiều hàng của bảng SQLite trong Python
  • Truy vấn được tham số hóa để xóa các bản ghi khỏi bảng SQLite trong Python
  • Xóa một cột của bảng SQLite trong Python
  • Xóa nhiều cột của bảng SQLite trong Python
  • Truy vấn xóa hàng loạt bản ghi
  • Xóa tất cả các hàng và tất cả các cột của bảng SQLite trong Python

Cơ sở dữ liệu của chúng tôi và bảng hiện diện bên trong cơ sở dữ liệu trông giống như

tên cơ sở dữ liệu. "dữ liệu. db”
tên bảng. “người dùng”
cột bảng. “id”, “tên”, “tuổi”, “giới tính”

Ghi chú. Chúng tôi có bốn bản ghi trong bảng cơ sở dữ liệu của chúng tôi. Chúng tôi sẽ thực hiện các thao tác trên các hồ sơ này

1]. Hàng đơn – Xóa bản ghi khỏi bảng cơ sở dữ liệu trong SQLite bằng Python

#Importing Database Library
import sqlite3

# Database Connectivity
try:
    con = sqlite3.connect["data.db"]
    cursor = con.cursor[]
    print["Connected to Database Successfully"]
    #Data Deletion Process-[ Single-Row ]
    query = "DELETE from USERS where id = ?"
    cursor.execute[query,[3,]]
    con.commit[]
    cursor.close[]
except:
    print["Database Error"]

#END

 

Đầu ra. Bảng NGƯỜI DÙNG sau khi xóa hàng. -

Giải thích.  Tôi sẽ chỉ giải thích những điểm chính hoặc những điểm hoàn toàn mới đối với chúng tôi. Bởi vì chúng ta đang làm việc với cơ sở dữ liệu, nên tôi cho rằng các bạn đã biết về các khái niệm cốt lõi của python.

  • Ở dòng 4, chúng tôi đã nhập thư viện sqlite3 của mình, vì các chức năng chúng tôi sử dụng trong chương trình của chúng tôi đã được xác định trước trong thư viện sqlite3
  • Tại dòng 7 & 16, chúng tôi đã sử dụng phương pháp hữu ích để xử lý ngoại lệ sql
  • Ở dòng 8 & 9 chúng ta đã khởi tạo biến "con" bằng phương thức connect[] với tên cơ sở dữ liệu là "data. db“. Phương thức connect[] được sử dụng ở đây được xác định trước trong thư viện sqlite3
  • Tại dòng 12, chúng tôi đã khởi tạo biến "truy vấn" bằng truy vấn sql để xóa dữ liệu. Ở đây "người dùng" là tên của bảng của chúng tôi có trong cơ sở dữ liệu của chúng tôi "dữ liệu. db”
  • Tại dòng 13 con trỏ. thực hiện [truy vấn] ở đây con trỏ lưu trữ kết nối cơ sở dữ liệu & thực thi [] là chức năng được xác định trong thư viện sqlite3. Hàm execut[] nhận hai tham số một là “ sql-query ” tham số thứ hai là giá trị sẽ được chuyển thành “ id” to delete data related to that particular “id” from database table.
  • Ở dòng 14, cần gọi hàm commit[] sau khi thực hiện các thay đổi đối với cơ sở dữ liệu của chúng tôi
  • Ở dòng 15, cũng cần phải đóng [] con trỏ của chúng ta. Về cơ bản con trỏ hoạt động như con trỏ

2]. Nhiều hàng – Xóa bản ghi khỏi bảng cơ sở dữ liệu trong SQLite bằng Python

#Importing Database Library
import sqlite3

# Database Connectivity
def deletion[ids]:
    try:
        con = sqlite3.connect["data.db"]
        cursor = con.cursor[]
        print["Connected to Database Successfully"]
        #Data Deletion Process - [ Multiple - Rows ]
        query = "DELETE from USERS where id = ?"
        cursor.executemany[query,ids]
        con.commit[]
        cursor.close[]
    except:
        print["Database Error"]

ids = [[1,],[5,]]
deletion[ids]

#END

Đầu ra. Bảng NGƯỜI DÙNG sau khi xóa hàng. -

Giải thích.  Giải thích chương trình giống như tôi đã thảo luận ở trên. Điểm khác biệt duy nhất là ở đây chúng ta đã sử dụng hàm executemany[] thay vì hàm execute[]. Và chúng tôi cũng đã chuyển danh sách id trong tham số chức năng làm đối số để xóa nhiều hàng.

Quan trọng. Bảng của chúng tôi chỉ còn lại một bản ghi, vì vậy tôi sẽ thêm 5 bản ghi nữa vào bảng của chúng tôi

Bảng của chúng tôi sau khi thêm bản ghi mới

3]. Truy vấn được tham số hóa – Xóa bản ghi khỏi bảng cơ sở dữ liệu trong SQLite bằng Python

#Importing Database Library
import sqlite3

# Database Connectivity
def deletion[ids]:
    try:
        con = sqlite3.connect["data.db"]
        cursor = con.cursor[]
        print["Connected to Database Successfully"]
        #Data Deletion Process - [ Parameterized - Query ]
        query = "DELETE from USERS where id = ?"
        cursor.execute[query,[ids,]]
        con.commit[]
        cursor.close[]
    except:
        print["Database Error"]

deletion[4]

#END

 

Đầu ra. Bảng NGƯỜI DÙNG sau khi xóa hàng. -

Giải thích.  Giải thích chương trình giống như tôi đã thảo luận ở trên. Điểm khác biệt duy nhất là ở đây chúng tôi đã sử dụng hàm được tham số hóa để chuyển id làm đối số để xóa hàng đối với id.

Chủ Đề