日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python操作Sqlite正確實(shí)現(xiàn)方法解析

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

一、安裝

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

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

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

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

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

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

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

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

 
 
 
  1. commit()--事務(wù)提交 
  2. rollback()--事務(wù)回滾 
  3. close()--關(guān)閉一個(gè)數(shù)據(jù)庫連接 
  4. cursor()--創(chuàng)建一個(gè)游標(biāo) 

3.2 游標(biāo)對象

所有sql語句的執(zhí)行都要在游標(biāo)對象下進(jìn)行。

 
 
 
  1. cu = cx.cursor()這樣定義了一個(gè)游標(biāo)。游標(biāo)對象有以下的操作: 
  2. execute()--執(zhí)行sql語句 
  3. executemany--執(zhí)行多條sql語句 
  4. close()--關(guān)閉游標(biāo) 
  5. fetchone()--從結(jié)果中取一條記錄 
  6. fetchmany()--從結(jié)果中取多條記錄 
  7. fetchall()--從結(jié)果中取出多條記錄 
  8. scroll()--游標(biāo)滾動(dòng) 

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

四、使用舉例

4.1 建庫

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

4.2 建表

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

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

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

4.3 insert(插入)

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

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

4.4 select(選擇)

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

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

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

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

4.5 update(修改)

 
 
 
  1. >>> 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(刪除) 
  2. >>> cu.execute("delete from catalog where id = 1") >>> cx.commit() 
    >>> cu.execute("select * from catalog") >>> cu.fetchall() [(0, 0, 'name2')]

以上是關(guān)于如何使用Python操作Sqlite的簡單示例。


當(dāng)前文章:Python操作Sqlite正確實(shí)現(xiàn)方法解析
網(wǎng)址分享:http://www.dlmjj.cn/article/djicpeg.html