SQLite學習手冊(命令行工具)

工欲善其事,必先利其器。學好SQLite的命令行工具,對於咱們學習SQLite自己而言是很是很是有幫助的。最基本的一條就是,它讓咱們學習SQLite的過程更加輕鬆愉快。言歸正傳吧,在SQLite的官方下載網站,提供了支持多個平臺的命令行工具,使用該工具咱們能夠完成大多數經常使用的SQLite操做,就像sqlplus之於Oracle。如下列表給出了該工具的內置命令:web

命令名 命令說明
.help 列出全部內置命令。
.backup DBNAME FILE 備份指定的數據庫到指定的文件,缺省爲當前鏈接的main數據庫。
.databases 列出當前鏈接中全部attached數據庫名和文件名。
.dump TABLENAME ... 以SQL文本的格式DUMP當前鏈接的main數據庫,若是指定了表名,則只是DUMP和表名匹配的數據表。參數TABLENAME支持LIKE表達式支持的通配符。
.echo ON|OFF 打開或關閉顯示輸出。
.exit 退出當前程序。
.explain ON|OFF 打開或關閉當前鏈接的SELECT輸出到Human Readable形式。
.header(s) ON|OFF 在顯示SELECT結果時,是否顯示列的標題。
.import FILE TABLE 導入指定文件的數據到指定表。
.indices TABLENAME 顯示全部索引的名字,若是指定表名,則僅僅顯示匹配該表名的數據表的索引,參數TABLENAME支持LIKE表達式支持的通配符。
.log FILE|off 打開或關閉日誌功能,FILE能夠爲標準輸出stdout,或標準錯誤輸出stderr。
.mode MODE TABLENAME 設置輸出模式,這裏最爲經常使用的模式是column模式,使SELECT輸出列左對齊顯示。
.nullvalue STRING 使用指定的字符串代替NULL值的顯示。
.output FILENAME 將當前命令的全部輸出重定向到指定的文件。
.output stdout 將當前命令的全部輸出重定向到標準輸出(屏幕)。
.quit 退出當前程序。
.read FILENAME 執行指定文件內的SQL語句。
.restore DBNAME FILE 從指定的文件還原數據庫,缺省爲main數據庫,此時也能夠指定其它數據庫名,被指定的數據庫成爲當前鏈接的attached數據庫。
.schema TABLENAME 顯示數據表的建立語句,若是指定表名,則僅僅顯示匹配該表名的數據表建立語句,參數TABLENAME支持LIKE表達式支持的通配符。
.separator STRING 改變輸出模式和.import的字段間分隔符。
.show 顯示各類設置的當前值。
.tables TABLENAME 列出當前鏈接中main數據庫的全部表名,若是指定表名,則僅僅顯示匹配該表名的數據表名稱,參數TABLENAME支持LIKE表達式支持的通配符。
.width NUM1 NUM2 ... 在MODE爲column時,設置各個字段的寬度,注意:該命令的參數順序表示字段輸出的順序。

 

見以下經常使用示例:
1). 備份和還原數據庫。
--在當前鏈接的main數據庫中建立一個數據表,以後再經過.backup命令將main數據庫備份到D:/mydb.db文件中。
sqlite> CREATE TABLE mytable (first_col integer);
sqlite> .backup 'D:/mydb.db'
sqlite> .exit
--經過在命令行窗口下執行sqlite3.exe以從新創建和SQLite的鏈接。
--從備份文件D:/mydb.db中恢復數據到當前鏈接的main數據庫中,再經過.tables命令能夠看到mytable表。
sqlite> .restore 'D:/mydb.db'
sqlite> .tables
mytable

2). DUMP數據表的建立語句到指定文件。
--先將命令行當前的輸出重定向到D:/myoutput.txt,以後在將以前建立的mytable表的聲明語句輸出到該文件。
sqlite> .output D:/myoutput.txt
sqlite> .dump mytabl%
sqlite> .exit
--在DOS環境下用記事本打開目標文件。
D:\>notepad myoutput.txt

3). 顯示當前鏈接的全部Attached數據庫和main數據庫。
sqlite> ATTACH DATABASE 'D:/mydb.db' AS mydb;
sqlite> .databases
seq name file
--- --------------- ------------------------
0 main
2 mydb D:\mydb.db

4). 顯示main數據庫中的全部數據表。
sqlite> .tables
mytable

5). 顯示匹配表名mytabl%的數據表的全部索引。
sqlite> CREATE INDEX myindex on mytable(first_col);
sqlite> .indices mytabl%
myindex

6). 顯示匹配表名mytable%的數據表的Schema信息。
--依賴該表的索引信息也被輸出。
sqlite> .schema mytabl%
CREATE TABLE mytable (first_col integer);
CREATE INDEX myindex on mytable(first_col);

7). 格式化顯示SELECT的輸出信息。
--插入測試數據
sqlite> INSERT INTO mytable VALUES(1);
sqlite> INSERT INTO mytable VALUES(2);
sqlite> INSERT INTO mytable VALUES(3);
--請注意沒有任何設置時SELECT結果集的輸出格式。
sqlite> SELECT * FROM mytable;
1
2
3
--顯示SELECT結果集的列名。
--以列的形式顯示各個字段。
--將其後輸出的第一列顯示寬度設置爲10.
sqlite> .header on
sqlite> .mode column
sqlite> .width 10
sqlite> SELECT * FROM mytable;
first_col
----------
1
2
3sql

相關文章
相關標籤/搜索