鏈接數據庫
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()
