使用Python操作MySQL
>>> import MySQLdb #导入MySQL模块
>>> conn=MySQLdb.connect(host='localhost',port=3306,db='test',user='root',passwd='123456') #默认本机,端口,可以不用指定host,port
# 登录时不指定db,可以使用select_db选择数据库
#>>> conn=MySQLdb.connect(user='root',passwd='123456')
#>>> conn.select_db('test')
>>> cur=conn.cursor() #生成光标实例
>>> cur.execute("show tables") # 执行命令,返回受影响的行数
1L
>>> cur.execute("desc t1")
2L
插入单条数据
>>> cur.execute("insert into t1 values(3,'tom')")
1L
插入多条数据
>>> namelist=[]
>>> for i in range(10):
... namelist.append((i,'bill'+str(i)))
>>> cur.executemany("insert into t1 values(%s,%s)",namelist)
10L
>>> cur.execute("select * from t1")
10L
>>> cur.fetchone() #显示一条记录
(0L, 'bill0')
>>> cur.fetchmany(4) #显示多条记录,fetchmant(n) 显示n条记录
((1L, 'bill1'), (2L, 'bill2'), (3L, 'bill3'), (4L, 'bill4'))
>>> cur.fetchall() #显示所有记录
((5L, 'bill5'), (6L, 'bill6'), (7L, 'bill7'), (8L, 'bill8'), (9L, 'bill9'))
scroll 移动光标到某一行,mode='absolute'表示从第一行开始移动;mode=''
>>> cur.scroll(5,mode="absolute")
>>> cur.fetchone()
(5L, 'bill5')
>>> cur.fetchall()
((6L, 'bill6'), (7L, 'bill7'), (8L, 'bill8'), (9L, 'bill9'))
mode='relative'表示从当前所在行开始移动
>>> cur.execute("select * from t1")
10L
>>> cur.fetchmany(2) #当前光标在第3行
((0L, 'bill0'), (1L, 'bill1'))
>>> cur.scroll(2,mode="relative") # 从第三行开始移动2行
>>> cur.fetchone()
(4L, 'bill4')
>>> conn.commit() #对数据库的操作更改最后需要commit提交才能生效(仅针对innodb,myisam执行execute后会自动生效)
>>> cur.close() #关闭cursor
>>> conn.close() #关闭数据库连接