본문 바로가기

Python_Intermediate/SQL

Python-PyMySQL사용절차 <기본 예제 + 방법>

반응형
# 0.pymysql 모듈 불러오기
import pymysql
# 1. MySQL 서버와 연결
connect = pymysql.connect(host="192.168.101.200", # DB서버 IP 주소
port=3306, # 포트번호
user="user15", # 접속 계정 ID
password="15abc", # 접속 계정 PW
db="shopping_db") # 접속 DB

# 2. 연결된 서버에서 커서를 획득
cursor = connect.cursor()

# 3. 커서를 통해 SQL문들을 전달한다.
cursor.execute("SELECT DISTINCT product FROM purchase")
products = cursor.fetchall() # 제품 목록

cursor.execute("SELECT * FROM purchase")
result = cursor.fetchall()

sale = []
for row in products:
product = row[0]
count = 0
sum = 0
for row in result:
if row[3] == product:
count += 1
sum += row[4]
sale.append([product, count, sum])

import csv
file = open("sale.csv", "w", encoding="utf-8", newline="")
csvfile = csv.writer(file)
for item in sale:
csvfile.writerow(item)
file.close()


1. PyMySql 모듈을 다음과 같이 설치

pip install PyMySQL


2. 기초적인 방법 설명(구글 검색에 pymysql 방법) 

- import pymysql 로 임포트

- pymysql.connect() 메소드를 사용하여 MySQL에 연결 한다.

- 호스트명, 로그인, 암호, 접속할 DB 등을 지정한다.

- DB 접속이 성공하면, Connection 객체로부터 cursor() 메서드를 호출하여 Cursor 객체를 가져온다.

- DB 커서는 Fetch 동작을 관리하는데 사용되는데, 만약 DB 자체가 커서를 지원하지 않으면, 

  Python DB API에서 이 커서 동작을 Emulation 하게 된다.

- Cursor 객체의 execute() 메서드를 사용하여 SQL 문장을 DB 서버에 보낸다.

- SQL 쿼리의 경우 Cursor 객체의 fetchall(), fetchone(), fetchmany() 등의 메서드를 사용하여 데이타를 서버로부터 가져온 후, 

   Fetch 된 데이타를 사용한다.

- 삽입, 갱신, 삭제 등의 DML(Data Manipulation Language) 문장을 실행하는 경우, INSERT/UPDATE/DELETE 후 

   Connection 객체의 commit() 메서드를 사용하여 데이타를 확정 갱신한다.

- Connection 객체의 close() 메서드를 사용하여 DB 연결을 닫는다.

반응형