파이썬 + MySQL
0. MySQL 설치
https://bitnami.com/stack/wamp/installer
I. PyMySQL 모듈 설치
$ pip install PyMySQL
II. MySQL사용법
- PyMySql 모듈을 import 한다.
- pymysql.connect() 메소드를 사용하여 MySQL에 Connect 한다. 호스트명, 로그인, 암호, 접속할 DB 등을 파라미터로 지정한다.
- DB 접속이 성공하면, Connection 객체로부터 cursor() 메서드를 호출하여 Cursor 객체를 가져온다. DB 커서는 Fetch 동작을 관리하는데 사용되는데, 만약 DB 자체가 커서를 지원하지 않으면, Python DB API에서 이 커서 동작을 Emulation 하게 된다.
- Cursor 객체의 execute() 메서드를 사용하여 SQL 문장을 DB 서버에 보낸다.
- SQL 쿼리의 경우 Cursor 객체의 fetchall(), fetchone(), fetchmany() 등의 메서드를 사용하여 데이타를 서버로부터 가져온 후, Fetch 된 데이터를 사용한다.
fetchall() : 모든 데이터를 한 번에 클라이언트로 가져온다.
fetchone() : 한 번에 하나의 row만 가져온다.
fetchmany(n) : n개의 데이터를 한 번에 가져온다. - 삽입, 갱신, 삭제 등의 DML(Data Manipulation Language) 문장을 실행하는 경우, INSERT/UPDATE/DELETE 후 Connection 객체의 commit() 메서드를 사용하여 데이터를 확정 갱신한다.
- Connection 객체의 close() 메서드를 사용하여 DB 연결을 닫는다.
id
|
name
|
age
|
1526
|
Doldori
|
125
|
1533
|
Haechi
|
332
|
1577
|
Nari
|
498
|
1 import
pymysql
2 connection = pymysql.connect( host='localhost',
user='admin',
password='',
db='testdb',
charset='utf8' )
3 cursor = connection.cursor() # Array based cursor
# cursor = connection.cursor(pymysql.cursors.DictCursor) # Dictionary based cursor
sql = "select * from My_Table"
4 cursor.excute(sql)
5 rows = cursor.fetchall() # Tuple로 반환
# rows = cursor.fetchall() # Dictionary로 반환 for row in rows: print(row) # Tuple인 경우 : row --> (1526, 'Doldori', 125) # Dictionary인 경우 : row --> {'id': 1526, 'name': 'Doldori', 'age': 125}
sql = "insert into My_Table(id, name, age)
values('1000', 'Gildong', '525')"
6 connection.commit()
# 동적 SQL문을 구성하기 위해서 파라미터값이 들어가는 위치에 # Parameter Placeholder인 %s (MySql의 경우)를 넣고, execute() 메서드의 # 두번째 파라미터에 실제 파라미터값들의 Tuple을 넣어 주면 된다.
sql = "select * from My_Table where name=%s and age=%s"
cursor.excute(sql, ('Doldori', 125))
7 connection.close()
|
출처 : http://pythonstudy.xyz/python/article/202-MySQL-%EC%BF%BC%EB%A6%AC