이번 포스트는 MySQL을 파이썬으로 다루기 위해 기본적인 pymysql 모듈의 사용법에 대해 정리해보려고 한다.
pymysql 모듈 설치
pymysql을 모듈을 설치하는 방법이다.
간단하게 파이썬 모듈을 설치하던 방식으로 설치하면 된다.
import pymysql
connect = pymysql.connect(host='localhost', port=3306, user='root', password='********', db='JOO_DATA', charset='utf8')
cursor = connect.cursor()
sql = "select * from CS"
cursor.execute(sql)
print(cursor.fetchall())
필자는 윈도우에서 docker를 이용해 MySQL환경을 만들어 두었기에 위 코드로 접속을 하게 된다.
간혹 아래와 같은 오류가 뜨는 경우가 있다.
cryptography를 설치해두면 간단하게 해결할 수 있다. (이유는 모르겠다!!ㅎㅎ)
기본 사용법
위의 예제 코드가 사실 가장 기본적인 사용법이다.
INSERT 문 같이 데이터베이스를 변경하는 명령을 사용할 때는 추가적인 작업이 필요하다.
import pymysql
connect = pymysql.connect(host='localhost', port=3306, user='root', password='tjdals103', db='JOO_DATA', charset='utf8')
cursor = connect.cursor()
sql = "select * from CS"
cursor.execute(sql)
print(cursor.fetchall())
#cursor 로 데이터베이스에 접근해 INSERT명령어를 수행했지만 데이터베이스 원본에는 적용되지 않음.
cursor.execute("INSERT INTO CS VALUES('C++','middle','middle');")
cursor.execute(sql)
sql = "select * from CS"
cursor.execute(sql)
print(cursor.fetchall())
#comiut명령어를 사용하면 위에 사용했던 INSERT문이 데이터베이스에 적용되어 코드를 다시 실행시키면 에러가 발생
#connect.commit()
connect.close()
위 예제는 commit 명령을 생략하고 수행했다.
execute 함수를 사용하여 sql문을 DB서버에 보낸 후 fetchall 함수를 사용하여 DB서버에서 데이터를 가져온다.
분명 INSERT를 했지만 실제 데이터베이스에는 적용되지 않은 것을 볼 수 있다.
commit명령의 주석을 풀고 실행해보면 DB에 적용이 되는데, 직접 실습해본 후 결과를 보도록 하자!
commit에 대해서 잘 정리된 글이 있어서 출처를 밝히고 가져왔다.
출처 : https://kimsg.tistory.com/258
마무리
정말 기본적인 pymysql에 대한 사용법을 정리하는 시간이었다.
다음 포스트에서는 아마 pymysql을 사용하여 아주 간단한 DB기반 프로그램을 만들어 볼 것 같다!
'Computer_Language > DataBase_Python' 카테고리의 다른 글
[DB][MySQL] 데이터베이스의 DCL(Data Control Language) (0) | 2019.10.18 |
---|---|
[DB][MySQL] 데이터베이스의 DML(Data Manipulation Language) (0) | 2019.10.16 |
[DB][MySQL] 데이터베이스의 DDL(Data Definition Language) (0) | 2019.10.05 |
[DB][MySQL] 데이터베이스를 공부하기 전 기본 개념과 개발 환경 설정 (0) | 2019.10.03 |