python資料庫編程 操作Sqlite

來源:互聯網
上載者:User

一、安裝
去PySqlite首頁上下載安裝包
PySqlite下載http://code.google.com/p/pysqlite/downloads/list

二、建立資料庫/開啟資料庫
Sqlite使用檔案作為資料庫,你可以指定資料庫檔案的位置。

    >>> import sqlite3
    >>> cx = sqlite3.connect("d:/test.db")
    cx = sqlite3.connect(':memory:')#這個是建立在記憶體裡

使 用sqlite的connect可以建立一個資料庫檔案,當資料庫檔案不存在的時候,它會自動建立。如果已經存在這個檔案,則開啟這個 檔案。cx為資料庫連接對象。

三、操作資料庫的基本對象
3.1 資料庫連接對象

象前面的cx就是一個資料庫的連線物件,它可以有以下操作:

commit()--事務提交
rollback()--交易回復
close()--關閉一個資料庫連接
cursor()--建立一個遊標

3.2 遊標對象 所有sql語句的執行都要在遊標對象下進行。

    cu = cx.cursor()這樣定義了一個遊標。遊標對象有以下的操作:

execute()--執行sql語句
executemany--執行多條sql語句
close()--關閉遊標
fetchone()--從結果中取一條記錄
fetchmany()--從結果中取多條記錄
fetchall()--從結果中取出多條記錄
scroll()--遊標滾動

關於對象的方法可以去 Python 首頁上查看DB API的詳細文檔。不過PySqlite到底支援DB API到什麼程式,我就不知道了。我列出的操作都是支援的,不過我不是都使用過。

四、使用舉例
4.1 建庫

前面已經有了,不再重複。(這些例子,如果你有興趣,可以直接在Python的互動環境下試試)

4.2 建表

    >>> cu=cx.cursor()   
    >>> cu.execute("""create table catalog ( id integer primary key,  pid integer, name varchar(10) UNIQUE  )""")
    上面語句建立了一個叫catalog的表,它有一個主鍵id,一個pid,和一個name,name是不可以重複的。

關於sqlite支援的資料類型,在它首頁上面的文檔中有描述,可以參考: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遊標對象。注意,對資料的修改必須要使用事務語句:commit()或rollback(),且對象是資料庫連接對象,這裡為cx。

4.4 select(選擇)

    >>> cu.execute("select * from catalog")   
    >>> cu.fetchall()
    [(0, 0, 'name2'), (1, 0, 'hello')]
    fetchall() 返回結果集中的全部資料,結果為一個tuple的列表。每個tuple元素是按建表的欄位順序排列。注意,遊標是有狀態的,它可以記錄當前已經取到結果的 第幾個記錄了,因此,一般你只可以遍曆結果集一次。在上面的情況下,如果執行fetchone()會返回為空白。這一點在測試時需要注意。

    >>> cu.execute("select * from catalog where id = 1")   
    >>> cu.fetchone()   
    (1, 0, 'hello')
    對資料庫沒有修改的語句,執行後不需要再執行事務語句。

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')]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.