Python2.7-sqlite3

sqlite3 模塊,SQLite 是用 C 寫的輕量級的數據庫,sqlite3 模塊提供了對數據庫的接口,要使用必須首先建立一個 Connection 對象,表明鏈接至數據庫,而後才能繼續操做,操做數據庫的語句和操道別的數據庫同樣,都是 create、insert、select 等html

模塊方法和常數:python

sqlite3.version、sqlite3.version_info:模塊版本,分別以字符串和元組形式返回
sqlite3.sqlite_version、sqlite3.sqlite_version_info:SQLite 版本,分別以字符串和元組形式返回
sqlite3.PARSE_DECLTYPES、sqlite3.PARSE_COLNAMES:用於 detect_types 參數,設置了前者能夠在建立數據庫表的時候在每列數據名字後面加上數據類型,設置了後者能夠在選擇的時候在每列後面加上相似 'as "x [datetime]"' 來指定數據類型。大概是這樣的意思,不是很瞭解
sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements]):鏈接至數據庫 datebase(能夠存在緩存中,用 ":memory:" ),timeout 設置鏈接解鎖等待時間,在多個鏈接都連至一個數據庫時,對數據庫的修改會使他上鎖,直到修改數據被提交。detect_types 默認沒有,能夠設置上面提到的兩種。isolation_level 設置自動提交,通常默認。factory cached_statements 設置緩存語句數,默認100。
sqlite3.register_converter(typename, callable):設置如何把數據庫類型名字爲 typename 的數據轉換成 python 類型,通常是自定義的類
sqlite3.register_adapter(type, callable):設置如何把 python 的 type 類型轉換成數據庫支持的類型,通常是自定義的類
sqlite3.complete_statement(sql):判斷 sql 語句是否以分號結尾,不判斷語法是否正確
模塊的類:
一、Connection 對象sql

1.1 對象屬性數據庫

isolation_level:獲取或設置當前的 isolation_level
row_factory:能夠把這個屬性設置成一個接收 cursor 和 row 兩個參數的可調用對象,這樣就能夠用更好的方式返回結果。內置有 sqlite3.Row
text_factory:默認爲 unicode,會把數據庫的 TEXT 屬性返回爲 Unicode 對象,設置成 str 能夠返回字符串,內置還有 sqlite3.OptimizedUnicode,能夠對不是 ASCII 數據的轉成 unicode 對象,其他轉成字符串
total_changes:返回打開數據庫後全部改動總和緩存

1.2 對象方法函數

cursor(factory=Cursor):建立一個 cursor 對象
commit():提交修改,更新數據庫
rollback():返回至上一次提交修改後的狀態
close():關閉數據庫鏈接,不會自動調用 commit
execute(sql[, parameters]):執行 sql 語句,會隱式建立一個 cursor
executemany(sql[, parameters]):利用傳入的 parameters 執行 sql 語句屢次,會隱式建立一個 cursor
executescript(sql_script):執行一堆 sql 語句,會隱式建立一個 cursor
create_function(name, num_params, func):建立一個能夠用於 SQL 語句裏的函數,名字爲 name,接收 num_params 個參數,func 爲 python 的一個可調用對象
create_aggregate(name, num_params, aggregate_class):建立一個能夠用於 SQL 語句裏的自定義合計函數,名字爲 name,接收 num_params 個參數,aggregate_class 類必需要定義有 step() 函數接收參數,finalize() 函數返回數據庫支持類型的合計結果
create_collation(name, callable):建立一個能夠用於 SQL 語句裏的自定義排序函數,名字爲 name,callable 一般會接收 utf8 編碼的兩個字符串,返回 -1 表明前者小於後者,0 表明相等,1 表明前者大於後者
interrupt():從另外一個線程裏打斷正在進行的操做
set_authorizer(authorizer_callback)、set_progress_handler(handler, n):註冊一個回調函數,不知道怎麼用
enable_load_extension(enabled):設置是否容許加載擴展共享庫
load_extension(path):從 path 加載擴展共享庫
iterdump():返回一個迭代器,包含了以數據庫 TEXT 格式表示的數據,對把數據從內存中保存至磁盤頗有用fetch

二、Cursor 對象,操做數據庫的遊標編碼

2.1 對象屬性線程

rowcount:只要沒使用過 executeXX() 這類方法,返回都是 -1,使用過的話會累加
lastrowid:只讀屬性,只有剛執行過 insert 操做纔會返回值,不然都是 None
description:只讀屬性,返回上一次訪問的列的名字
connection:只讀屬性,返回 Cursor 的 Connection 對象code

2.2 對象方法

execute(sql[, parameters])、executemany(sql, seq_of_parameters)、executescript(sql_script):執行對應 sql 語句,同 Connection 對象
fetchone():返回下一行數據
fetchmany([size=cursor.arraysize]):列表形式返回數據,大小指定爲 size
fetchall():返回剩下的全部數據

三、Row 對象,用於 Connection 對象的 row_factory 屬性,可使返回結果像個帶名字元組

3.1 對象方法

keys():返回結果中各列的名字,能夠用這些名字訪問屬性

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息