Python MySQL - 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 MySQL, 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 hoạt động.

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:

SELECT column1, column2, columnN
FROM table_name
WHERE [condition]

Thí dụ

Giả sử chúng ta đã tạo một bảng trong MySQL với tên EMPLOYEES là -

mysql> CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT,
   SEX CHAR(1),
   INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)

Và nếu chúng ta đã chèn 4 bản ghi vào nó bằng cách sử dụng câu lệnh INSERT là -

mysql> INSERT INTO EMPLOYEE VALUES
   ('Krishna', 'Sharma', 19, 'M', 2000),
   ('Raj', 'Kandukuri', 20, 'M', 7000),
   ('Ramya', 'Ramapriya', 25, 'F', 5000),
   ('Mac', 'Mohan', 26, 'M', 2000);

Sau câu lệnh MySQL truy xuất bản ghi của những nhân viên có thu nhập lớn hơn 4000.

mysql> SELECT * FROM EMPLOYEE WHERE INCOME > 4000;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE  | SEX  | INCOME | 
+------------+-----------+------+------+--------+
| Raj        | Kandukuri |    20| M    | 7000   |
| Ramya      | Ramapriya |    25| F    | 5000   |
+------------+-----------+------+------+--------+
2 rows in set (0.00 sec)

Mệnh đề WHERE sử dụng Python

Để tìm nạp các bản ghi cụ thể từ một bảng bằng chương trình python -

  • nhập khẩu mysql.connector gói hàng.

  • Tạo một đối tượng kết nối bằng cách sử dụng mysql.connector.connect() bằng cách chuyển tên người dùng, mật khẩu, máy chủ lưu trữ (mặc định tùy chọn: localhost) và, cơ sở dữ liệu (tùy chọn) làm tham số cho nó.

  • Tạo một đối tượng con trỏ bằng cách gọi cursor() trên đối tượng kết nối đã tạo ở trên.

  • Sau đó, thực hiện câu lệnh SELECT với mệnh đề WHERE , bằng cách chuyển nó dưới dạng tham số choexecute() phương pháp.

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 mysql.connector
#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)

#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
insert_stmt = "INSERT INTO EMPLOYEE (
   FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (%s, %s, %s, %s, %s
)"
data = [
   ('Krishna', 'Sharma', 19, 'M', 2000), 
   ('Raj', 'Kandukuri', 20, 'M', 7000),
   ('Ramya', 'Ramapriya', 25, 'F', 5000),
   ('Mac', 'Mohan', 26, 'M', 2000)
]
cursor.executemany(insert_stmt, data)
conn.commit()
#Retrieving specific records using the where clause
cursor.execute("SELECT * from EMPLOYEE WHERE AGE <23")
print(cursor.fetchall())

#Closing the connection
conn.close()

Đầu ra

[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]