Search

pymysql

대분류
라이브러리
소분류
Python Module
유형
mysql
주요 레퍼런스
https://signature95.tistory.com/26
모듈 분류
외장
최종 편집 일시
2024/10/27 15:31
생성 일시
2024/07/19 05:33
13 more properties

설치

> 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()

상단부 트랜잭션을 모두 커밋
커밋과 트렌잭션 : 트랜젝션
db.commit() #위에서 생성한 생성자로 커밋 진행
Python
복사

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성능 저하로 이어질 수 있다.