Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 2001. 5. 1( 화 )

Similar presentations


Presentation on theme: "Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 2001. 5. 1( 화 )"— Presentation transcript:

1 Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 2001. 5. 1( 화 )

2 Python Essential 세미나 2 ● MySQL Module 의 종류 - MySQLmodule - 표준 Python Database API 2.0 인터페이스에 따르지 않으며 새로운 기능을 제공한다. - 개발환경 Linux, MySQL 3.21.30, Python 1.5.1 - MySQLdb - 표준 API 에 따르고 있으므로 프로그램을 수정하지 않고서도 다른 데이타베이스로 변경가능 - 위의 모듈보다 좋은 사용법을 가지고 있으며 활발히 개발되고 있음.( 최근버전 0.3.5) MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object 참고사이트

3 Python Essential 세미나 3 ● MySQLdb 설치법 (1) 1. Source Download(Windows) - http://home.t-online.de/home/err666/downloads /MySQL-python-0.3.5-win32-2.zip 에서 다운로드, 압축을 푼다. 2. 설치 - Distutils-1.0.1.win32.exe 실행시킨다. ( 파이썬 모듈을 설치해주는 프로그램 ) - Distutils 파일이 없다면 도스모드에서 d:\download>python setup.py install 3. 참고사항 - http://home.t-online.de/home/err666/ MySQL 모듈의 종류MySQLdb설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object 참고사이트

4 Python Essential 세미나 4 ● MySQLdb 설치법 (2) 1. Source Download(Linux) - http://dustman.net/andy/python/MySQLdb/0.3.5 /MySQL-python-0.3.5.tar.gz 다운로드를 받고 압축을 푼다. 2. 설치 - Setup.in 화일을 열어서 mysql 의 경로가 자신의 시스템과 맞는지 확인한다 - 컴파일을 한다. $ python build.py - 컴파일시 에러가 없다면 $ make install $ cp MySQLdb.py{,c, o} /usr/lib/python1.5/site-packages 3. 참고사항 - http://glory.python.or.kr/document/mysqldb/MySQLdb.html MySQL 모듈의 종류MySQLdb설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object 참고사이트

5 Python Essential 세미나 5 ● MySQLdb 사용법 MySQL 모듈의 종류 MySQLdb 설치법MySQLdb사용법 MySQLdb 예제 Cursor Object 참고사이트 - MySQLdb 는 객체와 메쏘드를 표준 Database API 2.0 에 따르고 있다. Python 1.5.2 (#0, Apr 13 1999, 10:51:12) [MSC 32 bit (Intel)] on win32 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> import MySQLdb >>> dbconn = MySQLdb.connect(user='root', passwd='kilshim', db='mysql') >>> cursor = dbconn.cursor() >>> cursor.execute('select * from user') 2L >>> result = cursor.fetchall() >>> result (('localhost', 'root', '531fbefb4bfee6d1', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'), ('%', 'root', '531fbefb4bfee6d1', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y')) >>>

6 Python Essential 세미나 6 ● MySQLdb 사용법 (db 연결 ) - import MySQLdb : MySQLdb 모듈을 수입한다. - : MySQLdb 모듈의 connect 함수를 사용하여 데이터베이스 객 체를 생성한다 host - hostname (NULL : default) user - username (NULL) passwd - password (no password) db - database name (NULL) port - integer, TCP/IP port unix_socket - TCP를 사용할 unix소켓의 위치 client_flag - integer, 필요할 경우 사용하기 위한 flag (0) MySQL 모듈의 종류 MySQLdb 설치법MySQLdb사용법 MySQLdb 예제 Cursor Object 참고사이트

7 Python Essential 세미나 7 ● MySQLdb 사용법 (db 가공 ) - dbconn.cursor() : 모든 데이터베이스의 액션은 커서를 통해서 이루어진다. 프 로그램과 데이터베이스를 연결 해 주는 것이 커서의 역할 이라 할 수 있다. - cursor.execute() : cursor 의 객체중의 하나 메쏘드로써 사전적 의미는 “ 실행 ” () 안에 SQL query 문을 삽입 cursor.execute(‘select * from db) - cursor.fetchall() : 해당 쿼리문 fetch, 튜플로 반환 fetchall(), fetchone(), fetchmany(size) MySQL 모듈의 종류 MySQLdb 설치법MySQLdb사용법 MySQLdb 예제 Cursor Object 참고사이트

8 Python Essential 세미나 8 ● MySQLdb 예제 (1) EX1) Insert %python >>> import MySQLdb >>> dbconn = MySQLdb.connect(user='root', passwd='kilshim', db='mysql') >>> cursor = dbconn.cursor() >>> query = "insert into user (host, user, password) values ('localhost', 'ygpark', password('python'))" >>> execute = cursor.execute(query) >>> cursor.execute('select * from user') 3L >>> result = cursor.fetchall() >>> result (('localhost', 'root', '531fbefb4bfee6d1', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'), ('localhost', 'ygpark', '76cdfa5c19319c47', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'), ('%', 'root', '531fbefb4bfee6d1', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y')) >>> MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법MySQLdb예제 Cursor Object 참고사이트

9 Python Essential 세미나 9 ● MySQLdb 예제 (2) EX2) select %python >>> import MySQLdb >>> dbconn = MySQLdb.connect(user='ygpark', passwd='python', db='dbtest') >>> cursor = dbconn.cursor() >>> cursor.execute('select * from test') 5L >>> result = cursor.fetchall() >>> result ((1L, '\271\332\277\265\261\271', '\306\304\266\373'), (2L, '\271\332\275\302\261\342', '\263\353\266\373'), (3L, '\261\350\301\370\277\255', '\272\270\266\363'), (4L, '\300\323\271\316\273\363', '\310\362\273\366'), (5L, '\303\326\277\353\301\330', '\263\354\273\366')) >>> for s_result in result: for object in s_result: print object, print 1L 박영국 파랑 2L 박승기 노랑 3L 김진열 보라 4L 임민상 흰색 5L 최용준 녹색 >>> MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법MySQLdb예제 Cursor Object 참고사이트

10 Python Essential 세미나 10 ● MySQLdb 예제 (3) EX3)Update %python >>> cursor.execute("update test set name=' 박말자 ', color=' 분홍 ' where id='1'") 1L >>> cursor.execute('select * from test') 5L >>> result = cursor.fetchall() >>> for s_result in result: for object in s_result: print object, print 1L 박말자 분홍 2L 박승기 노랑 3L 김진열 보라 4L 임민상 흰색 5L 최용준 녹색 >>> MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법MySQLdb예제 Cursor Object 참고사이트

11 Python Essential 세미나 11 ● MySQLdb 예제 (4) EX4)delete %python >>> cursor.execute("delete from test where id='1'") 1L >>> cursor.execute('select * from test') 4L >>> result = cursor.fetchmany(4) >>> for de_result in result: for object in de_result: print object, print 2L 박승기 노랑 3L 김진열 보라 4L 임민상 흰색 5L 최용준 녹색 >>> EX5)close >>> cursor.close() # 사용이 종료되면 닫아준다. ( 직접안하면 자동으로 닫힘 ) MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법MySQLdb예제 Cursor Object 참고사이트

12 Python Essential 세미나 12 ● Cursor Object (1) - 커서 객체는 질의를 수행하고 실행된 결과를 가져오기 위해서 사용된다 - 일반적으로 fetch 해서 나오는 결과값은 터플이지만 MySQLdb.DictCursor 라는 인수를 주어 호출하면 사전의 리스트 형태를 띤다. MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object 참고사이트 >>> c = dbconn.cursor(MySQLdb.DictCursor) >>> c.execute('select * from test') 4L >>> result = c.fetchall() >>> result ({'color': '\263\353\266\373', 'id': 2L, 'name': '\271\332\275\302\261\342'}, {'color': '\272\270\266\363', 'id': 3L, 'name': '\261\350\301\370\277\255'}, {'color': '\310\362\273\366', 'id': 4L, 'name': '\300\323\271\316\273\363'}, {'color': '\263\354\273\366', 'id': 5L, 'name': '\303\326\277\353\301\330'})

13 Python Essential 세미나 13 ● Cursor Object (2) -Description 질의 결과로 얻어진 각 필드의 특성을 표시 결과는 7 개의 터플의 터플인데, 각 의미는 ( 필드명, 데이타형코드, 표시크기, 내부크기, 정확도, 비율, null 가능 여부 ) 필드이름 (‘id’), 데이타형 (3)-int, 표시크기 (1)-1, 내부크기 (3)-3 (int(3) 으로 선언 ), 정확도 -3, 비율 -0( 별의미없음 ), null 가능 (0)-No MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object 참고사이트 >>> print cursor.description (('id', 3, 1, 3, 3, 0, 0), ('name', 253, 6, 10, 10, 0, 0), ('color', 253, 4, 10, 10, 0, 0))

14 Python Essential 세미나 14 ● Cursor Object (3) -Rowcount 검색결과 레코드의 수 혹은 변경된 수를 알려준다. -fetchxxx() r = cursor.fetchone() 결과 한 개 가져오기 r = cursor.fetchall() 결과 모두 가져오기 r = cursor.fetchmany(4) 결과 4 개 가져오기 fetchmany(n) n 개 만큼의 레코드를 가져온다. 만일 숫자가 정의되지 않으면 cursor.arraysize 만큼의 레코드를 가져온다. ( cursor.arraysize 의 기본값은 100 이다.) # arraysize 변경방법 cursor.arraysize = 10 MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object 참고사이트

15 Python Essential 세미나 15 ● 참고사이트 - Database API-2.0 http://www.python.org/topics/database/DatabaseAPI-2.0.html - 이만용의 MySQLdb http://kldp.org/~yong/python/docs/MySQLdb/ - 파이썬 정보광장 http://www.python.or.kr:8080/python/ MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object참고사이트

16 Python Essential 세미나 16 ● 참고사항 - 예제에 사용된 테이블 create table test ( id int(3) default '0' not null auto_increment, name varchar(10) not null, color varchar(10) not null, PRIMARY KEY (id) ); MySQL 모듈의 종류 MySQLdb 설치법 MySQLdb 사용법 MySQLdb 예제 Cursor Object참고사이트


Download ppt "Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 2001. 5. 1( 화 )"

Similar presentations


Ads by Google