- 簡介
SQLite 是一種輕型嵌入式關係型數據庫,它包含在一個相對小的 C 庫中。SQLite 佔用資源低,處理速度快,它支持 Windows、Linux、Unix 等多種主流操作系統,支持 Python、Java、C# 等多種語言,目前的版本已經發展到了 SQLite3
SQLite 是一個進程內的庫,它實現了自給自足、無服務器、無需配置、支持事務。Python 可以通過 sqlite3 模塊與 SQLite3 集成,Python 2.5.x 以上版本內置了 sqlite3 模塊,因此,我們在 Python 中可以直接使用 SQLite
# 導入SQLite驅動:
>>> import sqlite3
# 連接到SQLite數據庫
# 數據庫文件是test.db
# 如果文件不存在,會自動在當前目錄創建:
>>> conn = sqlite3.connect('test.db')
# 創建一個Cursor:
>>> cursor = conn.cursor()
# 執行一條SQL語句,創建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')
<sqlite3.Cursor object at 0x10f8aa260>
# 繼續執行一條SQL語句,插入一條記錄:
>>> cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')
<sqlite3.Cursor object at 0x10f8aa260>
# 通過rowcount獲得插入的行數:
>>> cursor.rowcount
1
# 關閉Cursor:
>>> cursor.close()
# 提交事務:
>>> conn.commit()
# 關閉Connection:
>>> conn.close()
>>> conn = sqlite3.connect('test.db')
>>> cursor = conn.cursor()
# 執行查詢語句:
>>> cursor.execute('select * from user where id=?', ('1',))
<sqlite3.Cursor object at 0x10f8aa340>
# 獲得查詢結果集:
>>> values = cursor.fetchall()
>>> values
[(u'1', u'Michael')]
>>> cursor.close()
>>> conn.close()
-
SQLite 數據類型
在介紹使用之前,我們先了解下 SQLite 數據類型。
-
SQLite 採用動態數據類型,也就是說數據的類型取決於數據本身。
-
存儲類型
存儲類型就是數據保存成文件後的表現形式,存儲類型有 5 種,如下所示
-
類型 描述 NULL 空值 INTEGER 有符號的整數類型 REAL 浮點數類型 TEXT 字符串,使用數據庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲 BLOB 二進制表示 -
親和類型
親和類型簡單來說就是數據表列的數據對應存儲類型的傾向性,當數據插入時,字段的數據將會優先採用親緣類型作爲值的存儲方式,同樣有 5 種,如下所示:
-
類型 描述 NONE 不做任何轉換,直接以該數據所屬的數據類型進行存儲 NUMERIC 該列可以包含使用所有五個存儲類型的值 INTEGER 類似於 NUMERIC,區別是在執行 CAST 表達式時 TEXT 該列使用存儲類型 NULL、TEXT 或 BLOB 存儲數據 REAL 類似於 NUMERIC,區別是它會強制把整數值轉換爲浮點類型 -
聲明類型
聲明類型也就是我們寫 SQL 時字段定義的類型,我們看一下常用的聲明類型與親和類型的對應關係。
-
聲明類型 親和類型 INT/INTEGER/TINYINT/BIGINT INTEGER VARCHAR/TEXT/CLOB TEXT BLOB NONE DOUBLE/FLOAT REAL DECIMAL/BOOLEAN/DATE/DATETIME NUMERIC