1樓:老夭來了
有啊,sqlite3也必須建立資料庫才可以操作,不過它的資料庫是一個檔案,其它的與mysql之類的沒啥區別。
1.匯入python sqlite資料庫模組
python2.5之後,內建了sqlite3,成為了內建模組,這給我們省了安裝的功夫,只需匯入即可
import sqlite3
2. 建立/開啟資料庫
在呼叫connect函式的時候,指定庫名稱,如果指定的資料庫存在就直接開啟這個資料庫,如果不存在就新建立一個再開啟。
cx = sqlite3.connect("e:/test.db")
也可以建立資料庫在記憶體中。
con = sqlite3.connect(":memory:")
3.資料庫連線物件
開啟資料庫時返回的物件cx就是一個資料庫連線物件,它可以有以下操作:
commit()--事務提交
rollback()--事務回滾
close()--關閉一個資料庫連線
cursor()--建立一個遊標
關於commit(),如果isolation_level隔離級別預設,那麼每次對資料庫的操作,都需要使用該命令,你也可以設定isolation_level=none,這樣就變為自動提交模式。
4.使用遊標查詢資料庫
我們需要使用遊標物件sql語句查詢資料庫,獲得查詢物件。 通過以下方法來定義一個遊標。
cu=cx.cursor()
遊標物件有以下的操作:
execute()--執行sql語句
executemany--執行多條sql語句
close()--關閉遊標
fetchone()--從結果中取一條記錄,並將遊標指向下一條記錄
fetchmany()--從結果中取多條記錄
fetchall()--從結果中取出所有記錄
scroll()--遊標滾動
1. 建表
cu.execute("create table catalog (id integer primary key,pid integer,name varchar(10) unique,nickname text null)")
上面語句建立了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不可以重複的,以及一個nickname預設為null。
2. 插入資料
請注意避免以下寫法:
# never do this -- insecure 會導致注入攻擊
pid=200
c.execute("... where pid = '%s'" % pid)
正確的做法如下,如果t只是單個數值,也要採用t=(n,)的形式,因為元組是不可變的。
for t in[(0,10,'abc','yu'),(1,20,'cba','xu')]:
cx.execute("insert into catalog values (?,?,?,?)", t)
簡單的插入兩行資料,不過需要提醒的是,只有提交了之後,才能生效.我們使用資料庫連線物件cx來進行提交commit和回滾rollback操作.
cx.commit()
3.查詢
cu.execute("select * from catalog")
要提取查詢到的資料,使用遊標的fetch函式,如:
in [10]: cu.fetchall()
out[10]: [(0, 10, u'abc', u'yu'), (1, 20, u'cba', u'xu')]
如果我們使用cu.fetchone(),則首先返回列表中的第一項,再次使用,則返回第二項,依次下去.
4.修改
in [12]: cu.execute("update catalog set name='boy' where id = 0")
in [13]: cx.commit()
注意,修改資料以後提交
5.刪除
cu.execute("delete from catalog where id = 1")
cx.commit()
如果解決了您的問題請採納!
如果未解決請繼續追問!
2樓:日time寸
表 是 資料庫必不可少的一部分,sqlite3當然有啦建立表的方法
直接用sql語言
create table database_name.table_name(
column1 datatype primary key(one or more columns),
column2 datatype,
column3 datatype,
.....
columnn datatype,
);使用python的介面
import sqlite3
conn = sqlite3.connect('test.db')cursor = conn.
cursor()cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
目前購買PS3是否合適
新80gb硬碟版ps3已經出了快半年了 標配 在2750元左右 比40gb硬碟版ps3是減輕了一些重量,內部結構做了些調整,因為cpu和gpu晶片 都採用65nm的 所以功耗 發熱什麼的比40gb版降低了 有些不實用和不必要的部 件會減少 但質量一樣的 畢竟都是sony的產品。40gb ps3 拆解...
y 3sin 2x3 與y 3sin 2x 2 3 是否相等請詳細說下 謝謝
皮皮鬼 解由y 3sin 2x 2 3 3sin 2x 2 3 3sin 2x 3 即y 3sin 2x 3 與y 3sin 2x 2 3 相等。 相等y 3sin 2x 2 3 3sin 2x 3 3sin 2x 3 3sin 2x 3 3sin 2x 3 3sin 2x 3 求函式y 3sin ...
成雅高速車禍致3死3傷,肇事司機是否存在重大過失?
司機確實存在著過失,但是客觀因素的影響也是非常嚴重的,所以才會導致這一次的事故。肇事司機存在重大過失,聽說是這個司機沒有看紅綠燈,直接就闖過去了,後來就和車子追尾了。這是很大的問題,司機可能是因為疲勞駕駛,造成了路面的車禍,對於司機來說,這就是可怕的。成雅高速發生車禍致3死3傷,當時到底發生了什麼?...