SQLite教程(八):命令列工具介紹,sqlite命令列

來源:互聯網
上載者:User

SQLite教程(八):命令列工具介紹,sqlite命令列

工欲善其事,必先利其器。學好SQLite的命令列工具,對於我們學習SQLite本身而言是非常非常有協助的。最基本的一條就是,它讓我們學習SQLite的過程更加輕鬆愉快。言歸正傳吧,在SQLite的官方下載網站,提供了支援多個平台的命令列工具,使用該工具我們可以完成大多數常用的SQLite操作,就像sqlplus之於Oracle。以下列表給出了該工具的內建命令:

命令名 命令說明
.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命令將mainDatabase Backup到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
    3
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.