1.導(dǎo)入Python SQLITE數(shù)據(jù)庫模塊
語法:import ?sqlite3
2. 創(chuàng)建/打開數(shù)據(jù)庫
在調(diào)用connect函數(shù)的時(shí)候枢步,指定庫名稱牵素,如果指定的數(shù)據(jù)庫存在就直接打開這個(gè)數(shù)據(jù)庫织堂,如果不存在就新創(chuàng)建一個(gè)再打開斟或。
語法:cx=sqlite3.connect("E:/test.db")
也可以創(chuàng)建數(shù)據(jù)庫在內(nèi)存中溉潭。
語法:con=sqlite3.connect(":memory:")
3.數(shù)據(jù)庫連接對象
打開數(shù)據(jù)庫時(shí)返回的對象cx就是一個(gè)數(shù)據(jù)庫連接對象倦微,它可以有以下操作:
commit()--事務(wù)提交
rollback()--事務(wù)回滾
close()--關(guān)閉一個(gè)數(shù)據(jù)庫連接
cursor()--創(chuàng)建一個(gè)游標(biāo)
4.使用游標(biāo)查詢數(shù)據(jù)庫
我們需要使用游標(biāo)對象SQL語句查詢數(shù)據(jù)庫弄兜,獲得查詢對象药蜻。 通過以下方法來定義一個(gè)游標(biāo)瓷式。
cu=cx.cursor()
游標(biāo)對象有以下的操作:
execute()--執(zhí)行sql語句
executemany--執(zhí)行多條sql語句
close()--關(guān)閉游標(biāo)
fetchone()--從結(jié)果中取一條記錄,并將游標(biāo)指向下一條記錄
fetchmany()--從結(jié)果中取多條記錄
fetchall()--從結(jié)果中取出所有記錄
scroll()--游標(biāo)滾動
建表:cu.execute("create?table?catalog?(id?integer?primary?key,pid?integer,name?varchar(10)?UNIQUE,nickname?text?NULL)")
創(chuàng)建了一個(gè)叫catalog的表语泽,它有一個(gè)主鍵id贸典,一個(gè)pid,和一個(gè)name踱卵,name是不可以重復(fù)的廊驼,以及一個(gè)nickname默認(rèn)為NULL。
插入數(shù)據(jù):
for t in ?[(0,10,'abc','Yu'),(1,20,'cba','Xu')]:
? ? ? ? ?cu.execute("insert?into?catalog?values?(?,?,?,?)",?t)
cx.commit()
提醒:插入數(shù)據(jù)后惋砂,一定要提交后才能生效妒挎。
查詢:
cu.execute("select?*?from?catalog")
要提取查詢到的數(shù)據(jù),使用游標(biāo)的fetch函數(shù),如:
cu.fetchall()
修改:
cu.execute("update?catalog?set?name='Boy'?where?id?=?0")
cx.commit()
刪除:
cu.execute("delete?from?catalog?where?id?=?1")
cx.commit()