国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python使用sqlite3時游標使用方法

2020-01-04 15:39:18
字體:
來源:轉載
供稿:網友

cursor就是一個Cursor對象,這個cursor是一個實現了迭代器(def__iter__())和生成器(yield)的MySQLdb對象,這個時候cursor中還沒有數據,只有等到fetchone()或fetchall()的時候才返回一個元組tuple,才支持len()和index()操作,這也是它是迭代器的原因。但同時為什么說它是生成器呢?因為cursor只能用一次,即每用完一次之后記錄其位置,等到下次再取的時候是從游標處再取而不是從頭再來,而且fetch完所有的數據之后,這個cursor將不再有使用價值了,即不再能fetch到數據了。

數據庫支持

使用簡單的純文本只能實現有退限的功能,所需要引入數據庫,完成更強大功能,本節使用的簡單數據庫SQLite 。

SQLite 和PySQLite

sqlite是非常著名的開源嵌入式數據庫軟件,它可以嵌入到其他程序中使用,并且提供SQL接口用來查詢,非常方便。它的官方站點為http://www.sqlite.org。

而pysqlite 則是一個sqlite 為 Python 提供的 api 接口,它讓一切對于 sqlite 的操作都變得異常簡單

在python2.5版本這后,SQLite的優勢在于它的一個包裝(PySQLite)已經被包括在標準庫內,所以我們可以直接使用。

入門操作

可以將SQLite作為名為sqlite3的模塊導入。之后就可以創建一個到數據庫文件的連接—-如果文件不存在就會被創建—-通過提供一個文件名:

>>> import sqlite3>>> conn= sqlite3.connect('somedatabase.db') # 創建數據庫>>>cu =conn.cursor() #能獲得連接的游標

創建數據表

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

插入兩條數據

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

選擇(select)

>>>cu.execute("select * from catalog")>>>cu.fetchall()[(0, 0, 'name1'), (1, 0, 'name2')]>>>cu.execute("select * from catalog where id = 1")>>>cu.fetchall()[(1, 0, 'name2')]

修改(update)

>>>cu.execute(“update catalog set name='name2′ where id = 0″)>>> cx.commit()>>> cu.execute(“select * from catalog”)>>> cu.fetchone()(0, 0, ‘name2′)

刪除(delete)

>>>cu.execute(“delete from catalog where id= 1″)>>> cx.commit()>>> cu.execute(“select * from catalog”)>>> cu.fetchall()[(0, 0, 'name2')]

連接

為了使用基礎數據庫系統,首先必須連接到它,這個時候需要使用具有名稱的connect函數,該函數有多個參數,而具體用哪個參數取決于數據庫。

connect函數的常用參數:

connect函數返回連接對象。這個對象表示目前和數據庫的會話。連接對象支持的方法如下;

連接對象方法:

commit 方法總是可用的,但如果數據庫不支持事務,它就沒有任何作用。如果關閉了連接但還有未提交的事務,它們會隱式地回滾—但是只有在數據庫支持持回滾的時候才可以。

rollback 方法可能不可用,因為不是所有的數據庫都支持事務(事務是一系列動作)。如果可用,那么就可以“撤銷”所有未提交的事務。

cursor 方法將我們引入另外一個主題:游標對象。通過游標掃行SQL 查詢并檢查結果。游標連接支持更多的方法,而且可能在程序中更好用。

游標:

cu = conn.cursor()

能獲得連接的游標,這個游標可以用來執行SQL查詢。

conn.commit()

完成插入并且做出某些更改后確保已經進行了提交,這樣才可以將這些修改真正地保存到文件中。

游標對象方法:

游標對象特性:

cu.fetchone()

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

conn.close()

可以在每次修改數據庫后都進行提交,而不是僅僅在準備關閉才提交,準備關閉數據時,使用close 方法。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平塘县| 华宁县| 祁东县| 广安市| 宁陕县| 山西省| 梅河口市| 苏州市| 井陉县| 瓮安县| 青冈县| 赤壁市| 彭州市| 长宁县| 新野县| 铁岭县| 滁州市| 凤冈县| 衡阳县| 泰安市| 文水县| 溆浦县| 友谊县| 冷水江市| 陕西省| 婺源县| 朝阳县| 漾濞| 庆安县| 明溪县| 方城县| 邵阳县| 嘉定区| 桦甸市| 饶平县| 徐州市| 修武县| 武宣县| 肇源县| 泾源县| 育儿|