《靈動迅捷:Python操作Sqlite3數據庫》要點:
本文介紹了靈動迅捷:Python操作Sqlite3數據庫,希望對您有用。如果有疑問,可以聯系我們。
SQLite3 可使用 sqlite3 模塊與 Python 進行集成.sqlite3 模塊是由 Gerhard Haring 編寫的.它提供了一個與 PEP 249 描述的 DB-API 2.0 規范兼容的 SQL 接口.您不必要單獨安裝該模塊,因為 Python 2.5.x 以上版本默認自帶了該模塊.
為了使用 sqlite3 模塊,您首先必須創建一個表示數據庫的連接對象,然后您可以有選擇地創建光標對象,這將贊助您執行所有的 SQL 語句.
Python sqlite3 模塊 API
以下是重要的 sqlite3 模塊程序,可以滿足您在 Python 程序中使用 SQLite 數據庫的需求.如果您必要了解更多細節,請查看 Python sqlite3 模塊的官方文檔.
1)sqlite3.connect(database [,timeout ,other optional arguments])
該 API 打開一個到 SQLite 數據庫文件 database 的鏈接.您可以使用 ":memory:" 來在 RAM 中打開一個到 database 的數據庫連接,而不是在磁盤上打開.如果數據庫成功打開,則返回一個連接對象.
當一個數據庫被多個連接拜訪,且其中一個修改了數據庫,此時 SQLite 數據庫被鎖定,直到事務提交.timeout 參數表示連接等待鎖定的持續時間,直到發生異常斷開連接.timeout 參數默認是 5.0(5 秒).
如果給定的數據庫名稱 filename 不存在,則該調用將創建一個數據庫.如果您不想在當前目錄中創建數據庫,那么您可以指定帶有路徑的文件名,這樣您就能在任意地方創建數據庫.
2)connection.cursor([cursorClass])
該例程創建一個 cursor,將在 Python 數據庫編程中用到.該辦法接受一個單一的可選的參數 cursorClass.如果提供了該參數,則它必須是一個擴展自 sqlite3.Cursor 的自定義的 cursor 類.
3)cursor.execute(sql [, optional parameters])
該例程執行一個 SQL 語句.該 SQL 語句可以被參數化(即使用占位符代替 SQL 文本).sqlite3 模塊支持兩種類型的占位符:問號和命名占位符(命名樣式).
例如:cursor.execute("insert into people values (?, ?)", (who, age))
4)connection.execute(sql [, optional parameters])
該例程是上面執行的由光標(cursor)對象提供的辦法的快捷方式,它通過調用光標(cursor)辦法創建了一個中間的光標對象,然后通過給定的參數調用光標的 execute 辦法.
5)cursor.executemany(sql, seq_of_parameters)
該例程對 seq_of_parameters 中的所有參數或映射執行一個 SQL 命令.
6)connection.executemany(sql[, parameters])
該例程是一個由調用光標(cursor)辦法創建的中間的光標對象的快捷方式,然后通過給定的參數調用光標的 executemany 辦法.
7)cursor.executescript(sql_script)
該例程一旦接收到腳本,會執行多個 SQL 語句.它首先執行 COMMIT 語句,然后執行作為參數傳入的 SQL 腳本.所有的 SQL 語句應該用分號(;)分隔.
8)connection.executescript(sql_script)
該例程是一個由調用光標(cursor)辦法創建的中間的光標對象的快捷方式,然后通過給定的參數調用光標的 executescript 辦法.
9)connection.total_changes()
該例程返回自數據庫連接打開以來被修改、插入或刪除的數據庫總行數.
10)connection.commit()
該辦法提交當前的事務.如果您未調用該辦法,那么自您上一次調用 commit() 以來所做的任何動作對其他數據庫連接來說是不可見的.
11)connection.rollback()
該辦法回滾自上一次調用 commit() 以來對數據庫所做的更改.
12)connection.close()
該辦法關閉數據庫連接.請注意,這不會自動調用 commit().如果您之前未調用 commit() 辦法,就直接關閉數據庫連接,您所做的所有更改將全部丟失!
13)cursor.fetchone()
該辦法獲取查詢結果集中的下一行,返回一個單一的序列,當沒有更多可用的數據時,則返回 None.
14)cursor.fetchmany([size=cursor.arraysize])
該辦法獲取查詢結果集中的下一行組,返回一個列表.當沒有更多的可用的行時,則返回一個空的列表.該辦法嘗試獲取由 size 參數指定的盡可能多的行.
15)cursor.fetchall()
該例程獲取查詢結果集中所有(剩余)的行,返回一個列表.當沒有可用的行時,則返回一個空的列表.
連接數據庫
下面的 Python 代碼顯示了如何連接到一個現有的數據庫.如果數據庫不存在,那么它就會被創建,最后將返回一個數據庫對象.在這里,您也可以把數據庫名稱復制為特定的名稱 :memory:,這樣就會在 RAM 中創建一個數據庫.現在,讓我們來運行上面的程序,在當前目錄中創建我們的數據庫 test.db.您可以根據需要改變路徑.保留上面代碼到 sqlite.py 文件中,并按如下所示執行.如果數據庫成功創建,那么會顯示下面所示的消息:
創建表
下面的 Python 代碼段將用于在先前創建的數據庫中創建一個表:
上述程序執行時,它會在 test.db 中創建 COMPANY 表,并顯示下面所示的消息:
INSERT 操作
下面的 Python 程序顯示了如安在上面創建的 COMPANY 表中創建記錄:
上述程序執行時,它會在 COMPANY 表中創建給定記錄,并會顯示以下兩行:
SELECT 操作
下面的 Python 程序顯示了如何從前面創建的 COMPANY 表中獲取并顯示記錄:
上述程序執行時,它會發生以下結果:
UPDATE 操作
下面的 Python 代碼顯示了如何使用 UPDATE 語句來更新任何記錄,然后從 COMPANY 表中獲取并顯示更新的記錄:
上述程序執行時,它會發生以下結果:
DELETE 操作
下面的 Python 代碼顯示了如何使用 DELETE 語句刪除任何記錄,然后從 COMPANY 表中獲取并顯示剩余的記錄:
上述程序執行時,它會發生以下結果:
《靈動迅捷:Python操作Sqlite3數據庫》是否對您有啟發,歡迎查看更多與《靈動迅捷:Python操作Sqlite3數據庫》相關教程,學精學透。維易PHP學院為您提供精彩教程。