# SQLite 命令
本章將向您講解 SQLite 編程人員所使用的簡單卻有用的命令。些命令被稱為 SQLite 的點命令,這些命令的不同之處在于它們不以分號(;)結束。
讓我們在命令提示符下鍵入一個簡單的 **sqlite3** 命令,在 SQLite 命令提示符下,您可以使用各種 SQLite 命令。
```
$sqlite3
SQLite version 3.3.6
Enter ".help" for instructions
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 定時器測量。 |
讓我們嘗試使用 **.show** 命令,來查看 SQLite 命令提示符的默認設置。
```
sqlite>.show
echo: off
explain: off
headers: off
mode: column
nullvalue: ""
output: stdout
separator: "|"
width:
sqlite>
```
> 確保 sqlite> 提示符與點命令之間沒有空格,否則將無法正常工作。
## 格式化輸出
您可以使用下列的點命令來格式化輸出為本教程下面所列出的格式:
```
sqlite>.header on
sqlite>.mode column
sqlite>.timer on
sqlite>
```
上面設置將產生如下格式的輸出:
```
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
CPU Time: user 0.000000 sys 0.000000
```
## sqlite_master 表格
主表中保存數據庫表的關鍵信息,并把它命名為 **sqlite_master**。如要查看表概要,可按如下操作:
```
sqlite>.schema sqlite_master
```
這將產生如下結果:
```
CREATE TABLE sqlite_master (
type text,
name text,
tbl_name text,
rootpage integer,
sql text
);
```
- SQL基礎
- SQL 簡介
- SQL 語法
- SQL SELECT 語句
- SQL SELECT DISTINCT 語句
- SQL WHERE 子句
- SQL AND & OR 運算符
- SQL ORDER BY 子句
- SQL INSERT INTO 語句
- SQL UPDATE 語句
- SQL DELETE 語句
- SQL高級
- SQL TOP 子句
- SQL LIKE 操作符
- SQL 通配符
- SQL IN 操作符
- SQL BETWEEN 操作符
- SQL Alias(別名)
- SQL JOIN
- SQL INNER JOIN 關鍵字
- SQL LEFT JOIN 關鍵字
- SQL RIGHT JOIN 關鍵字
- SQL FULL JOIN 關鍵字
- SQL UNION 和 UNION ALL 操作符
- SQL SELECT INTO 語句
- SQL CREATE DATABASE 語句
- SQL CREATE TABLE 語句
- SQL 約束 (Constraints)
- SQL NOT NULL 約束
- SQL UNIQUE 約束
- SQL PRIMARY KEY 約束
- SQL FOREIGN KEY 約束
- SQL CHECK 約束
- SQL DEFAULT 約束
- SQL CREATE INDEX 語句
- SQL 撤銷索引、表以及數據庫
- SQL ALTER TABLE 語句
- SQL AUTO INCREMENT 字段
- SQL VIEW(視圖)
- SQL函數
- SQL Date 函數
- SQL NULL 值
- SQL NULL 函數
- SQL 數據類型
- SQL 服務器 - RDBMS
- SQL 函數
- SQL AVG 函數
- SQL COUNT() 函數
- SQL FIRST() 函數
- SQL LAST() 函數
- SQL MAX() 函數
- SQL MIN() 函數
- SQL SUM() 函數
- SQL GROUP BY 語句
- SQL HAVING 子句
- SQL UCASE() 函數
- SQL LCASE() 函數
- SQL MID() 函數
- SQL LEN() 函數
- SQL ROUND() 函數
- SQL NOW() 函數
- SQL FORMAT() 函數
- SQL 快速參考
- SQLite 基礎
- SQLite 簡介
- SQLite 安裝
- SQLite 命令
- SQLite 語法
- SQLite 數據類型
- SQLite 創建數據庫
- SQLite 附加數據庫
- SQLite 分離數據庫
- SQLite 創建表
- SQLite 刪除表
- SQLite Insert 語句
- SQLite Select 語句
- SQLite 運算符
- SQLite 表達式
- SQLite Where 子句
- SQLite AND/OR 運算符
- SQLite Update 語句
- SQLite Delete 語句
- SQLite Like 子句
- SQLite Glob 子句
- SQLite Limit 子句
- SQLite Order By
- SQLite Group By
- SQLite Having 子句
- SQLite Distinct 關鍵字
- SQLite 高級
- SQLite PRAGMA
- SQLite 約束
- SQLite Joins
- SQLite Unions 子句
- SQLite NULL 值
- SQLite 別名
- SQLite 觸發器(Trigger)
- SQLite 索引(Index)
- SQLite Indexed By
- SQLite Alter 命令
- SQLite Truncate Table
- SQLite 視圖(View)
- SQLite 事務(Transaction)
- SQLite 子查詢
- SQLite Autoincrement(自動遞增)
- SQLite 注入
- SQLite Explain(解釋)
- SQLite Vacuum
- SQLite 日期 & 時間
- SQLite 常用函數
- SQLite 接口
- SQLite - C/C++
- SQLite - Java
- SQLite - PHP
- SQLite - Perl
- SQLite - Python
- MySQL 教程
- MySQL 教程
- MySQL 安裝
- MySQL 管理
- MySQL PHP 語法
- MySQL 連接
- MySQL 創建數據庫
- MySQL 刪除數據庫
- MySQL 選擇數據庫
- MySQL 數據類型
- MySQL 創建數據表
- MySQL 刪除數據表
- MySQL 插入數據
- MySQL 查詢數據
- MySQL where 子句
- MySQL UPDATE 查詢
- MySQL DELETE 語句
- MySQL LIKE 子句
- MySQL 排序
- Mysql Join的使用
- MySQL NULL 值處理
- MySQL 正則表達式
- MySQL 事務
- MySQL ALTER命令
- MySQL 索引
- MySQL 臨時表
- MySQL 復制表
- MySQL 元數據
- MySQL 序列使用
- MySQL 處理重復數據
- MySQL 及 SQL 注入
- MySQL 導出數據
- MySQL 導入數據
- 免責聲明