어제 python 관련 글 올린 김에 많은 분들이 찾으시는 MySQL 데이터베이스 이용과 관련된 내용을 정리해드립니다.
예전에 제가 프로그래밍으로 밥 벌어먹기 시작했을 때(!)에는 여러가지 DBMS가 많았습니다만, 이제는 LAMP니 뭐니 할 정도로 MySQL이 정석이 되었습니다. 실제로 제가 있었던 회사는 MySQL로 회원 수 천만이 넘는 사이트를 무리 없이 운영하니까요. 옛날에는 MySQL로 그 정도 규모의 상업적인 서비스를 한다 그러면 주위에서는 그거로 돌리면 불안해서 밤에 잠이 오겠냐, M$나 오라클 써라 했었는데요. ㅋㅋ
다 오픈소스의 힘이라고 생각합니다. 그만큼 보완이 많이 되고, 서비스를 하면서 경험이 축적되면서 개선이 되니까요. 개인적으로는 MongoDB로 개발을 하고 있는 부분이 있는데 Mongo가 더 재미있긴 하지만요.
각설하고, python에서 MySQL 이용하는 것과 관련해서 간단하게 정리해 보겠습니다.
많이 이용되고 있는 모듈은
_mysql, MySQLdb
입니다.
_mysql은 C API를 이용하는 raw-level 모듈이고, MySQLdb는 _mysql 모듈을 포장한 wrapper입니다.
연결은
con = MySQLdb.connect('localhost', 'testuser', 'mypassword', 'mydbname')
이런 식으로 해주시면 되고, 연결 후에는 cursor를 생성하여 이용하시면 됩니다.
간단하게 예를 들어보면 아래와 같습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/usr/bin/python # -*- coding: utf-8 -*- import MySQLdb as mdb import sys try : con = mdb.connect( 'localhost' , 'dbuser' , 'mypassword' , 'mydb' ) cur = con.cursor() sql = "SELECT ID FROM articles ORDER BY ID DESC LIMIT 10" cur.execute(sql) for i in range(cur.rowcount): row = cur.fetchone() print row[0] except mdb.Error, e: print "Error %d: %s" % (e.args[0], e.args[1]) sys.exit(1) |
python의 dictionary type cursor를 이용하시려면 cursor 생성시에 다음과 같이 하시면 됩니다.
1 | cur = con.cursor(mdb.cursors.DictCursor)
|
'Program > Python' 카테고리의 다른 글
MIT 6.00 컴퓨터 공학과 프로그래밍(Python) 오픈 코스 (0) | 2016.05.15 |
---|---|
python mysql mssql (0) | 2016.05.13 |
파이썬 라이브러리를 활용한 데이터 분석 (0) | 2016.05.09 |
ipython ubuntu Anaconda (0) | 2016.05.03 |
python - mysql MySQLdb (0) | 2014.11.05 |