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 : 청춘여행자의 낭만적 밥벌이, 저자 : 김아람
제목 : 크로아티아의 작은 마을을 여행하다 : 자다르의 일몰부터 두브로브니크의 붉은 성벽까지, 저자 : 양미석
제목 : 도쿄의 오래된 상점을 여행하다 : 소세키의 당고집부터 백 년 된 여관까지, 저자 : 여지영, 이진숙
'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 |
댓글