最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python操作Sqlite正確實現(xiàn)方法解析

 更新時間:2020年02月05日 18:18:00   投稿:mdxy-dxy  
我們今天將會在這篇文章中分步驟為大家詳細介紹一下有關Python操作Sqlite的相關應用方式,希望大家可以從中獲得一些幫助

Python編程語言的優(yōu)點非常多,它的編程特色主要體現(xiàn)在可擴充性方面。那么,在接下來的這篇文章中,我們將會為大家詳細介紹一下有關Python操作Sqlite 的相關應用技巧,希望可以給大家?guī)硇椭?/p>

一、安裝

去PySqlite主頁上下載安裝包,有windows的版本,現(xiàn)支持 Python 2.3和2.5版本。

二、創(chuàng)建數(shù)據(jù)庫/打開數(shù)據(jù)庫

Python操作Sqlite使用文件作為數(shù)據(jù)庫,你可以指定數(shù)據(jù)庫文件的位置。

>>> import sqlite3

>>> cx = sqlite.connect("d:/test.db", encoding='cp936')

使 用sqlite的connect可以創(chuàng)建一個數(shù)據(jù)庫文件,上面我指明了路徑。當數(shù)據(jù)庫文件不存在的時候,它會自動創(chuàng)建。如果已經(jīng)存在這個文件,則打開這個 文件。encoding指明保存數(shù)據(jù)所使用的編碼,這里cp936是 Python 中自帶的編碼,其實就是GBK編碼。cx為數(shù)據(jù)庫連接對象。

三、操作數(shù)據(jù)庫的基本對象

3.1 數(shù)據(jù)庫連接對象

象前面的cx就是一個數(shù)據(jù)庫的連接對象,它可以有以下操作:

commit()--事務提交
rollback()--事務回滾
close()--關閉一個數(shù)據(jù)庫連接
cursor()--創(chuàng)建一個游標

3.2 游標對象

所有sql語句的執(zhí)行都要在游標對象下進行。

cu = cx.cursor()這樣定義了一個游標。游標對象有以下的操作:
execute()--執(zhí)行sql語句
executemany--執(zhí)行多條sql語句
close()--關閉游標
fetchone()--從結果中取一條記錄
fetchmany()--從結果中取多條記錄
fetchall()--從結果中取出多條記錄
scroll()--游標滾動

關于對象的方法可以去 Python 主頁上查看DB API的詳細文檔。不過PySqlite?到底支持DB API到什么程序,我就不知道了。我列出的操作都是支持的,不過我不是都使用過。

四、使用舉例

4.1 建庫

前面已經(jīng)有了,不再重復。(這些例子,如果你有興趣,可以直接在Python的交互環(huán)境下試試)

4.2 建表

>>> cu=cx.cursor() >>> cu.execute("""create table catalog
( id integer primary key, pid integer, name varchar(10) UNIQUE )""")

上面語句創(chuàng)建了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不可以重復的。

關于Python操作Sqlite支持的數(shù)據(jù)類型,在它主頁上面的文檔中有描述,可以參考:Version 2 DataTypes?

4.3 insert(插入)

>>> cu.execute("insert into catalog values(0, 0, 'name1')")
>>> cu.execute("insert into catalog values(1, 0, 'hello')") >>> cx.commit()

如果你愿意,你可以一直使用cu游標對象。注意,對數(shù)據(jù)的修改必須要使用事務語句:commit()或rollback(),且對象是數(shù)據(jù)庫連接對象,這里為cx。

4.4 select(選擇)

>>> cu.execute("select * from catalog") >>> cu.fetchall()
[(0, 0, 'name2'), (1, 0, 'hello')]fetchall()

返回結果集中的全部數(shù)據(jù),結果為一個tuple的列表。每個tuple元素是按建表的字段順序排列。注意,游標是有狀態(tài)的,它可以記錄當前已經(jīng)取到結果的 第幾個記錄了,因此,一般你只可以遍歷結果集一次。在上面的情況下,如果執(zhí)行fetchone()會返回為空。這一點在測試時需要注意。

>>> cu.execute("select * from catalog where id = 1")
>>> cu.fetchone() (1, 0, 'hello')

對數(shù)據(jù)庫沒有修改的語句,執(zhí)行后不需要再執(zhí)行事務語句。

4.5 update(修改)

>>> cu.execute("update catalog set name='name2' where id = 0")
>>> cx.commit() >>> cu.execute("select * from catalog")
>>> cu.fetchone() (0, 0, 'name2')4.6 delete(刪除)
>>> cu.execute("delete from catalog where id = 1") >>> cx.commit()
>>> cu.execute("select * from catalog") >>> cu.fetchall() [(0, 0, 'name2')]

以上是關于如何使用Python操作Sqlite的簡單示例。

相關文章

最新評論

湖口县| 台北市| 钦州市| 云南省| 儋州市| 教育| 金寨县| 红河县| 平度市| 理塘县| 金阳县| 武威市| 方正县| 平邑县| 天门市| 永定县| 七台河市| 鄂托克前旗| 循化| 台山市| 炉霍县| 新乡县| 柳河县| 太谷县| 罗甸县| 阳新县| 扶余县| 广汉市| 阿鲁科尔沁旗| 噶尔县| 蛟河市| 大化| 衡南县| 松溪县| 双峰县| 合水县| 化德县| 都昌县| 布拖县| 阜新| 句容市|