(MySQL)Python with MySQL

지며리·2023년 1월 6일
0

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로 설정
profile
호지자불여락지자

0개의 댓글