1. 程式人生 > >SQLite3介紹

SQLite3介紹

null sql alt .data tde arc 可用 ati 布爾值

一、SQLite數據庫簡介

SQLite 是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。SQLite 是在世界上最廣泛部署的 SQL 數據庫引擎。

DDL - 數據定義語言

命令描述
CREATE 創建一個新的表,一個表的視圖,或者數據庫中的其他對象。
ALTER 修改數據庫中的某個已有的數據庫對象,比如一個表。
DROP 刪除整個表,或者表的視圖,或者數據庫中的其他對象。

DML - 數據操作語言

命令描述
INSERT 創建一條記錄。
UPDATE 修改記錄。
DELETE 刪除記錄。

DQL - 數據查詢語言

命令描述
SELECT 從一個或多個表中檢索某些記錄。

在 Windows 上安裝 SQLite

  • 請訪問 SQLite 下載頁面,從 Windows 區下載預編譯的二進制文件。

  • 您需要下載 sqlite-tools-win32-*.zipsqlite-dll-win32-*.zip 壓縮文件。

  • 創建文件夾 C:\sqlite,並在此文件夾下解壓上面兩個壓縮文件,將得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。

  • 添加 C:\sqlite 到 PATH 環境變量,最後在命令提示符下,使用 sqlite3 命令。

在 Linux 上安裝 SQLite

目前,幾乎所有版本的 Linux 操作系統都附帶 SQLite。所以,只要使用下面的命令來檢查您的機器上是否已經安裝了 SQLite。

$sqlite3
Ubuntu下:sudo  apt-get  install  sqlite3

使用 SQLite

如需獲取可用的點命令的清單,可以在任何時候輸入 ".help"。例如:

sqlite>.help

上面的命令會顯示各種重要的 SQLite 點命令的列表,如下所示:

命令描述
.backup ?DB? FILE 備份 DB 數據庫(默認是 "main")到 FILE 文件。
.bail ON|OFF 發生錯誤後停止。默認為 OFF。
.databases 列出數據庫的名稱及其所依附的文件。
.dump ?TABLE? 以 SQL 文本格式轉儲數據庫。如果指定了 TABLE 表,則只轉儲匹配 LIKE 模式的 TABLE 表。
.echo ON|OFF 開啟或關閉 echo 命令。
.exit 退出 SQLite 提示符。
.explain ON|OFF 開啟或關閉適合於 EXPLAIN 的輸出模式。如果沒有帶參數,則為 EXPLAIN on,及開啟 EXPLAIN。
.header(s) ON|OFF 開啟或關閉頭部顯示。
.help 顯示消息。
.import FILE TABLE 導入來自 FILE 文件的數據到 TABLE 表中。
.indices ?TABLE? 顯示所有索引的名稱。如果指定了 TABLE 表,則只顯示匹配 LIKE 模式的 TABLE 表的索引。
.load FILE ?ENTRY? 加載一個擴展庫。
.log FILE|off 開啟或關閉日誌。FILE 文件可以是 stderr(標準錯誤)/stdout(標準輸出)。
.mode MODE 設置輸出模式,MODE 可以是下列之一:
  • csv 逗號分隔的值

  • column 左對齊的列

  • html HTML 的 <table> 代碼

  • insert TABLE 表的 SQL 插入(insert)語句

  • line 每行一個值

  • list 由 .separator 字符串分隔的值

  • tabs 由 Tab 分隔的值

  • tcl TCL 列表元素

.nullvalue STRING 在 NULL 值的地方輸出 STRING 字符串。
.output FILENAME 發送輸出到 FILENAME 文件。
.output stdout 發送輸出到屏幕。
.print STRING... 逐字地輸出 STRING 字符串。
.prompt MAIN CONTINUE 替換標準提示符。
.quit 退出 SQLite 提示符。
.read FILENAME 執行 FILENAME 文件中的 SQL。
.schema ?TABLE? 顯示 CREATE 語句。如果指定了 TABLE 表,則只顯示匹配 LIKE 模式的 TABLE 表。
.separator STRING 改變輸出模式和 .import 所使用的分隔符。
.show 顯示各種設置的當前值。
.stats ON|OFF 開啟或關閉統計。
.tables ?PATTERN? 列出匹配 LIKE 模式的表的名稱。
.timeout MS 嘗試打開鎖定的表 MS 毫秒。
.width NUM NUM 為 "column" 模式設置列寬度。
.timer ON|OFF 開啟或關閉 CPU 定時器。

SQLite 親和類型(Affinity)及類型名稱

下表列出了當創建 SQLite3 表時可使用的各種數據類型名稱,同時也顯示了相應的親和類型:

數據類型親和類型
  • INT

  • INTEGER

  • TINYINT

  • SMALLINT

  • MEDIUMINT

  • BIGINT

  • UNSIGNED BIG INT

  • INT2

  • INT8

INTEGER
  • CHARACTER(20)

  • VARCHAR(255)

  • VARYING CHARACTER(255)

  • NCHAR(55)

  • NATIVE CHARACTER(70)

  • NVARCHAR(100)

  • TEXT

  • CLOB

TEXT
  • BLOB

  • no datatype specified

NONE
  • REAL

  • DOUBLE

  • DOUBLE PRECISION

  • FLOAT

REAL
  • NUMERIC

  • DECIMAL(10,5)

  • BOOLEAN

  • DATE

  • DATETIME

NUMERIC

Boolean 數據類型

SQLite 沒有單獨的 Boolean 存儲類。相反,布爾值被存儲為整數 0(false)和 1(true)。

Date 與 Time 數據類型

SQLite 沒有一個單獨的用於存儲日期和/或時間的存儲類,但 SQLite 能夠把日期和時間存儲為 TEXT、REAL 或 INTEGER 值。

存儲類日期格式
TEXT 格式為 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。
REAL 從公元前 4714 年 11 月 24 日格林尼治時間的正午開始算起的天數。
INTEGER 從 1970-01-01 00:00:00 UTC 算起的秒數。

SQLite 創建數據庫

SQLite 的 sqlite3 命令被用來創建新的 SQLite 數據庫。您不需要任何特殊的權限即可創建一個數據。

語法

sqlite3 命令的基本語法如下:

$sqlite3 DatabaseName.db

.dump 命令

您可以在命令提示符中使用 SQLite .dump 點命令來導出完整的數據庫在一個文本文件中,如下所示:

$sqlite3 testDB.db .dump > testDB.sql

上面的命令將轉換整個 testDB.db 數據庫的內容到 SQLite 的語句中,並將其轉儲到 ASCII 文本文件 testDB.sql 中。您可以通過簡單的方式從生成的 testDB.sql 恢復,如下所示:

$sqlite3 testDB.db < testDB.sql

此時的數據庫是空的,一旦數據庫中有表和數據。

SQLite3介紹