๋ฐ์ดํฐ๋ถ์๊ฐ ๊ณผ์ /Python
DAY40. Python DB์ฐ๋, CRUD, table
LEE_BOMB
2021. 11. 12. 19:34
db ์ฐ๊ฒฐ ํ ์คํธ
import pymysql # driver = p/g + DB
DB ์ฐ๊ฒฐ ํ๊ฒฝ
config = {
'host' : '127.0.0.1',
'user' : 'scott',
'password' : 'tiger',
'database' : 'work',
'port' : 3306,
'charset':'utf8',
'use_unicode' : True} #dict
try :
#db ์ฐ๋ ๊ฐ์ฒด ์์ฑ
conn = pymysql.connect(**config)
#sql๋ฌธ ์คํ ๊ฐ์ฒด ์์ฑ
cursor = conn.cursor()
sql = "select * from goods"
cursor.execute(sql) #sql๋ฌธ ์คํ
dataset = cursor.fetchall() #์กฐํ๋ ๋ชจ๋ ๋ ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ
for row in dataset :
print(row)
except Exception as e:
print('์์ธ๋ฐ์ : ', e)
finally :
pass
ํฌ๋ฃจ๋(CRUD)
Create(insert), Read(select), Update, Delete
import pymysql
config = {
'host' : '127.0.0.1',
'user' : 'scott',
'password' : 'tiger',
'database' : 'work',
'port' : 3306,
'charset':'utf8',
'use_unicode' : True}
try :
#db ์ฐ๋ ๊ฐ์ฒด
conn = pymysql.connect(**config)
#sql๋ฌธ ์คํ ๊ฐ์ฒด
cursor = conn.cursor()
#4. ๋ ์ฝ๋ ์ญ์ : Delete(code -> ๋ ์ฝ๋ ์ญ์ )
'''
code = int(input('delete code input : '))
query = f"select * from goods where code = {code}"
cursor.execute(query)
row = cursor.fetchone() #1๊ฐ ๋ ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ
if row : #code ์๋ ๊ฒฝ์ฐ
cursor.execute(f"delete from goods where code = {code}")# ์ญ์
conn.commit() #db ๋ฐ์
else :
print('ํด๋น code๋ ์์ต๋๋ค.')
'''
#3. ๋ ์ฝ๋ ์์ : Update(code -> su, dan ์์ )
'''
code = int(input('update code input : ')) #4
su = int(input('update su input : ')) #3
dan = int(input('update dan input : ')) #550000
query = f"""update goods
set su = {su}, dan = {dan}
where code={code}"""
cursor.execute(query) # ๋ ์ฝ๋ ์์
conn.commit() #db ๋ฐ์
'''
#2. ๋ ์ฝ๋ ์ถ๊ฐ : Create
'''
code = int(input('code input : ')) #4
name = input('name input : ') #test
su = int(input('su input : ')) #4
dan = int(input('dan input : ')) #500000
query = f"insert into goods values({code},'{name}',{su},{dan})"
cursor.execute(query) # ๋ ์ฝ๋ ์ถ๊ฐ
conn.commit() #db ๋ฐ์
'''
#1. ๋ ์ฝ๋ ์กฐํ : Read
query = "select * from goods"
cursor.execute(query) #sql๋ฌธ ์คํ
dataset = cursor.fetchall() #์ ์ฒด ๋ ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ
print('-'*30)
for row in dataset :
print(row[0], row[1], row[2], row[3])
print('-'*30)
print('์ ์ฒด ๋ ์ฝ๋ ์ : ', len(dataset))
except Exception as e:
print('์์ธ๋ฐ์ : ', e)
conn.rollback() #์ด์ ์ํ ๋ฆฌํด
finally :
cursor.close(); conn.close()
emp table
1. emp table ์์ฑ : HidiSQL ์ด์ฉ
2. python + DB ์ฐ๋
table ์ ๋ฌด ํ๋จ : show tables
- table ์๋ ๊ฒฝ์ฐ : ๋ ์ฝ๋ ์ถ๊ฐ/์กฐํ
- table ์๋ ๊ฒฝ์ฐ : 'table ์์' ๊ฒฝ๊ณ ๋ฉ์์ง
import pymysql # driver = python + DB
DB ์ฐ๊ฒฐ ํ๊ฒฝ
config = {
'host' : '127.0.0.1',
'user' : 'scott',
'password' : 'tiger',
'database' : 'work',
'port' : 3306,
'charset':'utf8',
'use_unicode' : True} #dict
try :
#db ์ฐ๋ ๊ฐ์ฒด
conn = pymysql.connect(**config)
#query ์คํ ๊ฐ์ฒด
cursor = conn.cursor()
#1. table ์ ๋ฌด ํ๋จ : emp
cursor.execute("show tables") #table ๋ชฉ๋ก ์กฐํ
tables = cursor.fetchall()
#sw๊ธฐ๋ฒ
sw = False #off
for table in tables :
if 'emp' in table :
sw = True #on
if sw : #emp ํ
์ด๋ธ ์กด์ฌ
query = "select * from emp"
cursor.execute(query) # ๋ ์ฝ๋ ์กฐํ
dataset = cursor.fetchall() # ์ ์ฒด ๋ ์ฝ๋ ๊ฐ์ ธ์ค๊ธฐ
if dataset : #๋ ์ฝ๋ ์์
for row in dataset :
print(row[0], row[1], row[2], row[3], row[4], row[5], row[6])
print('์ ์ฒด ๋ ์ฝ๋ ๊ฐ์ : ', len(dataset))
else : #๋ ์ฝ๋ ์์
print('์กฐํ๋ ๋ ์ฝ๋ ์์')
else : #emp ํ
์ด๋ธ ์์
print('table ์์')
except Exception as e :
print('db error :', e)
finally:
cursor.close(); conn.close()