Python with MySQL_2

์ •ํ•œ๋ณ„ยท2024๋…„ 6์›” 13์ผ
0

๐Ÿ—‚๏ธ Fetch All

์‹คํ–‰ํ•˜๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๋ผ ์กฐํšŒํ•˜๋Š” select๋ฌธ์„ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๋Š”๋ฐ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ fetch all์„ ์จ์„œ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

๐Ÿ“‚ SQL File๋‚ด์— Query๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ

> import mysql.connector
  remote = mysql.connector.connect(
  host = "์—”๋“œํฌ์ธํŠธ",
  port =3306,
  user ="admin",
  password ="๋น„๋ฐ€๋ฒˆํ˜ธ",
  database ="zerobase"
)

>cur = remote.cursor()
sql = open("test04.sql").read()
for result_iterator in cur.execute(sql, multi=True):
    if result_iterator.with_rows:
        print(result_iterator.fetchall())
    else:
        print(result_iterator.statement)
        
>remote.commit()
 remote.close()

๐Ÿ—‚๏ธPython with CSV

CSV ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Python ์œผ๋กœ INSERT ํฐ ๋ฐ์ดํ„ฐ๋“ค์ด ์—‘์…€์ด๋‚˜ scvํŒŒ์ผ์— ๋“ค์–ด์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
์ด๋Ÿฐํ•œ ๊ฒƒ์„ db์— ๋„ฃ๊ณ  ์ฟผ๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ ํŒŒ์ด์ฌ์œผ๋กœ ํ•œ๊บผ๋ฒˆ์— ๋„ฃ๋Š” ๋ฐฉ๋ฒ•

๐Ÿ“‚ CSV์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ PYTHON์œผ๋กœ INSERT

police_station.csv๋ฅผ Pandas๋กœ ์ฝ์–ด์˜ค๊ธฐ

import pandas as pd
df = pd.read_csv("police_station.csv") ** # ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ์ฝ์–ด๋ณธ๋‹ค.**
df.tail()                              ** # ๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ํ™•์ธ-30๊ฐœ**

๐Ÿ“‚ zerobase์— ์—ฐ๊ฒฐ

import mysql.connector

conn = mysql.connector.connect(
host ="์—”๋“œํฌ์ธํŠธ",
port =3306,
user ="zero",
password = "๋น„๋ฐ€๋ฒˆํ˜ธ",
database ="zerobase" #zero๋ผ๋Š” ๊ณ„์ •์€ zerobase๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋งŒ ๊ถŒํ•œ์„ ์คฌ๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ
)

โ—์—ฌ๊ธฐ์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ.

ERROR 1045 (28000) ์ณ๋ณด๋‹ˆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์“ฐ๋ผ๋Š”๋ฐ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ผ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์„œ ํ•ด๊ฒฐ!
ALTER USER 'zero'@'%' IDENTIFIED BY '๋น„๋ฐ€๋ฒˆํ˜ธ';

๐Ÿ“Œ mysql.connector excute- ์ž์„ธํžˆ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด ๊ณต์‹ ๋ฌธ์„œ ์ฐธ์กฐ

๐Ÿ“‚ cursor ๋งŒ๋“ค๊ธฐ

  • ์ฝ์–ด์˜ฌ ์–‘์ด ๋งŽ์€ ๊ฒฝ์šฐ buffer ์„ค์ •์„ ํ•ด์ค€๋‹ค.
  • Buffer ์˜ต์…˜์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ๊บผ๋‹ˆ๊นŒ true๋กœ ํ•ด์ค€๋‹ค.
cursor = conn.cursor(buffered= True)

๐Ÿ“‚ insert๋ฌธ ๋งŒ๋“ค๊ธฐ

์ปฌ๋Ÿผ 2๊ฐœ์˜ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ 2๊ฐœ์˜ string๊ฐ’์„ ๋ฐ›์•„์ค„ ์ˆ˜ ์žˆ๋Š” ์„ค์ •์„ ํ•ด์ค€๊ฒƒ์ด๋‹ค.

sql =" insert into police_station values (%s, %s)" 

๐Ÿ“‚ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

commit()์€ database์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น

for i, row in df.iterrows():
    cursor.execute(sql, tuple(row)) #cursor์— execute sql๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๊ทธ๊ฑธ ๋‚ ๋ ค์ค€๋‹ค.
    print (tuple(row))
    conn.commit()
    ```
    ![](https://velog.velcdn.com/images/quf277/post/eec47edc-c0d3-46f6-8d3d-5abe044cb376/image.png)

๐Ÿ“‚ ๊ฒฐ๊ณผํ™•์ธ

cursor.execute("select * from police_station")
result =cursor.fetchall()
result[3]

for row in result:
    print(row)
    ```

๐Ÿ“‚ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ pandas๋กœ ์ฝ๊ธฐ

df =pd.DataFrame(result)
 df.tail()

๐Ÿ“‚ python with CSV ์˜ˆ์ œ

crime_status ํ…Œ์ด๋ธ”์— 2020_crime.csv๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ

import mysql.connector
conn =mysql.connector.connect(
    host ="์—”๋“œํฌ์ธํŠธ",
    port = 3306,
    user ="zero",
    password ="๋น„๋ฐ€๋ฒˆํ˜ธ",
    database ="zerobase"
)

๐Ÿ—’๏ธ 2020_crime.csv ๋ฐ์ดํ„ฐ (encoding ="euc-kr")์ฝ์–ด์˜ค๊ธฐ

df =pd.read_csv("2020_crime.csv", encoding= 'euc-kr')
df.head(2)

๐Ÿ—’๏ธ insert ์ฟผ๋ฆฌ ์ž‘์„ฑ

 sql = " insert into crime_status values ('2020', %s, %s, %s, %s)"
cursor =conn.cursor(buffered=True)

๐Ÿ—’๏ธ ๋ฐ์ดํ„ฐ๋ฅผ crime_status ํ…Œ์ด๋ธ”์— insert

for i, row in df.iterrows():
    cursor.execute(sql, tuple(row))
    print(tuple(row))
    conn.commit()
    ```
    ![](https://velog.velcdn.com/images/quf277/post/695fd18d-e1ac-47b9-b57a-4c8a8dac9002/image.png)

๐Ÿ—’๏ธ crime_status ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ์กฐํšŒ

cursor.execute("select * from crime_status")
result =cursor.fetchall()
for row in result:
 print(row)

๐Ÿ—’๏ธ ์กฐํšŒํ•œ ๊ฒฐ๊ณผ๋ฅผ pandas๋กœ ๋ณ€ํ™˜ํ•ด์„œ ํ™•์ธ

 df=pd.DataFrame(result)
 df.head()

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด