Python에서 MySQL 시작하기
pip install mysql-connector-python
import mysql.connector
#접속
mydb = mysql.connector.connect(
host = '<hostname>',
port = <port>,
user = '<username>',
password = '<password>,
database = '<databasename>'
)
#연결 해제
mydb.close()
- 데이터베이스 지정은 생략할 수 있다.
- 로컬 접수일 경우 포트도 생략할 수 있다.
Python에서 쿼리 실행하기
import mysql.connector
mydb = mysql.connector.connect(
host = "<hostname>",
user = "<username>",
password = "<password>",
database = "<databasename>"
)
# 커서 생성 후 쿼리문을 execute 메소드 파라미터로 입력
cursor = mydb.cursor()
cursor.execute(<query>);
mydb.close()
Python에서 SQL File을 실행하기
import mysql.connector
mydb = mysql.connector.connect(
host = "<hostname>",
user = "<username>",
password = "<password>",
database = "<databasename>"
)
cursor = mydb.cursor()
# 파일명을 열고 읽는 메소드 추가
sql = open("<filename>.sql").read()
cursor.execute(sql)
mydb.close()
- SQL File내에 Query가 여러개 존재하는 경우 execute 파라미터 중 multi=True 설정 추가
Python에서 쿼리 실행 결과를 데이터 프레임으로 읽어오기
import pandas as pd
mydb = mysql.connector.connect(
host = "<hostname>",
user = "<username>",
password = "<password>",
database = "<databasename>"
)
cursor = mydb.cursor()
cursor.execute(<query>)
result = cursor.fetchall()
df = pd.DataFrame(result)
df.columns = [info[0] for info in cursor.description]
CSV에 있는 데이터를 Python으로 INSERT
df = pd.read_csv("경로/파일명.csv")
mydb = mysql.connector.connect(
host = "<hostname>",
user = "<username>",
password = "<password>",
database = "<databasename>"
)
cursor = mydb.cursor(buffered = True)
sql = "INSERT INTO table_name Values (%s,%s,%s,...,%s)"
for i, row in df.iterrows():
cursor.execute(sql, tuple(row))
mydb.commit()
- 읽어오는 양이 많은 경우 cursor 생성시 buffered = True로 설정