티스토리 뷰

python

파이썬과 MySQL 연동

코딩계란 2024. 1. 11. 14:38
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)  (0) 2024.02.13
[python] sklearn, pandas(2)  (1) 2024.02.13
[python]pandas  (0) 2024.02.07
[python] 예외 처리  (1) 2024.01.23
[python] 가상 환경 만들기(windows)  (0) 2024.01.18