Python

파이썬에서 mysql 또는 mariaDB에 auto_increment 사용법

Bigcat 2018. 10. 10. 02:48

python 에서 mysql 또는 mariaDB 의 auto_increment 사용하기


mysql 또는 마리아DB 자체 콘솔에서 id를 자동증가 시키는것은 쉽게 해보셨을 겁니다.


파이썬에서 sql에 데이터 넣는 방법과 auto_increment 를 사용하여 


데이터베이스 설계를 해보겠습니다.





import MySQLdb

# sql서버 접속합니다.
conn = MySQLdb.connect(db='bigcat_cafe', user ='root', passwd ='*******',
charset='utf8',port=27360,host='192.168.0.12')
c = conn.cursor()

# 테이블을 생성합니다.
c.execute('DROP TABLE IF EXISTS drinks')

# 테이블 구조를 만듭니다.
# id에 auto_increment를 추가하여 자동으로 생성되며 기본키로 지정했습니다.
c.execute('''
CREATE TABLE drinks(
id MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
drink_name VARCHAR(50),
main VARCHAR(30),
amount1 DEC(4,2),
second VARCHAR(30),
amount2 DEC(4,2),
directions VARCHAR(100))
''')

# 데이터를 넣기 방법 1
c.execute('INSERT INTO drinks(drink_name,main,amount1,second,amount2,directions) \
VALUES (%s,%s,%s,%s,%s,%s)',('커피','원두',1.5,'물',3,'맛있게 만들기'))

# 데이터 넣기 방법 2
# 미리 리스트로 데이타를 만들어 놓습니다.
# 더 많은 데이터를 만들어도 됩니다.
drink_recipe = [
['칵테일','소주',5,'설탕',7,'잘 섞어 강하게 흔들기'],
['콜라칵테일','콜라',20,'칵테일',1,'약하게 흔들기']
]

# 리스트 데이터를 넘겨 주면 끝이 납니다.
c.executemany('INSERT INTO drinks(drink_name,main,amount1,second,amount2,directions)\
VALUES (%s,%s,%s,%s,%s,%s)',drink_recipe)

conn.commit()

#데이타를 출력해 봅니다.

c.execute('SELECT * FROM drinks')

for row in c.fetchall():
print(row)

# 데이터베이스를 닫습니다.
conn.close()



데이터 구조를 줄이면 훨씬 쉽게 이해가 될 것입니다.

데이터 넣기 방법2에 있는 형식은 많은 데이터를 처리요구하는 작업

즉 ,스크래핑이나 크롤링 , 머신러닝 데이터 작업시 도움이 되는 방법입니다.


도움이 되셨으면 좋겠습니다.