Python SQLite - Mệnh đề Where
Nếu bạn muốn tìm nạp, xóa hoặc cập nhật các hàng cụ thể của bảng trong SQLite, bạn cần sử dụng mệnh đề where để chỉ định điều kiện để lọc các hàng của bảng cho thao tác.
Ví dụ, nếu bạn có một câu lệnh SELECT với mệnh đề where, chỉ các hàng thỏa mãn điều kiện đã chỉ định mới được truy xuất.
Cú pháp
Sau đây là cú pháp của mệnh đề WHERE trong SQLite:
SELECT column1, column2, columnN
FROM table_name
WHERE [search_condition]
Bạn có thể chỉ định điều kiện tìm kiếm bằng cách sử dụng các toán tử so sánh hoặc lôgic. like>, <, =, LIKE, NOT, vv Các ví dụ sau đây sẽ làm rõ khái niệm này.
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>
Câu lệnh SELECT sau truy xuất các bản ghi có tuổi lớn hơn 35 -
sqlite> SELECT * FROM CRICKETERS WHERE AGE > 35;
First_Name Last_Name Age Place_Of_B Country
---------- ---------- ---- ---------- -------------
Jonathan Trott 38 CapeTown SouthAfrica
Kumara Sangakkara 41 Matale Srilanka
sqlite>
Mệnh đề where sử dụng python
Đối tượng / lớp con trỏ chứa tất cả các phương thức để thực thi truy vấn và tìm nạp dữ liệu, v.v ... Phương thức con trỏ của lớp kết nối trả về một đối tượng con trỏ.
Do đó, để tạo một bảng trong cơ sở dữ liệu SQLite bằng python -
Thiết lập kết nối với cơ sở dữ liệu bằng phương thức connect ().
Tạo đối tượng con trỏ bằng cách gọi phương thức con trỏ () trên đối tượng kết nối đã tạo ở trên.
Bây giờ thực thi câu lệnh CREATE TABLE bằng phương thức execute () của lớp Con trỏ.
Thí dụ
Ví dụ sau tạo một bảng có tên Nhân viên và điền vào bảng đó. Sau đó, sử dụng mệnh đề where, nó truy xuất các bản ghi có giá trị tuổi nhỏ hơn 23.
import sqlite3
#Connecting to sqlite
conn = sqlite3.connect('example.db')
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
#Doping EMPLOYEE table if already exists.
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
sql = '''CREATE TABLE EMPLOYEE(
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT
)'''
cursor.execute(sql)
#Populating the table
cursor.execute('''INSERT INTO EMPLOYEE(
FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES
('Ramya', 'Rama priya', 27, 'F', 9000)''')
cursor.execute('''INSERT INTO EMPLOYEE
(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES
('Vinay', 'Battacharya', 20, 'M', 6000)''')
cursor.execute('''INSERT INTO EMPLOYEE(
FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES
('Sharukh', 'Sheik', 25, 'M', 8300)''')
cursor.execute('''INSERT INTO EMPLOYEE(
FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES
('Sarmista', 'Sharma', 26, 'F', 10000)''')
cursor.execute('''INSERT INTO EMPLOYEE(
FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES
('Tripthi', 'Mishra', 24, 'F', 6000)''')
#Retrieving specific records using the where clause
cursor.execute("SELECT * from EMPLOYEE WHERE AGE <23")
print(cursor.fetchall())
#Commit your changes in the database
conn.commit()
#Closing the connection
conn.close()
Đầu ra
[('Vinay', 'Battacharya', 20, 'M', 6000.0)]