
install mysql driver
# mysql driver ์ค์น
pip install mysql-connector-python
# ์ค์นํ์ธ
import.mysql.connector
Python with MYSQL
create connection
MYSQL์ ์ ์ํ๊ธฐ ์ํ ์ฝ๋
<connection name> = mysql.connector.connect(
host = "<hostname>",
user = "<username>",
password = "<password>",
database = "<databasename>" #ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์
)
close connection
<connection name>.close()
execute SQL
Query ๋ฅผ ์คํํ๊ธฐ ์ํ ์ฝ๋
<cursorname> = <connection name>.cursor()
<cursorname>.execute(<query>)
execute SQL File
SQL File ์ ์คํํ๊ธฐ ์ํ ์ฝ๋
<cursorname> = <connection name>.cursor()
sql = open("<filename>.sql").read()
<cursorname>.execute(sql) # SQL File ๋ด์ Query ๊ฐ ์ฌ๋ฌ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ multi=True ์ถ๊ฐ
fetchall()
<cursorname> = <connection name>.cursor() # ์ฝ์ด์ฌ ๋ฐ์ดํฐ ์์ด ๋ง์ ๊ฒฝ์ฐ buffered=True
mycursor.execute(<query>)
result = <cursorname>.fetchall()
for data in result:
print(data)
โ ๊ฒ์๊ฒฐ๊ณผ pandas ๋ก ์ฝ๊ธฐ
import pandas as pd
df = pd.DataFrame(result)
df.head()
CSV ์ ์๋ ๋ฐ์ดํฐ๋ฅผ Python ์ผ๋ก INSERT ํ๋๋ฒ
1๏ธโฃ read csv
import pandas as pd
df = pd.read_csv("<csvfilename>") # csv ํ๊ธ์ด ๊นจ์ง๋ ๊ฒฝ์ฐ, encoding ๊ฐ์ 'euc-kr' ๋ก ์ค์
df.head()
2๏ธโฃ cursor ๋ง๋ค๊ธฐ
<cursorname> = <connection name>.cursor(buffered=True)
3๏ธโฃ inser๋ฌธ ๋ง๋ค๊ธฐ
sql = "insert into <tablename> values (%s, %s,...)"
4๏ธโฃ ๋ฐ์ดํฐ ์
๋ ฅ
for i, row in df.iterrows():
<cursorname>.execute(sql, tuple(row))
print(tuple(row))
<connection name>.commit() # commit() ์ database ์ ์ ์ฉํ๊ธฐ ์ํ ๋ช
๋ น
5๏ธโฃ ๊ฒฐ๊ณผํ์ธ
<cursorname>.execute("select * from <tablename>")
result = <cursorname>.fetchall()
for row in result:
print(row)
โ pandas ๋ก ๊ฒฐ๊ณผ ์ฝ๊ธฐ
df = pd.DataFrame(result)
df.head()

โ encoding='utf-8' ๋ก ํ๋ฉด ํ๊ธ์ด ๊นจ์ง๊ณ ,
encoding='cp949' & 'euc-kr'์ ์ธ์์ ๋ชปํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํจ ๐ญ
[-ํด๊ฒฐ๋ฐฉ์ ์ ๋ฆฌํด์ ์์ฑํ๊ธฐ-]
-- ์ด๋ฒํ์ผ์ ๋ฐ์ดํฐ๊ฐ ํฌ์ง ์์์ csv ํ์ผ์ ์์ ํด์ ์ฌ์ฉํจ.
conn = mysql.connector.connect(
host = "database-1.ct6emoc66tc9.ap-southeast-2.rds.amazonaws.com",
port = "3306",
user = "admin",
password = "***********",
database = "review"
)
sql = "create table temperature (๋ ์ง date, ์ง์ญ varchar(8), ํ๊ท ๊ธฐ์จ float, ์ต์ ๊ธฐ์จ float, ์ต๊ณ ๊ธฐ์จ float)"
cursor = conn.cursor(buffered=True)
cursor.execute(sql)
df = pd.read_csv("temperature.csv", encoding='utf-8')
df.head(2)
sql = "insert into temperature values(%s,%s,%s,%s,%s)"
cursor = conn.cursor(buffered=True)
for i, row in df.iterrows():
cursor.execute(sql, tuple(row))
print(tuple(row))
conn.commit()
cursor.execute("select*from temperature")
result = cursor.fetchall()
for row in result:
print(row)
df = pd.DataFrame(result)
df.head()
์ค์ตํ์ธ
![]() | ![]() |
|---|