python SQLite數據庫

  • 簡介

      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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章