链接数据库
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='08day5')
cur = conn.cursor()
查看列名:
在定义光标时,可以将其定义为字典形式,这样查询数据时可以查看对应列名:
import MySQLdb conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='08day5') cur = conn.cursor(cursorclass = MySQLdb.cursors.DictCursor) sql='select * from userinfo' reCount = cur.execute(sql) reData = cur.fetchall() print reData cur.close() conn.close()
操作数据库
1.查询数据库内容
reCount=cur.execute("select * from userinfo") #execute对数据库进行操作。
reData = cur.fetchall() #查询数据库内容,需进行操作后,再可以使用该命令
2.对数据库进行插入
reCount = cur.execute('insert into userinfo(id,name,passwd) values(2,"root","2345")') conn.commit() #提交数据
3.对数据库进行修改
reCount = cur.execute('update userinfo set name="test" where id=2') conn.commit()
4.对数据库进行删除
reCount = cur.execute('delete from userinfo where id=2') conn.commit()
5.在进行数据库操作时,我们需要进行不同的操作类型和修改的内容都不一致。所以我们可以将数据库命令和修改的内容分别用变量来表示,我们以插入数据来看下:
sql='insert into userinfo(id,name,passwd) values(%s,%s,%s)' params=(2,"root","2345") #用元祖来进行数据添加 reCount = cur.execute(sql,params) #execute
(sql[, parameters]) conn.commit()
6.批量插入数据
①将要插入的数据定义为列表
②使用executemany来执行命令
sql='insert userinfo(id,name,passwd) values(%s,%s,%s)' params=[ (2,"root","2345"), (3,"test","3456") ] reCount = cur.executemany(sql,params) conn.commit()
7.指针移动(绝对位置,相对位置)
相对位置:cur.scroll(-1,mode='relative')
绝对位置:cur.scroll(0,mode='absolute')
可以使用fetchone来进行验证。
8.获取自增ID:
使用lastrowid来获取
import MySQLdb conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='08day5') cur = conn.cursor() sql='insert getid(name,passwd) values(%s,%s)' params=[ ("admin1","1234"), ] reCount = cur.executemany(sql,params) conn.commit() print cur.lastrowid #使用lastrowid来获取最后修改的自增id,如果是使用查询或者更改的命令,则lsatrowid为None(0) cur.close() conn.close()
关闭数据库
cur.close()
conn.close()