Ads 468x60px

##EasyReadMore##

10 2月, 2014

Python SQLITE 基本語法

一,Python SQLITE數據庫導入模塊:

import sqlite3

二,創建數據庫/打開數據庫:

cx = sqlite3.connect("E:/test.db")
其實我們不需要顯式的創建一個sqlite數據庫,在調用connect函數的時候,指定庫名稱,如果指定的數據庫存在就直接打開這個數據庫,如果不存在就新創建一個再打開。這一點應用很好理解。

三,數據庫連接對像:

打開數據庫時返回的對象cx就是一個數據庫連接對象,它可以有以下操作:

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

四,Python SQLITE數據庫游標的使用:

游標提供了一種對從表中檢索出的數據進行操作的靈活手段,就本質而言,游標實際上是一種能從包括多條數據記錄的結果集中每次提取一條記錄的機制。游標總是與一條SQL  選擇語句相關聯。因為游標由結果集(可以是零條、一條或由相關的選擇語句檢索出的多條記錄)和結果集中指向特定記錄的游標位置組成。當決定對結果集進行處理時,必須聲明一個指向該結果集的游標。如果曾經用 C 語言寫過對文件進行處理的程序,那麼游標就像您打開文件所得到的文件句柄一樣,只要文件打開成功, 該文件句柄就可代表該文件。對於游標而言,其道理是相同的。可見游標能夠實現按與傳統程序讀取平面文件類似的方式處理來自基礎表的結果集,從而把表中數據以平面文件的形式呈現給程序。
        我們知道關係數據庫管理系統實質是面向集合的,在Sqlite中並沒有一種描述表中單一記錄的表達形式,除非使用where  子句來限制只有一條記錄被選中。因此我們必須借助於游標來進行面向單條記錄的數據處理。由此可見,游標允許應用程序對查詢語句select  返回的行結果集中每一行進行相同或不同的操作,而不是一次對整個結果集進行同一種操作;它還提供對基於游標位置而對表中數據進行刪除或更新的能力;正是游標把作為面向集合的數據庫管理系統和面向行的程序設計兩者聯繫起來,使兩個數據處理方式能夠進行溝通。

下面著重闡述cursor游標的使用。其實,所有sql語句的執行都要在游標對像下進行。

首先,定義一個游標:

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

execute()--執行sql語句   executemany--執行多條sql語句   close()--關閉游標   fetchone()--從結果中取一條記錄,並將游標指向下一條記錄   fetchmany()--從結果中取多條記錄   fetchall()--從結果中取出所有記錄   scroll()--游標滾動 下面就使用Python SQLITE數據庫中游標對我們上面建立的數據庫作一些操作吧:

1,建表:
cu.execute('create table catalog (id integer primary key,pid integer,name varchar(10) UNIQUE)')

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

2,插入數據:
cu.execute("insert into catalog values(0, 0, 'name1')")  cu.execute("insert into catalog values(1, 0, 'hello')")

簡單的插入兩行數據,不過需要提醒的是,只有提交了之後,才能生效.我們使用數據庫連接對像cx來進行提交commit和回滾rollback操作.
cx.commit()

3,查詢:
cu.execute("select * from catalog")

要提取查詢到的數據,使用游標的fetch***函數,如:
print cu.fetchall() 返回結果如下:
[(0, 0, u'name1'), (1, 0, u'hello')] 如果我們使用cu.fetchone(),則首先返回列表中的第一項,再次使用,則返回第二項,依次下去.

4,修改:
cu.execute("update catalog set name='name2' where id = 0")

cx.commit() 注意,修改數據以後提交

5,刪除:
cu.execute("delete from catalog where id = 1")  cx.commit()

以上簡單的操作反應的Python SQLITE數據庫操作的基本要點,這裡點到為止.然後,SQLite的強大,並不僅限於此,其對SQL高級特性的支持及其小巧靈活的特點,使得SQLite在眾多領域受到開發者的青睞.

http://anony3721.blog.163.com/blog/static/5119742010716104442536/

0 意見:

張貼留言

 
Blogger Templates