SQLite教程(八):命令行工具介紹
工欲善其事,必先利其器。學(xué)好SQLite的命令行工具,對(duì)于我們學(xué)習(xí)SQLite本身而言是非常非常有幫助的。最基本的一條就是,它讓我們學(xué)習(xí)SQLite的過(guò)程更加輕松愉快。言歸正傳吧,在SQLite的官方下載網(wǎng)站,提供了支持多個(gè)平臺(tái)的命令行工具,使用該工具我們可以完成大多數(shù)常用的SQLite操作,就像sqlplus之于Oracle。以下列表給出了該工具的內(nèi)置命令:
命令名 | 命令說(shuō)明 |
.help | 列出所有內(nèi)置命令。 |
.backup DBNAME FILE | 備份指定的數(shù)據(jù)庫(kù)到指定的文件,缺省為當(dāng)前連接的main數(shù)據(jù)庫(kù)。 |
.databases | 列出當(dāng)前連接中所有attached數(shù)據(jù)庫(kù)名和文件名。 |
.dump TABLENAME ... | 以SQL文本的格式DUMP當(dāng)前連接的main數(shù)據(jù)庫(kù),如果指定了表名,則只是DUMP和表名匹配的數(shù)據(jù)表。參數(shù)TABLENAME支持LIKE表達(dá)式支持的通配符。 |
.echo ON|OFF | 打開(kāi)或關(guān)閉顯示輸出。 |
.exit | 退出當(dāng)前程序。 |
.explain ON|OFF | 打開(kāi)或關(guān)閉當(dāng)前連接的SELECT輸出到Human Readable形式。 |
.header(s) ON|OFF | 在顯示SELECT結(jié)果時(shí),是否顯示列的標(biāo)題。 |
.import FILE TABLE | 導(dǎo)入指定文件的數(shù)據(jù)到指定表。 |
.indices TABLENAME | 顯示所有索引的名字,如果指定表名,則僅僅顯示匹配該表名的數(shù)據(jù)表的索引,參數(shù)TABLENAME支持LIKE表達(dá)式支持的通配符。 |
.log FILE|off | 打開(kāi)或關(guān)閉日志功能,F(xiàn)ILE可以為標(biāo)準(zhǔn)輸出stdout,或標(biāo)準(zhǔn)錯(cuò)誤輸出stderr。 |
.mode MODE TABLENAME | 設(shè)置輸出模式,這里最為常用的模式是column模式,使SELECT輸出列左對(duì)齊顯示。 |
.nullvalue STRING | 使用指定的字符串代替NULL值的顯示。 |
.output FILENAME | 將當(dāng)前命令的所有輸出重定向到指定的文件。 |
.output stdout | 將當(dāng)前命令的所有輸出重定向到標(biāo)準(zhǔn)輸出(屏幕)。 |
.quit | 退出當(dāng)前程序。 |
.read FILENAME | 執(zhí)行指定文件內(nèi)的SQL語(yǔ)句。 |
.restore DBNAME FILE | 從指定的文件還原數(shù)據(jù)庫(kù),缺省為main數(shù)據(jù)庫(kù),此時(shí)也可以指定其它數(shù)據(jù)庫(kù)名,被指定的數(shù)據(jù)庫(kù)成為當(dāng)前連接的attached數(shù)據(jù)庫(kù)。 |
.schema TABLENAME | 顯示數(shù)據(jù)表的創(chuàng)建語(yǔ)句,如果指定表名,則僅僅顯示匹配該表名的數(shù)據(jù)表創(chuàng)建語(yǔ)句,參數(shù)TABLENAME支持LIKE表達(dá)式支持的通配符。 |
.separator STRING | 改變輸出模式和.import的字段間分隔符。 |
.show | 顯示各種設(shè)置的當(dāng)前值。 |
.tables TABLENAME | 列出當(dāng)前連接中main數(shù)據(jù)庫(kù)的所有表名,如果指定表名,則僅僅顯示匹配該表名的數(shù)據(jù)表名稱(chēng),參數(shù)TABLENAME支持LIKE表達(dá)式支持的通配符。 |
.width NUM1 NUM2 ... | 在MODE為column時(shí),設(shè)置各個(gè)字段的寬度,注意:該命令的參數(shù)順序表示字段輸出的順序。 |
見(jiàn)如下常用示例:
1). 備份和還原數(shù)據(jù)庫(kù)。
--在當(dāng)前連接的main數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)數(shù)據(jù)表,之后再通過(guò).backup命令將main數(shù)據(jù)庫(kù)備份到D:/mydb.db文件中。
sqlite> CREATE TABLE mytable (first_col integer);
sqlite> .backup 'D:/mydb.db'
sqlite> .exit
--通過(guò)在命令行窗口下執(zhí)行sqlite3.exe以重新建立和SQLite的連接。
--從備份文件D:/mydb.db中恢復(fù)數(shù)據(jù)到當(dāng)前連接的main數(shù)據(jù)庫(kù)中,再通過(guò).tables命令可以看到mytable表。
sqlite> .restore 'D:/mydb.db'
sqlite> .tables
mytable
2). DUMP數(shù)據(jù)表的創(chuàng)建語(yǔ)句到指定文件。
--先將命令行當(dāng)前的輸出重定向到D:/myoutput.txt,之后在將之前創(chuàng)建的mytable表的聲明語(yǔ)句輸出到該文件。
sqlite> .output D:/myoutput.txt
sqlite> .dump mytabl%
sqlite> .exit
--在DOS環(huán)境下用記事本打開(kāi)目標(biāo)文件。
D:\>notepad myoutput.txt
3). 顯示當(dāng)前連接的所有Attached數(shù)據(jù)庫(kù)和main數(shù)據(jù)庫(kù)。
sqlite> ATTACH DATABASE 'D:/mydb.db' AS mydb;
sqlite> .databases
seq name file
--- --------------- ------------------------
0 main
2 mydb D:\mydb.db
4). 顯示main數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)表。
sqlite> .tables
mytable
5). 顯示匹配表名mytabl%的數(shù)據(jù)表的所有索引。
sqlite> CREATE INDEX myindex on mytable(first_col);
sqlite> .indices mytabl%
myindex
6). 顯示匹配表名mytable%的數(shù)據(jù)表的Schema信息。
--依賴(lài)該表的索引信息也被輸出。
sqlite> .schema mytabl%
CREATE TABLE mytable (first_col integer);
CREATE INDEX myindex on mytable(first_col);
7). 格式化顯示SELECT的輸出信息。
--插入測(cè)試數(shù)據(jù)
sqlite> INSERT INTO mytable VALUES(1);
sqlite> INSERT INTO mytable VALUES(2);
sqlite> INSERT INTO mytable VALUES(3);
--請(qǐng)注意沒(méi)有任何設(shè)置時(shí)SELECT結(jié)果集的輸出格式。
sqlite> SELECT * FROM mytable;
1
2
3
--顯示SELECT結(jié)果集的列名。
--以列的形式顯示各個(gè)字段。
--將其后輸出的第一列顯示寬度設(shè)置為10.
sqlite> .header on
sqlite> .mode column
sqlite> .width 10
sqlite> SELECT * FROM mytable;
first_col
----------
1
2
3
相關(guān)文章
SQLite教程(十四):C語(yǔ)言編程實(shí)例代碼(2)
這篇文章主要介紹了SQLite教程(十四):C語(yǔ)言編程實(shí)例代碼(2),本文講解了高效的批量數(shù)據(jù)插入和數(shù)據(jù)查詢(xún)代碼實(shí)例,需要的朋友可以參考下2015-05-05為SQLite3提供一個(gè)ANSI到UTF8的互轉(zhuǎn)函數(shù)
這篇文章主要為大家分享下ANSI與UTF8的互轉(zhuǎn)函數(shù),需要的朋友可以收藏下2013-12-12sQlite常用語(yǔ)句以及sQlite developer的使用與注冊(cè)
sQlite數(shù)據(jù)庫(kù)對(duì)大家來(lái)說(shuō)應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于sQlite常用語(yǔ)句以及sQlite developer使用與注冊(cè)的相關(guān)資料,文中通過(guò)示例代碼與圖片給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面來(lái)一起看看吧。2017-10-10sqlite時(shí)間戳轉(zhuǎn)時(shí)間語(yǔ)句(時(shí)間轉(zhuǎn)時(shí)間戳)
這篇文章主要介紹了sqlite時(shí)間戳轉(zhuǎn)時(shí)間、時(shí)間轉(zhuǎn)時(shí)間戳的方法,需要的朋友可以參考下2014-06-06SQLite數(shù)據(jù)庫(kù)常用語(yǔ)句及MAC上的SQLite可視化工具M(jìn)easSQLlite使用方法
這篇文章主要介紹了SQLite數(shù)據(jù)庫(kù)常用語(yǔ)句及MAC上的SQLite可視化工具M(jìn)easSQLlite使用方法,需要的朋友可以參考下2016-01-01保護(hù)你的Sqlite數(shù)據(jù)庫(kù)(SQLite數(shù)據(jù)庫(kù)安全秘籍)
相信使用PHP開(kāi)發(fā)的人員一定不會(huì)對(duì)SQLite感到陌生了,PHP5已經(jīng)集成了這個(gè)輕量型的數(shù)據(jù)庫(kù)。并且很多虛擬主機(jī)無(wú)論是win還是*nux都支持它。2009-08-08SQLite數(shù)據(jù)庫(kù)安裝及基本操作指南
SQLite 是一個(gè)開(kāi)源的嵌入式關(guān)系數(shù)據(jù)庫(kù),實(shí)現(xiàn)自包容、零配置、支持事務(wù)的SQL數(shù)據(jù)庫(kù)引擎。 其特點(diǎn)是高度便攜、使用方便、結(jié)構(gòu)緊湊、高效、可靠。今天我們主要來(lái)講解下SQLite數(shù)據(jù)庫(kù)的安裝以及基本操作指南2014-08-08基于sqlite特殊字符轉(zhuǎn)義的實(shí)現(xiàn)方法
本篇文章是對(duì)sqlite特殊字符轉(zhuǎn)義的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05