성장하고 개발하는 계란의 이야기
📑 Preview: 파이썬과 MySQL 연동 ×
python 2024. 1. 11. 14:38

파이썬과 MySQL 연동

By 코딩계란

728x90

pymysql

파이썬과 mysql을 연동하기 위해 필요한 리이브러리.

 

설치 방범(윈도우 운영체제)

  1. 윈도우 검색 창에서 cmd 검색
  2. 명령 프롬프트 실행 
  3. 명령창에 pip install pymysql 입력

*단 python과 pip 모듈이 설치되어 있어야 합니다. 

 

연동 과정(입력)

* 여기서 사용되는 SQL문장은 아래 링크를 참조하세요. 

 

[SQL]SQL 기본 문법 (1)

데이터베이스 만들기 데이터베이스 생성 --데이터베이스 생성 CREATE DATABASE 데이터베이스명; --데이터베이스 삭제 DROP DATABASE 데이터베이스명; --동명의 기존 데이터베이스가 있을 경우 삭제 DROP DA

growingegg.tistory.com

MySQL연결

import pymysql
연결자 = pymysql.connet(host = 서버IP주소, user = 사용자, password = 암호, db = 데이터베이스, charset = 문자세트)

 

커서 생성

커서(corsor): 일련의 데이터에 순차적으로 액세스할 때 검색 및 "현재 위치"를 포함하는 데이터 요소.

커서 = 연결자.cursor()

 

테이블 생성

커서.excute("CREATE TABLE SQL문장")

 

데이터 입력

커서.excute("INSERT INTO SQL문장")

입력하고자 하는 데이터를 입력 

 

입력한 데이터 저장 

연결자.commit()

 

 

MySQL연결 종료 

연결자.close()

 

 

실행 예시

connect에 있는 설정은 제 mysql 데이터베이스 설정입니다. 

import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', password='0000', db='solodb', charset='utf8')
cur = conn.cursor()
sql = """create table userTable(
          id char(4),
          userName char(15),
          email char(20),
          birthyear int
          )"""
cur.execute(sql)
#
cur.execute("insert into userTable values('hong', '홍지윤','hong@naver.com', 1996)")
cur.execute("insert into userTable values('kim', '김태연', 'kim@daum.net', 2011)")
cur.execute("insert into userTable values('star', '별사랑', 'star@paran.com', 1990)")
cur.execute("insert into userTable values('yang', '양지은', 'yang@gmail.com', 1993)")
conn.commit()
conn.close()

 

실행 예시2

사용자가 직접 입력하여 데이터 추가하는 예제 코드

import pymysql

# 변수 선언 
conn, cur = None, None
data1, data2, data3, data4 = "", "", "", ""
sql = []

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

while(True):
  data1 = input("사용자 ID ==>")
  if data1 == "":
    break
  data2 = input("사용자 이름 ==> ")
  data3 = input("사용자 이메일 ==> ")
  data4 = input("사용자 출생연도 ==> ")
  sql.append("INSERT INTO userTable VALUES('"+data1+"','"+data2+"','"+data3+"',"+data4+")")

for line in sql:
  cur.execute(line)

conn.commit()
conn.close()

 

데이터 조회

fetchone():  커서로 SELECT문을 사용하면 조회한 결과를 커서에 한 번에 저장한다. 이후 fetchone함수를 호출하면 저장한 데이터를 한 행씩 출력한다. 

 

실행예시 

import pymysql

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

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

cur.execute("SELECT * FROM userTable")

print("사용자ID\t사용자이름\t이메일\t출생연도")
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.commit()
conn.close()

실행결과

728x90

'python' 카테고리의 다른 글

[python] numpy(1)  (1) 2024.02.13
[python] sklearn, pandas(2)  (1) 2024.02.13
[python]pandas  (0) 2024.02.07
[python] 예외 처리  (2) 2024.01.23
[python] 가상 환경 만들기(windows)  (0) 2024.01.18

Comments