본문 바로가기
DB & SQL/이것이 MySQL이다

(Fin) 파이썬과 MySQL 응용 프로그래밍

by k-mozzi 2022. 7. 13.
반응형
Preface

 

이번 장에선 파이썬과 MySQL의 연동 방법을 알아봤다.

 

특별한 방법이 있는 것은 아니고, 일반적인 파이썬 코드를 작성한 후 execute( ) 함수 안에 sql 문을 작성하기만 하면 된다고 한다.

 

이 부분 역시 나중에 본격적으로 사용해야 할 때가 오면 추가적인 공부를 해야할 것 같다.

 

또, 책의 마지막 부분에 tkinter를 사용하여 gui로 DB를 조작하는 코드와 공간 데이터를 gui에 표현하는 코드도 있었는데, 지금 상태에선 굳이 다룰 필요가 없을 것 같아 한 번 훑어보기만 했다.

 

이번 장을 마지막으로 드디어 "이것이 MySQL이다" 책을 모두 마쳤다.

 

7월이 되기 전에 마무리하고 다음 책으로 넘어갈 계획이었지만, 어쩌다보니 책 한 권을 너무 오랬동안 붙잡고 있었다.

 

이번에 공부할 웹은 8월 중순까진 꼭 끝낸 후 개강 전에 작은 프로젝트를 진행하고 싶다.


 

1. 파이썬과 MySQL 연동

 

 

- 파이썬과 MySQL을 연동하려면 pymysql을 설치해야 한다.

pip install pymysql

 

 

- MySQL에 데이터 입력을 위한 파이썬 코딩 순서

1) MySQL 연결: 연결자 = pymysql.connect(연결 옵션)

2) 커서 생성: 커서 이름 = 연결자.cursor( )

3) 테이블 만들기: 커서 이름.execute(:"create table 문장")

4) 데이터 입력: 커서 이름.execute("insert 문장")

5) 입력한 데이터 저장: 연결자.commit( )

6) MySQL 연결 종료: 연결자.close( )

 

 

- 파이썬과 데이터베이스를 연결하는 방법

pymysql.connect(host=서버, user=사용자, password=암호, db=데이터베이스, charset=문자세트)

 

 

- 커서(Cursor): DB에 SQL문을 실행하거나, 실행된 결과를 돌려받는 통로

 

 

- 커서이름.execute( ) 함수를 사용하여 sql문을 db로 넘겨줄 수 있다.

 

 

- execute 문으로 데이터를 입력하는 것은 임시 저장 상태이므로, 커밋(commit) 과정을 거쳐야 한다.

 

 

- 데이터 입력 코드

import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password='1234',
                       db='hanbitDB', charset='utf8')

cur = conn.cursor()

cur.execute("create table if not exists userTable (id char(4), userName char(15),
			email char(20), birthYear int)")

cur.execute("insert into userTable values('john', 'John Bann', 'john@naver.com', 1990)")
cur.execute("insert into userTable values('kim', 'Kim Chi', 'kim@daum.net', 1992)")
cur.execute("insert into userTable values('lee', 'Lee Pal', 'lee@paran.com', 1988)")
cur.execute("insert into userTable values('park', 'Park Su', 'park@gmail.com', 1980)")

conn.commit()

conn.close()

 

 

- 데이터 입력 프로그램

import pymysql

# 전역 변수 선언부
conn, cur = None, None
data1, data2, data3, data4 = "", "", "", ""
sql = ""

# 메인 코드
conn = pymysql.connect(host='127.0.0.1', user='root', password='1234',
                       db='hanbitDB', charset='utf8')
cur = conn.cursor()

while True:
    data1 = input("사용자 ID: ")
    if data1 == "":
        break
    data2 = input("사용자 이름: ")
    data3 = input("사용자 이메일: ")
    data4 = input("사용자 출생년도: ")
    sql = "insert into userTable values('" + data1 + "','" + data2 + "','" +
    	data3 + "'," + data4 + ")"
    cur.execute(sql)

    conn.commit()
    conn.close()

 

 

- MySQL의 데이터 조회를 위한 파이썬 코딩 순서

1) MySQL 연결

2) 커서 생성

3) 데이터 조회

→ 조회하는 것은 굳이 커밋을 해줄 필요가 없다.

4) 조회한 데이터 출력: 커서 이름.fetchone( )

5) 연결 종료

 

 

- 데이터 조회 프로그램

import pymysql

# 전역 변수 선언부
conn, cur = None, None
data1, data2, data3, data4 = "", "", "", ""
row = None

# 메인 코드
conn = pymysql.connect(host='127.0.0.1', user='root', password='1234',
                       db='hanbitDB', charset='utf8')
cur = conn.cursor()

cur.execute("select * from userTable")

print("사용자 ID         사용자이름         이메일         출생년도")
print("----------------------------------------------------------")

while True:
    row = cur.fetchone()
    if row == None:
        break
    data1 = row[0]
    data2 = row[1]
    data3 = row[2]
    data4 = row[3]
    print("%5s   %15s   %20s   %d" % (data1, data2, data3, data4))

conn.close()

 

728x90
반응형

'DB & SQL > 이것이 MySQL이다' 카테고리의 다른 글

파이썬 tkinter 사용 방법  (0) 2022.07.11
PHP와 MySQL의 연동  (0) 2022.07.10
PHP 기본 프로그래밍  (0) 2022.07.02
Visual Studio Code에서 PHP 코드 실행하기  (2) 2022.07.02
MySQL과 공간 데이터  (0) 2022.06.27

댓글