본문 바로가기
Python

0712_python_MySQL_Module

by 대금부는개발자 2021. 7. 12.
SMALL

 

 

python 프로그램으로 MySQL DBMS에 접속해서 원하는 Database에서 Data를 가져와 보아요.

Module사용전 cmd 로 mysqld 구동!

경로를 바꾸거나 별도의 모듈을 만들어서 사용하지 않으면 python path를 굳이 설정할 필요 없어요!

 

1. 어떤 Module을 사용할지를 결정.

- 자주 사용하는 Module이 있어요.

오늘은 pymsql이라는 module을 사용할 거예요!

 

2. 해당 module을 download 해서 설치해야 해요.

→ pip라는 module을 이용할 수 있어요!(python의 필수, 기본 module)

→저희는 anaconda 환경이라서 anaconda의 기능을 이용해서 module을 다운로드, 설치할 거예요.

anaconda 명령으로 만약 module이 설치가 안 된다면 pip로 설치( 안 되는 모델도 있어요!)

 

3.pymysql 설치

anaconda prompt를 실행한 후 conda install 명령으로 package를 설치!

 

새롭게 anaconda prompt실행 → activate data_env → conda install pymysql → y

 

 

jupyter notebook에서도 설치할 수 있어요! → !conda install pymsql

일반 python 환경일 경우 → pip install pymysql

 

 

 

# 필요한 module import

 

import pymysql

 

# 데이버베이스 connection 필요 - 내가 사용하려는 Database에 대한 논리적인 연결 객체가 필요.

# 당연히 접속에 대한 정보를 인자로 넘겨줘야 해요!

#host '아이디주소' ,localhost = 내가사용하고있는 컴퓨터.

 

conn = pymysql.connect(host='localhost',

db='library',

user='python',

password='python',

charset='utf8')

 

print(conn)

 

<pymysql.connections.Connection object at 숫자 >

 

 

# 접속이 성공하면 instance가 생성되고 그렇지 않으면 None이 들어와요

# 접속이 성공하면 해당 instance를 이용해서 Query를 실행할 수 있어요!

# cursor 객체를 생성해야 해요

# cursor = conn.cursor() #이렇게 만들면 나중에 결과 데이터가 tuple로 나와요!

 

cursor = conn.cursor(pymysql.cursors.DictCursor)

 

#SQL구문을 만들어야 해요!

sql = 'SELECT btitle, bauthor, bprice FROM book WHERE bprice > 50000;'

 

# 생성한 SQL 문장을 cursur를 통해서 실행시켜요!

cursor.execute(sql)

# fetch계열의 함수를 이용해서 결과를 cursor로 부터 가져와요!

result = cursor.fetchall()

 

#print(result)

 

 

#[{'btitle': 'The Art of Computer Programming 4A 컴퓨터 프로그래밍의 예술: 조합적 알고리즘 1부', 'bauthor': '도널드 커누스(DONALD E. KNUTH)', 'bprice': 55000}, {'btitle': 'PMP 바이블 : PMP 자격증 취득의 길로 안내하는 가장 확실한 지침서 (전2권 세트)', 'bauthor': '강정배, 서정훈, 이지현, 박주진', 'bprice': 60000}, {'btitle': 'IT EXPERT, 64비트 멀티코어 OS 원리와 구조 1권: OS 개발 60일 프로젝트', 'bauthor': '한승훈', 'bprice': 55000}, {'btitle': 'IT EXPERT, 64비트 멀티코어 OS 원리와 구조 2권: OS 개발 60일 프로젝트', 'bauthor': '한승훈', 'bprice': 55000}]

 

for bookDict in result:

print('제목 : {}, 저자 : {}'.format(bookDict['btitle'],bookDict['bauthor']))

 

 

# 키워드를 입력받아서 해당 키워드를 책 제목에 포함하는 책을 검색한 후

# 책의 제목과 저자를 출력하세요

 

 

import pymysql

 

# a = input("검색할 키워드 : ")

 

conn = pymysql.connect(host='localhost',

db='library',

user='python',

password='python',

charset='utf8')

 

cursor = conn.cursor(pymysql.cursors.DictCursor)

 

search_keyword = input("검색키워드 : ")

 

sql= "SELECT btitle, bautor FROM book WHERE btitle Like'%{}%'".format(search_keyword)

# 와일드카드 문자 '%'는 0개 이상 문자를 의미

 

cursor.excute(sql)

 

result = cursor.fetchall()

 

for book in result:

print('제목 : {}, 저자 : {}'.format(bookDict['btitle'], bookDict['bauthor']))

 

 

검색키워드 : 여행

제목 : IT CookBook, C++ 하이킹 : 객체지향과 만나는 여행, 저자 : 성윤정, 김태은

제목 : 게스트하우스 창업 A to Z : 청춘여행자의 낭만적 밥벌이, 저자 : 김아람

제목 : 크로아티아의 작은 마을을 여행하다 : 자다르의 일몰부터 두브로브니크의 붉은 성벽까지, 저자 : 양미석

제목 : 도쿄의 오래된 상점을 여행하다 : 소세키의 당고집부터 백 년 된 여관까지, 저자 : 여지영, 이진숙

 

 

 

 

 

 

 

 

 

LIST

'Python' 카테고리의 다른 글

0712 Python 의 Exception Handling(예외처리)  (0) 2021.07.12
0708 Database  (0) 2021.07.08
0708 Module 사용  (0) 2021.07.08
0707 Python Module  (0) 2021.07.07
0707 python 상속  (0) 2021.07.07

댓글