python 操作数据库

链接数据库

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()
原文地址:https://www.cnblogs.com/white-small/p/6368810.html