Python MySQL-Where 절

MySQL에서 테이블의 특정 행을 가져 오거나 삭제하거나 업데이트하려면 where 절을 사용하여 작업에 대한 테이블 행을 필터링하는 조건을 지정해야합니다.

예를 들어 where 절이있는 SELECT 문이있는 경우 지정된 조건을 충족하는 행만 검색됩니다.

통사론

다음은 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)

그리고 INSERT 문을 사용하여 4 개의 레코드를 삽입했다면-

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)

Python을 사용하는 WHERE 절

파이썬 프로그램을 사용하여 테이블에서 특정 레코드를 가져 오려면-

  • 수입 mysql.connector 꾸러미.

  • 다음을 사용하여 연결 개체를 만듭니다. mysql.connector.connect() 사용자 이름, 암호, 호스트 (선택적 기본값 : localhost) 및 데이터베이스 (선택적)를 매개 변수로 전달합니다.

  • 다음을 호출하여 커서 개체를 만듭니다. cursor() 위에서 만든 연결 개체에 대한 메서드.

  • 그런 다음 WHERE 절이 있는 SELECT 문을 매개 변수로 전달하여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)]