어제 python 관련 글 올린 김에 많은 분들이 찾으시는 MySQL 데이터베이스 이용과 관련된 내용을 정리해드립니다.
예전에 제가 프로그래밍으로 밥 벌어먹기 시작했을 때(!)에는 여러가지 DBMS가 많았습니다만, 이제는 LAMP니 뭐니 할 정도로 MySQL이 정석이 되었습니다. 실제로 제가 있었던 회사는 MySQL로 회원 수 천만이 넘는 사이트를 무리 없이 운영하니까요. 옛날에는 MySQL로 그 정도 규모의 상업적인 서비스를 한다 그러면 주위에서는 그거로 돌리면 불안해서 밤에 잠이 오겠냐, M$나 오라클 써라 했었는데요. ㅋㅋ
다 오픈소스의 힘이라고 생각합니다. 그만큼 보완이 많이 되고, 서비스를 하면서 경험이 축적되면서 개선이 되니까요. 개인적으로는 MongoDB로 개발을 하고 있는 부분이 있는데 Mongo가 더 재미있긴 하지만요.
각설하고, python에서 MySQL 이용하는 것과 관련해서 간단하게 정리해 보겠습니다.
많이 이용되고 있는 모듈은
입니다._mysql, MySQLdb
con = MySQLdb.connect('localhost', 'testuser', 'mypassword', 'mydbname')
이런 식으로 해주시면 되고, 연결 후에는 cursor를 생성하여 이용하시면 됩니다.
간단하게 예를 들어보면 아래와 같습니다:
#!/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 생성시에 다음과 같이 하시면 됩니다.
cur = con.cursor(mdb.cursors.DictCursor)
(Update) MySQLdb module 설치는 다음 포스팅을 참조하세요:
http://banasun.tistory.com/entry/MySQLpython-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-Ubuntu
'Dev > python' 카테고리의 다른 글
MySQL-python 설치하기 (Ubuntu) (1) | 2015.01.21 |
---|---|
[python] 1시간 전 datetime 구하기 (0) | 2015.01.07 |
[python] version별로 module import 하기.. (python2 VS python3) (0) | 2015.01.04 |
[python] date format을 datetime format으로 (0) | 2015.01.03 |
[Algorithmic Thinking] Project 1 (0) | 2014.09.05 |