• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 3、SQLite學習筆記--SQLite的命令與語法

    一、.help 查看命令使用提示

    1、提示如下


    2、提示詳解

    命令描述
    .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 定時器。

    3、.show 命令,來查看 SQLite 命令提示符默認的設置


    4、格式化輸出

    (1)使用下面的點命令配置格式化輸出

    //
    sqlite>.header on
    sqlite>.mode column
    sqlite>.timer on
    sqlite>
    //

    (2)上面的配置對應的格式化輸出如下

    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

    5、sqlite_master 表格

    (1)主表中保存數據庫表的關鍵信息,并把它命名為 sqlite_master。如要查看表概要,可按如下操作:

    //
    sqlite>.schema sqlite_master
    //

    (2)上面命令運行后結果如下

    CREATE TABLE sqlite_master (
      type text,
      name text,
      tbl_name text,
      rootpage integer,
      sql text
    );

    二、SQLite 語法

    1、注意事項

    (1)關鍵字和標識符:此處來自《SQLite權威指南》[第2版],作者Grant Allen

        A、關鍵字是SQL中有指定含義的單詞,這些單詞包括select、update、insert、create、drop、begin等。

        B、標識符是指數據庫里的具體對象,如表或索引。關鍵字是保留的單詞,不能用作標識符。SQL不區分關鍵字和標識符的大小寫,例如,下面是相同的語句:

    //
    SELECT * from foo;
    SeLeCt * FrOm FOO;
    //
        C、SQLite中默認的字符常量值是大小寫敏感的。因此,‘Mike’與‘mike’是不同的。

    (2)所有的 SQLite 語句可以以任何關鍵字開始,如 SELECT、INSERT、UPDATE、DELETE、ALTER、DROP 等,所有的語句以分號(;)結束

    2、各語句介紹

    (1)SQLite ANALYZE 語句:

    ANALYZE;
    or
    ANALYZE database_name;
    or
    ANALYZE database_name.table_name;

    (2)SQLite AND/OR 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  CONDITION-1 {AND|OR} CONDITION-2;

    (3)SQLite ALTER TABLE 語句:

    ALTER TABLE table_name ADD COLUMN column_def...;

    (4)SQLite ALTER TABLE 語句(Rename):

    ALTER TABLE table_name RENAME TO new_table_name;

    (5)SQLite ATTACH DATABASE 語句:

    ATTACH DATABASE 'DatabaseName' As 'Alias-Name';

    (6)SQLite BEGIN TRANSACTION 語句:

    BEGIN;
    or
    BEGIN EXCLUSIVE TRANSACTION;

    (7)SQLite BETWEEN 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  column_name BETWEEN val-1 AND val-2;

    (8)SQLite COMMIT 語句:

    COMMIT;

    (9)SQLite CREATE INDEX 語句:

    CREATE INDEX index_name
    ON table_name ( column_name COLLATE NOCASE );

    (10)SQLite CREATE UNIQUE INDEX 語句:

    CREATE UNIQUE INDEX index_name
    ON table_name ( column1, column2,...columnN);

    (11)SQLite CREATE TABLE 語句:

    CREATE TABLE table_name(
       column1 datatype,
       column2 datatype,
       column3 datatype,
       .....
       columnN datatype,
       PRIMARY KEY( one or more columns )
    );

    (12)SQLite CREATE TRIGGER 語句:

    CREATE TRIGGER database_name.trigger_name 
    BEFORE INSERT ON table_name FOR EACH ROW
    BEGIN 
       stmt1; 
       stmt2;
       ....
    END;

    (13)SQLite CREATE VIEW 語句:

    CREATE VIEW database_name.view_name  AS
    SELECT statement....;

    (14)SQLite CREATE VIRTUAL TABLE 語句:

    CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log );
    or
    CREATE VIRTUAL TABLE database_name.table_name USING fts3( );

    (15)SQLite COMMIT TRANSACTION 語句:

    COMMIT;

    (16)SQLite COUNT 子句:

    SELECT COUNT(column_name)
    FROM   table_name
    WHERE  CONDITION;

    (17)SQLite DELETE 語句:

    DELETE FROM table_name
    WHERE  {CONDITION};

    (18)SQLite DETACH DATABASE 語句:

    DETACH DATABASE 'Alias-Name';

    (19)SQLite DISTINCT 子句:

    SELECT DISTINCT column1, column2....columnN
    FROM   table_name;

    (20)SQLite DROP INDEX 語句:

    DROP INDEX database_name.index_name;

    (21)SQLite DROP TABLE 語句:

    DROP TABLE database_name.table_name;

    (22)SQLite DROP VIEW 語句:

    DROP VIEW view_name;

    (23)SQLite DROP TRIGGER 語句:

    DROP TRIGGER trigger_name

    (24)SQLite EXISTS 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  column_name EXISTS (SELECT * FROM   table_name );

    (25)SQLite EXPLAIN 語句:

    EXPLAIN INSERT statement...;
    or 
    EXPLAIN QUERY PLAN SELECT statement...;

    (26)SQLite GLOB 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  column_name GLOB { PATTERN };

    (27)SQLite GROUP BY 子句:

    SELECT SUM(column_name)
    FROM   table_name
    WHERE  CONDITION
    GROUP BY column_name;

    (28)SQLite HAVING 子句:

    SELECT SUM(column_name)
    FROM   table_name
    WHERE  CONDITION
    GROUP BY column_name
    HAVING (arithematic function condition);

    (29)SQLite INSERT INTO 語句:

    INSERT INTO table_name( column1, column2....columnN)
    VALUES ( value1, value2....valueN);

    (30)SQLite IN 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  column_name IN (val-1, val-2,...val-N);

    (31)SQLite Like 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  column_name LIKE { PATTERN };

    (32)SQLite NOT IN 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  column_name NOT IN (val-1, val-2,...val-N);

    (33)SQLite ORDER BY 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  CONDITION
    ORDER BY column_name {ASC|DESC};

    (34)SQLite PRAGMA 語句:

    PRAGMA pragma_name;
    
    For example:
    
    PRAGMA page_size;
    PRAGMA cache_size = 1024;
    PRAGMA table_info(table_name);

    (35)SQLite RELEASE SAVEPOINT 語句:

    RELEASE savepoint_name;

    (36)SQLite REINDEX 語句:

    REINDEX collation_name;
    REINDEX database_name.index_name;
    REINDEX database_name.table_name;

    (37)SQLite ROLLBACK 語句:

    ROLLBACK;
    or
    ROLLBACK TO SAVEPOINT savepoint_name;

    (38)SQLite SAVEPOINT 語句:

    SAVEPOINT savepoint_name;

    (39)SQLite SELECT 語句:

    SELECT column1, column2....columnN
    FROM   table_name;

    (40)SQLite UPDATE 語句:

    UPDATE table_name
    SET column1 = value1, column2 = value2....columnN=valueN
    [ WHERE  CONDITION ];

    (41)SQLite VACUUM 語句:

    VACUUM;

    (42)SQLite WHERE 子句:

    SELECT column1, column2....columnN
    FROM   table_name
    WHERE  CONDITION;


    致謝

    1、SQLite 教程(runoob)

    2、SQLite官網





    版權聲明:本文為qq_38880380原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_38880380/article/details/80115431

    智能推薦

    SQLite學習

    創建數據庫 添加數據 修改數據 刪除數據 查詢數據 創建一個名為BookStore.db的數據庫 adb shell環境配置 adb shell命令操作 升級數據庫 添加數據 更新數據 刪除數據 查詢數據...

    SQLite3源碼學習(19) printf的實現

    在SQLite中并沒有使用標準庫的printf()函數,而是自己實現了printf的全部功能并針對不同的應用做了一層封裝。所有相關代碼在printf.c里,下面就來分析SQLite是如何實現自己的printf。 1.可變參數        可變參數是實現printf的基礎,其聲明格式如下: printf(const char *zForm...

    Sqlite3源碼學習(5)OS的接口VFS

        之前講了那么多的環境搭建,現在終于可以學習源碼了。官方有一篇講解VFS的文檔,對理解sqlite3的VFS有很大的幫助: http://www.sqlite.org/vfs.html 1.VFS簡介       VFS也就是所謂的虛擬文件系統,因為sqlite3運行在不同的平臺上會有不同的文件系統,V...

    SQLite的基礎學習(二)

    這篇博客主要介紹如何用JAVA語言連接到SQLite數據庫并打開數據庫 用JAVA操作SQLite要導入Sqlite jdbc驅動包,是一種用于執行SQL語句的JAVA API。 1.用SQLite Expert Professional創建數據表 第一步:打開軟件后點擊File–>New Database 或者Open Database,打開數據庫; 第二步:右鍵單擊選中的數據...

    SQLite

    SQLite可視化工具sqlitebrowser,下載地址 http://sqlitebrowser.org/ Ubuntu/deepin安裝方式 打開數據庫文件 How to install sqlite3 查看版本 創建一個名為test.db 的數據庫 進入sqlite后 創建一個表 向mytable插入數據 查詢數據表 設置為列顯示模式 退出數據庫 重新進入test.db數據庫 查看數據庫信...

    猜你喜歡

    SQLite

    相關參考鏈接為:http://blog.csdn.net/qq_28234213/article/details/72784331 http://www.cnblogs.com/Luoma_HaoWei/archive/2013/08/23/3278154.html 一、Ctrl+Z之后,在按回車,可以退出命令行界面。 二、 sqlite進入 ...> 狀態退出的方法: 此時是進入...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡