Search

Python x MySQL ์—ฐ๋™

Python x MySQL ์—ฐ๋™

1.
pymysql ๋ชจ๋“ˆ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ
2.
๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์ ‘์†
โ€ข
๋ฐ์ดํ„ฐ ์†Œ์Šค : DB ์ ‘์† ์ •๋ณด
โ—ฆ
๊ณ„์ •
โ—ฆ
๋น„๋ฐ€๋ฒˆํ˜ธ
โ—ฆ
ํ˜ธ์ŠคํŠธ
โ—ฆ
์Šคํ‚ค๋งˆ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)
3.
๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ ‘์†
4.
์ปค์„œ ์ƒ์„ฑ
5.
์กฐํšŒ ๋ฐ ์กฐ์ž‘ ํ•จ์ˆ˜ ์‚ฌ์šฉ
โ€ข
์กฐํšŒ ํ•จ์ˆ˜ : fetchall(), fetchone()
โ€ข
์กฐ์ž‘ ํ•จ์ˆ˜ : excute() - ๋“ฑ๋ก,์ˆ˜์ •,์‚ญ์ œ

pymysql ๋ชจ๋“ˆ ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ

โ€ข
pymysql ๋ชจ๋“ˆ
โ€ข
pymysql ๋ชจ๋“ˆ ์„ค์น˜
โ€ข
pymysql ๋ชจ๋“ˆ ์‚ฌ์šฉ

pymysql ๋ชจ๋“ˆ

Python์—์„œ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ
pymysql ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด Python ์ฝ”๋“œ์—์„œ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
1.
์—ฐ๊ฒฐ: MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
2.
์ฟผ๋ฆฌ ์‹คํ–‰: SQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ, ์ถ”๊ฐ€, ์ˆ˜์ • ๋˜๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
3.
๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ: ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์™€์„œ Python ์ฝ”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
4.
์—ฐ๊ฒฐ ์ข…๋ฃŒ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

pymysql ๋ชจ๋“ˆ ์„ค์น˜

pip install pymysql
Bash
๋ณต์‚ฌ
MySQL ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์„ ๋ณด์•ˆํ•˜๊ธฐ ์œ„ํ•ด TLS/SSL์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด, cryptography ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
pip install cryptography
Bash
๋ณต์‚ฌ

pymysql ๋ชจ๋“ˆ ์‚ฌ์šฉ

import pymysql
Bash
๋ณต์‚ฌ

pymysql ์„ ์‚ฌ์šฉํ•˜์ด ์œ„ํ•œ ๊ธฐ๋ณธ ์ฝ”๋“œ

import pymysql # MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ connection = pymysql.connect(host='ํ˜ธ์ŠคํŠธ๋ช…', user='์‚ฌ์šฉ์ž๋ช…', password='๋น„๋ฐ€๋ฒˆํ˜ธ', database='๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: # ์ฟผ๋ฆฌ ์‹คํ–‰ sql = "SELECT * FROM ํ…Œ์ด๋ธ”๋ช…" cursor.execute(sql) # ๊ฒฐ๊ณผ ๊ฐ€์ ธ์˜ค๊ธฐ result = cursor.fetchall() for row in result: print(row) finally: # ์—ฐ๊ฒฐ ์ข…๋ฃŒ connection.close()
Python
๋ณต์‚ฌ

๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์ ‘์†

๋ฐ์ดํ„ฐ ์†Œ์Šค : DB ์ ‘์† ์ •๋ณด

โ€ข
๊ณ„์ •
โ€ข
๋น„๋ฐ€๋ฒˆํ˜ธ
โ€ข
ํ˜ธ์ŠคํŠธ
โ€ข
์Šคํ‚ค๋งˆ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)
์†์„ฑ
๊ฐ’
ํ˜ธ์ŠคํŠธ
127.0.0.1
์‚ฌ์šฉ์ž
aloha
๋น„๋ฐ€๋ฒˆํ˜ธ
123456
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
aloha
ํ˜ธ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ip ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ PC ๋กœ ์ ‘์†ํ•œ๋‹ค๋ฉด, 127.0.0.1 ๋˜๋Š” localhost ๋กœ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋‹ค๋ฅธ DB ์„œ๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋ผ๋ฉด ํ•ด๋‹น DB์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ์—ฌ๊ธฐ์„œ๋Š” aloha ๋ผ๊ณ  ์ƒ์„ฑํ•˜๊ณ  ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋„ 123456 ์œผ๋กœ ์ง€์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์†Œ์Šค (์ ‘์†์ •๋ณด)๋Š” ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ๊ณ„์ •์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. database(์Šคํ‚ค๋งˆ)๋Š” ์—ฌ๊ธฐ์„œ๋Š” aloha ๋ผ๊ณ  ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ ‘์†

pymysql ๋ชจ๋“ˆ์˜ connect ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DB์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.
# MySQL ์„œ๋ฒ„์— ์ ‘์† conn = pymysql.connect( host='127.0.0.1', user='aloha', password='123456', database='aloha', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor )
Python
๋ณต์‚ฌ
pymysql.connect( ๋ฐ์ดํ„ฐ์†Œ์Šค ) ํ˜•ํƒœ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ •์ƒ์ ์œผ๋กœ DB์— ์ ‘์†์ด ์„ฑ๊ณต๋˜๋ฉด, ์—ฐ๊ฒฐ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด conn ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ์ปค์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค์„œ ์ƒ์„ฑ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

์ปค์„œ์˜ ์—ญํ• 

1.
์ฟผ๋ฆฌ ์‹คํ–‰: ์ปค์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— SQL ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ, ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2.
๊ฒฐ๊ณผ ๊ฐ€์ ธ์˜ค๊ธฐ: ์ปค์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด ๊ฒฐ๊ณผ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ ˆ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๊ฐ ๋ ˆ์ฝ”๋“œ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
3.
๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ: ๊ฐ€์ ธ์˜จ ๊ฒฐ๊ณผ๋ฅผ Python ์ฝ”๋“œ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
4.
ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ: ์ปค์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ  ์ข…๋ฃŒํ•˜๋ฉฐ, ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค์„œ ์ƒ์„ฑ

with connection.cursor() as cursor: # ์ฟผ๋ฆฌ ์‹คํ–‰ sql = "SQL ์ฟผ๋ฆฌ" cursor.execute(sql) # ๊ฒฐ๊ณผ ๊ฐ€์ ธ์˜ค๊ธฐ result = cursor.์กฐํšŒ๋ฐ์กฐ์ž‘ํ•จ์ˆ˜()
Python
๋ณต์‚ฌ
์œ„์™€ ๊ฐ™์ด ์‹คํ–‰ํ•  SQL ๋ฌธ์žฅ์„ โ€œ๋ฌธ์ž์—ดโ€ ๋กœ ์ž‘์„ฑํ•˜๊ณ , excute(sql) ํ•จ์ˆ˜๋กœ ์ฟผ๋ฆฌ๋ฅผ DB ์— ์‹คํ–‰ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ํ›„, ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ์กฐ์ž‘ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์Šต๋‹ˆ๋‹ค.

์กฐํšŒ ๋ฐ ์กฐ์ž‘ ํ•จ์ˆ˜ ์‚ฌ์šฉ

โ€ข
์กฐํšŒ ํ•จ์ˆ˜ : fetchall(), fetchone()
โ€ข
์กฐ์ž‘ ํ•จ์ˆ˜ : excute() - ๋“ฑ๋ก,์ˆ˜์ •,์‚ญ์ œ

์กฐํšŒ ํ•จ์ˆ˜ : fetchall(), fetchone()

ํ•จ์ˆ˜
์„ค๋ช…
๋ฐ˜ํ™˜๊ฐ’
fetchall()
ํ˜„์žฌ ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์˜ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ํ–‰์„ ๋ฐ˜ํ™˜
fetchone()
ํ˜„์žฌ ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์˜ ๋‹ค์Œ ๊ฒฐ๊ณผ ํ–‰ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
๋‹ค์Œ ๊ฒฐ๊ณผ ํ–‰์„ ๋ฐ˜ํ™˜
fetchall() ํ•จ์ˆ˜๋Š” ํ˜„์žฌ ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์˜ ๋ชจ๋“  ๊ฒฐ๊ณผ ํ–‰์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ฟผ๋ฆฌ์˜ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ–‰์€ ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.
fetchone() ํ•จ์ˆ˜๋Š” ํ˜„์žฌ ์‹คํ–‰๋œ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ํ–‰ ์ค‘ ๋‹ค์Œ ํ–‰ ํ•˜๋‚˜๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์Œ ๊ฒฐ๊ณผ ํ–‰์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋” ์ด์ƒ ๊ฒฐ๊ณผ๊ฐ€ ์—†์œผ๋ฉด None์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ์กฐํšŒ
# pip install pymysql # pip install cryptography import pymysql # MySQL ์„œ๋ฒ„์— ์ ‘์† conn = pymysql.connect( host='127.0.0.1', user='joeun', password='123456', database='joeun', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) try: with conn.cursor() as cursor: sql = "SELECT * FROM ํ•™์ƒ" cursor.execute(sql) # DB์— ์ฟผ๋ฆฌ ์š”์ฒญ students = cursor.fetchall() # ๊ฒฐ๊ณผ for student in students: print( student ) except pymysql.MySQLError as e: print('MySQL ์—๋Ÿฌ : ', e) finally: conn.close()
Python
๋ณต์‚ฌ
โ€ข
ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ ๋‹จ์ผ ํ…Œ์ดํ„ฐ ์กฐํšŒ
# pip install pymysql # pip install cryptography import pymysql # MySQL ์„œ๋ฒ„์— ์ ‘์† conn = pymysql.connect( host='127.0.0.1', user='joeun', password='123456', database='joeun', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) try: with conn.cursor() as cursor: sql = "SELECT * FROM ํ•™์ƒ WHERE no = 1 " cursor.execute(sql) # DB์— ์ฟผ๋ฆฌ ์š”์ฒญ student = cursor.fetchone() # ๊ฒฐ๊ณผ print( student ) except pymysql.MySQLError as e: print('MySQL ์—๋Ÿฌ : ', e) finally: conn.close()
Python
๋ณต์‚ฌ

์กฐ์ž‘ ํ•จ์ˆ˜ : excute() - ๋“ฑ๋ก,์ˆ˜์ •,์‚ญ์ œ

excute( SQL, ํŒŒ๋ผ๋ฏธํ„ฐ )
ํŒŒ๋ผ๋ฏธํ„ฐ
์„ค๋ช…
SQL
์‹คํ–‰ํ•  SQL ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค.
ํŒŒ๋ผ๋ฏธํ„ฐ
ํ•„์š”์— ๋”ฐ๋ผ SQL ์ฟผ๋ฆฌ์— ์ „๋‹ฌํ•  ํŒŒ๋ผ๋ฏธํ„ฐ์ž…๋‹ˆ๋‹ค. ๋‹จ์ผ ๋ฐ์ดํ„ฐ ๋˜๋Š” ํŠœํ”Œ ํ˜•ํƒœ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
SQL ๋ฌธ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ โ€˜%sโ€™ ๊ธฐํ˜ธ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ ์กฐํšŒ, ๋“ฑ๋ก, ์ˆ˜์ •, ์‚ญ์ œ ์ฟผ๋ฆฌ์— ๋Œ€ํ•˜์—ฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๊ฒฝ์šฐ %s ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
sql = 'SELECT * FROM ํ•™์ƒ WHERE no = %s'
Python
๋ณต์‚ฌ
sql = " INSERT INTO ํ•™์ƒ (std_id, name, tel) "\ + " VALUES (%s, %s, %s) "
Python
๋ณต์‚ฌ
sql = " UPDATE ํ•™์ƒ "\ + " SET std_id = %s "\ + " ,name = %s "\ + " ,tel = %s "\ + " ,upd_date = now() "\ + " WHERE std_id = %s "
Python
๋ณต์‚ฌ
sql = " DELETE FROM ํ•™์ƒ "\ + " WHERE std_id = %s "
Python
๋ณต์‚ฌ
์œ„์— ์ž‘์„ฑํ•œ SQL ๋ฌธ์žฅ์— ๋Œ€ํ•˜์—ฌ, execute( sql, (ํŒŒ๋ผ๋ฏธํ„ฐ1, ํŒŒ๋ผ๋ฏธํ„ฐ2,) ) ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด,
%s ๊ธฐํ˜ธ์— ํŒŒ๋ผ๋ฏธํ„ฐ1, 2 ๋ฅผ ์ˆœ์„œ๋ฅผ ๋งž์ถฐ์„œ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
ํ•™์ƒ ๋ฐ์ดํ„ฐ ์กฐํšŒ
โ€ข
ํ•™์ƒ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€
โ€ข
ํ•™์ƒ ๋ฐ์ดํ„ฐ ์ˆ˜์ •
โ€ข
ํ•™์ƒ ๋ฐ์ดํ„ฐ ์‚ญ์ œ

ํ•™์ƒ ๋ฐ์ดํ„ฐ ์กฐํšŒ

# pip install pymysql # pip install cryptography import pymysql # MySQL ์„œ๋ฒ„์— ์ ‘์† conn = pymysql.connect( host='127.0.0.1', user='joeun', password='123456', database='joeun', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) try: with conn.cursor() as cursor: sql = "SELECT * FROM ํ•™์ƒ WHERE no = %s " cursor.execute(sql, 1) # DB์— ์ฟผ๋ฆฌ ์š”์ฒญ student = cursor.fetchone() # ๊ฒฐ๊ณผ print( student ) except pymysql.MySQLError as e: print('MySQL ์—๋Ÿฌ : ', e) finally: conn.close()
Python
๋ณต์‚ฌ

ํ•™์ƒ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

import pymysql # MySQL ์„œ๋ฒ„์— ์ ‘์† conn = pymysql.connect( host='127.0.0.1', user='joeun', password='123456', database='joeun', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) std_id = input('ํ•™๋ฒˆ : ') name = input('์ด๋ฆ„ : ') tel = input('์ „ํ™”๋ฒˆํ˜ธ : ') try: # ์ปค์„œ ์ƒ์„ฑ with conn.cursor() as cursor: # ๋ฐ์ดํ„ฐ ๋“ฑ๋ก ์ฟผ๋ฆฌ sql = " INSERT INTO ํ•™์ƒ (std_id, name, tel) "\ + " VALUES (%s, %s, %s) " # + " VALUES ('B2401', 'ํ™๊ธธ๋™', '010-1234-1234') " # result = cursor.execute(sql) # ์ฟผ๋ฆฌ ์‹คํ–‰ ์š”์ฒญ result = cursor.execute(sql, (std_id, name, tel)) # ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • print('{}ํ–‰์˜ ๋ฐ์ดํ„ฐ ๋“ฑ๋ก ์™„๋ฃŒ'.format(result)) # ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ ์šฉ conn.commit() except pymysql.MySQLError as e: print("๋ฐ์ดํ„ฐ ๋“ฑ๋ก ์ค‘ ์—๋Ÿฌ ๋ฐœ์ƒ : ", e) finally: conn.close()
Python
๋ณต์‚ฌ

ํ•™์ƒ ๋ฐ์ดํ„ฐ ์ˆ˜์ •

import pymysql # MySQL ์„œ๋ฒ„์— ์ ‘์† conn = pymysql.connect( host='127.0.0.1', user='joeun', password='123456', database='joeun', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) std_id = input('ํ•™๋ฒˆ : ') name = input('์ด๋ฆ„ : ') tel = input('์ „ํ™”๋ฒˆํ˜ธ : ') try: # ์ปค์„œ ์ƒ์„ฑ with conn.cursor() as cursor: # ๋ฐ์ดํ„ฐ ์ˆ˜์ • ์ฟผ๋ฆฌ sql = " UPDATE ํ•™์ƒ "\ + " SET std_id = %s "\ + " ,name = %s "\ + " ,tel = %s "\ + " ,upd_date = now() "\ + " WHERE std_id = %s " # + " VALUES ('B2401', 'ํ™๊ธธ๋™', '010-1234-1234') " # result = cursor.execute(sql) # ์ฟผ๋ฆฌ ์‹คํ–‰ ์š”์ฒญ result = cursor.execute(sql, (std_id, name, tel, std_id)) # ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • print('{}ํ–‰์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ • ์™„๋ฃŒ'.format(result)) # ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ ์šฉ conn.commit() except pymysql.MySQLError as e: print("๋ฐ์ดํ„ฐ ์ˆ˜์ • ์ค‘ ์—๋Ÿฌ ๋ฐœ์ƒ : ", e) finally: conn.close()
Python
๋ณต์‚ฌ

ํ•™์ƒ ๋ฐ์ดํ„ฐ ์‚ญ์ œ

import pymysql # MySQL ์„œ๋ฒ„์— ์ ‘์† conn = pymysql.connect( host='127.0.0.1', user='joeun', password='123456', database='joeun', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) std_id = input('ํ•™๋ฒˆ : ') try: # ์ปค์„œ ์ƒ์„ฑ with conn.cursor() as cursor: # ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์ฟผ๋ฆฌ sql = " DELETE FROM ํ•™์ƒ "\ + " WHERE std_id = %s " result = cursor.execute(sql, (std_id)) # ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ • print('{}ํ–‰์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์™„๋ฃŒ'.format(result)) # ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ ์šฉ conn.commit() except pymysql.MySQLError as e: print("๋ฐ์ดํ„ฐ ์‚ญ์ œ ์ค‘ ์—๋Ÿฌ ๋ฐœ์ƒ : ", e) finally: conn.close()
Python
๋ณต์‚ฌ