SQLite命令
1> .help 幫助信息
2>.show 輸出格式設置
3>.excel 把操作結果輸入excel
4>.schema sqlite_master 輸出主表中保存數據庫表
5>.header on / .mode column /.timer on 輸出形式設置
6>.exit 退出數據庫
7>.databases 顯示數據庫列表
8> -- 、/*....*/ 注釋
9> .dump > 點命令來導出完整的數據庫在一個文本文件中 -- testDB.db .dump > testDB.sql
10> < 從生成的testDB.sql恢復
11>.table 列出附加數據庫中的所有表
12>.schema 命令得到表的完整信息
13>.width num,num...命令設置顯示列的寬度
SQLite數據類型



SQLite 數據庫操作:
1>. 創建數據庫 :sqlite3 DatabaseName.db
2>. 附加數據庫: ATTACH DATABASE 'testDB.db' as 'TEST'
3>.分離數據庫: DETACH DATABASE ‘Alias-Name’;
SQLite 數據庫表的操作:
創建表:CREATE TABLE
CREATE TABLE database_name.table_name( column1 datatype PRIMARY KEY(one or more columns), column2 datatype, column3 datatype, ..... columnN datatype, );
刪除表:DROP TABLE語句用來刪除表定義及其所有相關數據、索引、觸發器、約束和該表的權限規范
DROP TABLE database_name.table_name;
向數據庫的某個表中添加新的數據行:Insert into 語句:
第一種:INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);
第二種:INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
第三種:
INSERT INTO first_table_name [(column1, column2, ... columnN)] SELECT column1, column2, ...columnN FROM second_table_name [WHERE condition];
更新數據庫數據: UPDATE 查詢用於修改表中已有的記錄。可以使用帶有 WHERE 子句的 UPDATE 查詢來更新選定行,否則所有的行都會被更新。
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
刪除數據庫已有的記錄:DELETE 查詢用於刪除表中已有的記錄。可以使用帶有 WHERE 子句的 DELETE 查詢來刪除選定行,否則所有的記錄都會被刪除。
DELETE FROM table_name
WHERE [condition];
SQLite Like 子句:
-
百分號 (%)
-
下划線 (_)
百分號(%)代表零個、一個或多個數字或字符。下划線(_)代表一個單一的數字或字符。這些符號可以被組合使用。
SQLite Glob 子句:與 LIKE 運算符不同的是,GLOB 是大小寫敏感的,
-
星號 (*)
-
問號 (?)
星號(*)代表零個、一個或多個數字或字符。問號(?)代表一個單一的數字或字符。這些符號可以被組合使用。
SQLite 語句的格式:
SELECT Distinct FROM WHERE GROUP BY HAVING ORDER BY
Limit
SQLite 邏輯運算符:

SQLite 約束:
約束是在表的數據列上強制執行的規則。這些是用來限制可以插入到表中的數據類型。這確保了數據庫中數據的准確性和可靠性。
約束可以是列級或表級。列級約束僅適用於列,表級約束被應用到整個表。
以下是在 SQLite 中常用的約束
-
NOT NULL 約束:確保某列不能有 NULL 值。
-
DEFAULT 約束:當某列沒有指定值時,為該列提供默認值。
-
UNIQUE 約束:確保某列中的所有值是不同的。
-
PRIMARY Key 約束:唯一標識數據庫表中的各行/記錄。
-
CHECK 約束:CHECK 約束確保某列中的所有值滿足一定條件。
- 一個表只能有一個主鍵,它可以由一個或多個字段組成。當多個字段作為主鍵,它們被稱為復合鍵。
CREATE TABLE COMPANY3( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL CHECK(SALARY > 0) );
SQLite Join
SQL 定義了三種主要類型的連接:
-
交叉連接 - CROSS JOIN --- 兩個表所有數據行的笛卡爾積
-
內連接 - INNER JOIN ----把 table1 中的每一行與 table2 中的每一行進行比較,找到所有滿足連接謂詞的行的匹配對。當滿足連接謂詞時,A 和 B 行的每個匹配對的列值會合並成一個結果行
-
SELECT ... FROM table1 [INNER] JOIN table2 ON conditional_expression ... -
SELECT ... FROM table1 JOIN table2 USING ( column1 ,... ) ...
-
-
外連接 - OUTER JOIN
-
SELECT ... FROM table1 LEFT OUTER JOIN table2 ON conditional_expression ... -
SELECT ... FROM table1 LEFT OUTER JOIN table2 USING ( column1 ,... ) ...
-
SQLite Unions
UNION 子句:
UNION 子句/運算符用於合並兩個或多個 SELECT 語句的結果,不返回任何重復的行,為了使用 UNION,每個 SELECT 被選擇的列數必須是相同的,相同數目的列表達式,相同的數據類型,並確保它們有相同的順序,但它們不必具有相同的長度。
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
UNION ALL 子句:
UNION ALL 運算符用於結合兩個 SELECT 語句的結果,包括重復行。
適用於 UNION 的規則同樣適用於 UNION ALL 運算符。
SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition] UNION ALL SELECT column1 [, column2 ] FROM table1 [, table2 ] [WHERE condition]
SQLite NULL
SQLite 的 NULL 是用來表示一個缺失值的項。表中的一個 NULL 值是在字段中顯示為空白的一個值。
帶有 NULL 值的字段是一個不帶有值的字段。NULL 值與零值或包含空格的字段是不同的,理解這點是非常重要的
IS NOT NULL / IS NULL 運算符
