MySQL Select Clause via Python
Page content
개요
- 이전 강의에서 출발한다. MySQL Table Creation and Insert Data via Python
데이터 조회
- 다음 코드를 작성한다.
import mysql.connector
mydb = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "evan",
database = "mulcampdb"
)
print(mydb)
my_cursor = mydb.cursor()
query = """
SELECT * FROM users;
"""
my_cursor.execute(query)
result = my_cursor.fetchall()
for row in result:
print(row)
print("완료")
- 파일을 실행한다.
$ python database.py
<mysql.connector.connection_cext.CMySQLConnection object at 0x000001FE5A985F10>
('Evan', 'Evan@gmail.com', 30, 1)
('Evan', 'Evan@gmail.com', 30, 2)
('Mary', 'Mary@gmail.com', 20, 3)
('Sara', 'Sara@gmail.com', 25, 4)
완료
pandas 데이터프레임으로 변환
- 주어진 결괏값으로 pandas 데이터프레임으로 변환한다.
- 먼저 라이브러리를 설치한다.
$ pip install pandas
- 데이터 같이 코드를 작성한다.
import mysql.connector
import pandas as pd
mydb = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "evan",
database = "mulcampdb"
)
print(mydb)
my_cursor = mydb.cursor(dictionary=True)
query = """
SELECT * FROM users;
"""
my_cursor.execute(query)
result = my_cursor.fetchall()
for row in result:
print(row)
df = pd.DataFrame(result)
print(df)
print("완료")
- 파일을 실행한다.
$ python database.py
<mysql.connector.connection_cext.CMySQLConnection object at 0x000002C4C47D5490>
{'name': 'Evan', 'email': 'Evan@gmail.com', 'age': 30, 'user_id': 1}
{'name': 'Evan', 'email': 'Evan@gmail.com', 'age': 30, 'user_id': 2}
{'name': 'Mary', 'email': 'Mary@gmail.com', 'age': 20, 'user_id': 3}
{'name': 'Sara', 'email': 'Sara@gmail.com', 'age': 25, 'user_id': 4}
name email age user_id
0 Evan Evan@gmail.com 30 1
1 Evan Evan@gmail.com 30 2
2 Mary Mary@gmail.com 20 3
3 Sara Sara@gmail.com 25 4
완료
코드 복기
- 커서를 생성하는 코드를 다시 확인해본다.
- 이 코드는
dictionary=True
는 조회 결과를Dictionary
형태로 받기 위한 설정이다.
- 이 코드는
my_cursor = mydb.cursor(dictionary=True)
- 이 코드로 인해, pandas DataFrame으로 변환하는 것이 매우 쉬워진다.
result = my_cursor.fetchall()
df = pd.DataFrame(result)
print(df)