[파이썬] mysql 연결하고 제어하기

 

안녕하세요. 홍지군입니다.

오늘은 파이썬에서 mysql에 연결해 조작하는 방법을 알아보겠습니다.

 

파이썬에서 mysql과 연결하기 위해서는 pymysql 모듈를 다운로드 받아 사용할 수 있습니다. 

pip install pymysql

우선 mysql 모듈인 pymysql을 pip 명령어로 설치해줍니다. 

 

 

# mysql 라이브러리를 호출
import pymysql

#Database 접속
db = pymysql.connect(user='root', password='password', host='127.0.0.1', port=3306, db='dbname', charset='utf8)


#cursor 가져오기
cursor = db.cursor()

#sql 쿼리문 작성

sql = """
	select * from '테이블명';
"""

#쿼리 실행 
cursor.execute(sql)

#레코드를 배열 형식으로 받아오기
result = cursor.fetchall()

#반복문을 사용한 배열 데이터 출력

for data in result:
	print(data)

#실제 DB에 반영 하기 
db.commit()

#DB접속 종료하기 
db.close()

 

파이썬에서 mysql에 접속하기 위해서는 pymysql.connect에 DB에 접속하기 위한 정보를 입력해줘야합니다.

 

DB에 접속할 계정의 id, password 를 입력하고 HOST에는 DB ip주소를 입력합니다. mysql의 기본 포트는 3306이지만 이미 정한 포트가 있다면 정해둔 포트번호를 입력해줘야 합니다.  접속할 상세 Database를 입력하고 한글을 사용하기 위해 charset = utf8로 설정합니다. 

 

※ 간혹 내부포트와 외부포트를 다르게 사용하는 경우가 있어 포트번호를 확인하고 입력해야 하는 경우가 있음.

※ DB의 계정이 외부접속을 할 수 없다면 root 또는 계정 의 외부접속이 가능하도록 DB에서 권한변경을 해주어야함.

 

 

sql = """ """

sql 변수에는 sql 쿼리문을 작성하는데 파이썬에서 ("") 또는 ('')을 사용해 문자형 변수임을 선언하지만 (""" """)을 사용하면 문자열 변수임을 선언할 수 있습니다. 단순 select 문법만 사용하면 한줄로 표현이 가능해 문자 ""로만 선언해도 문제가 발생지 않지만 join 기능이나 조건부 where 기능을 사용하게 되면 문법이 길어지게 되어 문자열 변수를 선언해 주어야 합니다. select 문법 뿐만 아니라 insert, update 등등 문법이 길어지게 되면 """ """ 문자열임을 증명해주어야 합니다, 

 

cursor.execute(sql)

sql문법을 실행

 

result = cursor.fatchall()

fatchall() 함수를 사용하게 되면 레코드로 되어있는 데이터를 배열 형식으로 바꿔줍니다.

result 변수에 배열로 들어가있기 때문에 반복문을 통해서 배열의 데이터를 뽑아 올 수 있게 됩니다. 

 

 

db.commit()

commit() 함수는 파이썬에서 작업한 쿼리문을 실제 데이터베이스에 반영시켜줍니다. 간혹 commit을 하지 않아 발생하는 오류가 있어 실제 데이터베이스에 적용이 안된다면 필히 commit() 함수를 작성했는지 확인해 봐야 합니다. 

 

db.close()

데이터베이스를 사용했다면 항상 닫아주는 습관을 가져야합니다. DB에 접속하게 되면 리소스(자원)를 사용하게 되는데 리소스를 사용만하고 사용종료를 하지 않으면 오류가 발생하거나 리소스(자원)를 너무 많이 사용하게되어 서버에 부담을 주게 됩니다. 

 

 

이번글에서는 파이썬에서 mysql 데이터베이스를 연결하고 쿼리를 작성해 실행해보는 방법에 대해서 알아봤습니다.

 

 

파이썬에서의 mysql 제어하는 방법 중 궁금한 내용이 있으시다면 아래 댓글에 작성해주시면 정리해서 올릴 수 있도록 하겠습니다. 정보가 유익하셨다면 공감 버튼 하나만 눌러주시면 감사하겠습니다. 

댓글

Designed by JB FACTORY