Python操作SQLite資料庫

Winter發表於2019-05-14

今天我們要學習的是關於SQLite資料庫的相關知識,首先我們來看一下什麼是SQLite資料庫

1.什麼是SQLite資料庫

  • SQLite是一種嵌入式資料庫,它的資料庫就是一個檔案,且SQLite是遵守ACID的關聯式資料庫管理系統,它包含在一個相對小的C程式庫中,與許多其它資料庫管理系統不同,SQLite不是一個客戶端/伺服器結構的資料庫引擎,而是被整合在使用者程式中的嵌入式關係型資料庫;

  • SQLite遵守ACID,實現了大多數SQL標準,它使用動態的、弱型別的SQL語法;

  • SQLite作為嵌入式資料庫,是應用程式,如網頁瀏覽器,在本地/客戶端儲存資料的常見選擇;

2.Python操作SQLite資料庫

我們已經知道了SQLite資料庫是什麼了,然後我們來學習一下它的使用,我簡單把SQLite的使用分為一下步驟,一起來看一下:

  • 首先第一步是匯入sqlite3模組,sqlite3是一個與SQLite互動的庫;

  • 然後需要建立一個訪問資料庫的連線,比如我們建立一個測試用的資料庫,命名為test.db;


conn = sqlite3.connect('./test.db')

  • 現在我們就已經連線到資料庫了,然後需要建立遊標也就是Cursor;

cursor = conn.cursor()

  • 通過Cursor執行SQL語句,然後獲得執行結果,我們先來建立一個students表;

sql = 'create table students(id int primary key, name varchar(20) not null , age int not null)'
cursor.execute(sql)  # 建立表的命令

  • 最後一定要記得關閉遊標和關閉連線;

cursor.close()
conn.close()

  • 現在我們已經知道使用SQLite資料庫的基本步驟了,那接下來我們試著給students表插入資料了, conn.commit() 表示通過連線將插入的資料進行提交,其他的查詢語句、修改語句、刪除語句也差不多,大家可以自己動手嘗試一下喲~

import sqlite3
conn = sqlite3.connect('./test.db')
cursor = conn.cursor()
sql = 'insert into students values (?, ?, ?)'
result = cursor.execute(sql, (1, 'Angle' ,18))
conn.commit()  # 通過連線將插入的資料進行提交
cursor.close()
conn.close()

3.Python sqlite3模組的API

我們還可以來簡單瞭解一下sqlite3模組的API

  • sqlite3.connect() :開啟SQLite資料庫連線,返回一個連線物件;

  • connection.cursor() :建立一個 cursor;

  • cursor.execute() :執行一個 SQL 語句;

  • connection.execute() :通過呼叫游標(cursor)方法建立了一箇中間的游標物件,然後通過給定的引數呼叫游標的 execute 方法;

  • cursor.executemany() :對 seq_of_parameters 中的所有引數或對映執行一個 SQL 命令;

  • connection.executemany() :是一個由呼叫游標(cursor)方法建立的中間的游標物件的快捷方式,然後通過給定的引數呼叫游標的 executemany 方法;

  • cursor.executescript() :一旦接收到指令碼,會執行多個 SQL 語句;

  • connection.executescript() :是一個由呼叫游標(cursor)方法建立的中間的游標物件的快捷方式,然後通過給定的引數呼叫游標的 executescript 方法;

  • connection.total_changes() :返回自資料庫連線開啟以來被修改、插入或刪除的資料庫總行數;

  • connection.commit() :該方法提交當前的事務;

  • connection.rollback() :該方法回滾自上一次呼叫 commit() 以來對資料庫所做的更改;

  • connection.close() :該方法關閉資料庫連線;

  • cursor.fetchone() :獲取查詢結果集中的下一行,返回一個單一的序列,當沒有更多可用的資料時,則返回 None;

  • cursor.fetchmany() :獲取查詢結果集中的下一行組,返回一個列表;

  • cursor.fetchall() :獲取查詢結果集中所有(剩餘)的行,返回一個列表,當沒有可用的行時,則返回一個空的列表;

參考: https://www.9xkd.com/user/plan-view.html?id=6730103600

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908432/viewspace-2644272/,如需轉載,請註明出處,否則將追究法律責任。

相關文章