本文介绍了Python操作mysql,执行SQL语句,获取结果集,遍历结果集,取得某个字段,获取表字段名,将图片插入数据库,执行事务等各种代码实例和详细介绍。
实例1、获取MYSQL的版本
#!/usr/bin/env python
import MySQLdb as mdb
try:
con=mdb.connect('localhost','root','123','test') #连接mysql的方法
cur=con.cursor() #所有的查询,都在连接con的一个模块cursor上面运行的
cur.execute('SELECT VERSION()') #执行一个查询
data = cur.fetchone() #取得上面查询的结果,是单个结果
cur.close() #关闭
print "Database version:%s" %data
con.close()
except mdb.Error:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
实例2、创建一个表并且插入输入
#!/usr/bin/env python
import MySQLdb as mdb
try:
con=mdb.connect('localhost','root','123','test')
cur=con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")
cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")
cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")
cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")
cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")
except mdb.Error:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
运行结果,登陆数据库进行查看
mysql> select * from Writers;
+----+-------------------+
| Id | Name |
+----+-------------------+
| 1 | Jack London |
| 2 | Honore de Balzac |
| 3 | Lion Feuchtwanger |
| 4 | Emile Zola |
| 5 | Truman Capote |
+----+-------------------+
实例3、python使用select获取mysql的数据并遍历
#!/usr/bin/env python
import MySQLdb as mdb
try:
con=mdb.connect('localhost','root','123','test')
cur=con.cursor()
cur.execute("SELECT * FROM Writers")
rows = cur.fetchall() #使用fetchall函数,将结果集(多维元组)存入rows里面
for row in rows: #依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示
print row
except mdb.Error:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
运行结果
(1L, 'Jack London')
(2L, 'Honore de Balzac')
(3L, 'Lion Feuchtwanger')
(4L, 'Emile Zola')
(5L, 'Truman Capote')
上面的代码,用来将所有的结果取出,不过打印的时候是每行一个元组打印,现在我们使用方法,取出其中的单个数据。
#!/usr/bin/env python
import MySQLdb as mdb
try:
con=mdb.connect('localhost','root','123','test')
cur=con.cursor()
cur.execute("SELECT * FROM Writers")
numrows = int(cur.rowcount) #使用cur.rowcount获取结果集的条数
for i in range(numrows): #循环numbrows次,每次取出一行数据
row = cur.fetchone() #每次取出一行,放到row中,这是一个元组(id,name)
print row[0],row[1] #直接输出两个元素
except mdb.Error:
print "Mysql Error %d: %s" % (e.args[0], e.args[1]
运行结果
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote