Python MySQL - предложение Where
Если вы хотите получить, удалить или обновить определенные строки таблицы в MySQL, вам необходимо использовать предложение where, чтобы указать условие для фильтрации строк таблицы для операции.
Например, если у вас есть оператор SELECT с предложением where, будут извлечены только те строки, которые удовлетворяют указанному условию.
Синтаксис
Ниже приведен синтаксис предложения WHERE -
SELECT column1, column2, columnN
FROM table_name
WHERE [condition]
пример
Предположим, мы создали таблицу в MySQL с именем EMPLOYEES как -
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)
И если мы вставили в него 4 записи, используя инструкции INSERT как -
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);
После утверждения MySQL извлекаются записи о сотрудниках, чей доход превышает 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)
Предложение WHERE с использованием Python
Чтобы получить определенные записи из таблицы с помощью программы python -
импорт mysql.connector пакет.
Создайте объект подключения, используя mysql.connector.connect() , передав ему имя пользователя, пароль, хост (необязательно по умолчанию: localhost) и базу данных (необязательно) в качестве параметров.
Создайте объект курсора, вызвав cursor() в созданном выше объекте подключения.
Затем выполните оператор SELECT с предложением WHERE , передав его в качестве параметра вexecute() метод.
пример
В следующем примере создается таблица с именем Employee и заполняется ее. Затем, используя предложение where, он извлекает записи со значением возраста менее 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()
Вывод
[('Krishna', 'Sharma', 19, 'M', 2000.0), ('Raj', 'Kandukuri', 20, 'M', 7000.0)]