설치
> python -m pip install --upgrade pip
> pip install pymysql
Bash
복사
설명
mysql 데이터베이스 조작 라이브러리
메서드 → 객체
connect() → connection객체
•
MySQL 연결
db = pymysql.connect(
host="server address", # 서버 주소
port="server port", # 포트 번호
user="ID", # MySQL ID
password="PASSWORD", # MySQL PASSWORD
database="Database Name", # 접속할 데이터베이스
charset="utf8", #MySQL에서 SELECT하여 데이터를 가져올 떄 문자셋을 UTF8로 설정
)
db # 실행
Python
복사
connection객체.commit()
•
connection.cursor(): cursor객체 생성
•
데이터베이스에 SQL 문을 실행하거나 실행된 결과를 돌려받는 통로
•
connect()로 연결된 connection에 커서 생성
cur = db.cursor() #위에서 생성한 생성자의 커서 생성 튜플 형태로 데이터만 표시
cur = db.cursor(pymysql.cursors.DictCursor) #딕셔너리 형태로 컬럼과 데이터 표시
Python
복사
cursor.execute()
•
sql문 실행
sql = "CREATE DATABASE exercise"
cur.execute(sql) #위에서 생성한 커서로 sql문 전달
Python
복사
cursor.fetchone/fetchall()
•
결과 확인
show_one = cur.fetchone() # 마지막 줄
show_all = cur.fetchall() # 모든 줄
Python
복사
.close()
•
모두 사용한 후 connection객체 및 cursor객체 닫기
if cur is not None: # cursor 객체가 있으면
cur.close() # 종료
if db is not None: # connection 객체가 있으면
db.close() # 종료
Python
복사
왜 cursor객체도 닫아줘야 하는가?
connection을 닫아도 cursor는 메모리 상에 남아있기 때문에
cursor를 명시적으로 닫지 않으면 cursor가 사용하는 자원이 해제되지 않는다.
이는 메모리 누수 및 DB성능 저하로 이어질 수 있다.