標籤:模糊查詢 彙總 官方 name bool 隨機 時間 命令 取資料
1、SQLite是什麼
基於檔案的輕型資料庫 無伺服器 零配置 支援事務 開源
2、SQLite 怎麼用
2.1 安裝
SQLite官網上下載對應的DLL 與工具
配置環境變數
安裝完成以後 查看版本
2.2 建立資料庫
sqlite的建立資料庫和使用資料庫都是一個命令,資料庫存在則根據名字載入資料庫,如果不存在則建立這個資料庫,
然後會看到sqlite> 表示正在使用這個資料庫
2.3 建立,刪除資料表
建立:create table user
(
id int primary key not null, --id 主鍵 非空
name varchar(20) not null,
age int
);
刪除:drop table table_name
2.4 sqlite 資料類型
每個儲存在 SQLite 資料庫中的值都具有以下儲存類之一:
儲存類 |
描述 |
NULL |
值是一個 NULL 值。 |
INTEGER |
值是一個帶符號的整數,根據值的大小儲存在 1、2、3、4、6 或 8 位元組中。 |
REAL |
值是一個浮點值,儲存為 8 位元組的 IEEE 浮點數字。 |
TEXT |
值是一個文本字串,使用資料庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)儲存。 |
BLOB |
值是一個 blob 資料,完全根據它的輸入儲存。 |
SQLite Affinity 及類型名稱
下表列出了當建立 SQLite3 表時可使用的各種資料類型名稱,同時也顯示了相應的應用 Affinity:
資料類型 |
Affinity |
INT INTEGER TINYINT SMALLINT MEDIUMINT BIGINT UNSIGNED BIG INT INT2 INT8 |
INTEGER |
CHARACTER(20) VARCHAR(255) VARYING CHARACTER(255) NCHAR(55) NATIVE CHARACTER(70) NVARCHAR(100) TEXT CLOB |
TEXT |
BLOB no datatype specified |
NONE |
REAL DOUBLE DOUBLE PRECISION FLOAT |
REAL |
NUMERIC DECIMAL(10,5) BOOLEAN DATE DATETIME |
NUMERIC |
Boolean 資料類型
SQLite 沒有單獨的 Boolean 儲存類。相反,布爾值被儲存為整數 0(false)和 1(true)。
Date 與 Time 資料類型
SQLite 沒有一個單獨的用於儲存日期和/或時間的儲存類,但 SQLite 能夠把日期和時間儲存為 TEXT、REAL 或 INTEGER 值。
儲存類 |
日期格式 |
TEXT |
格式為 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。 |
REAL |
從公元前 4714 年 11 月 24 日格林尼治時間的正午開始算起的天數。 |
INTEGER |
從 1970-01-01 00:00:00 UTC 算起的秒數。 |
表中插入資料
格式1:INSERT INTO TABLE_NAME (column1, column2,column3,...columnN)] VALUES (value1, value2, value3,...valueN);
格式2:INSERT INTO COMPANY VALUES (7, ‘James‘,24, ‘Houston‘, 10000.00 );
匯入其他表中的資料
INSERT INTO first_table_name [(column1,column2, ... columnN)]
SELECT column1, column2, ...columnN
FROM second_table_name [WHEREcondition];
刪除資料 delete
DELETE FROM table_name WHERE[condition];
尋找資料 select
SQLite 的 SELECT 語句用於從 SQLite 資料庫表中擷取資料,以結果表的形式返回資料。這些結果表也被稱為結果集。SQLite 的 SELECT 語句的基本文法如下:
SELECT column1, column2, columnN FROMtable_name;
更新資料 update
UPDATE table_name
SET column1 = value1, column2 =value2...., columnN = valueN
WHERE [condition];
模糊查詢 like
%:百分比符號 代表一個或者多個任一字元或者資料
_:底線 代表單一的數字或者字元並且2者可以組合使用
WHERE SALARY LIKE ‘200%‘ |
尋找以 200 開頭的任意值 |
WHERE SALARY LIKE ‘%200%‘ |
尋找任意位置包含 200 的任意值 |
WHERE SALARY LIKE ‘_00%‘ |
尋找第二位和第三位為 00 的任意值 |
WHERE SALARY LIKE ‘2_%_%‘ |
尋找以 2 開頭,且長度至少為 3 個字元的任意值 |
WHERE SALARY LIKE ‘%2‘ |
尋找以 2 結尾的任意值 |
WHERE SALARY LIKE ‘_2%3‘ |
尋找第二位為 2,且以 3 結尾的任意值 |
WHERE SALARY LIKE ‘2___3‘ |
尋找長度為 5 位元,且以 2 開頭以 3 結尾的任意值 |
glob:SQLite 的 GLOB 運算子是用來匹配萬用字元指定模式的文本值,與 LIKE 運算子不同的是,GLOB 是大小寫敏感的
*:星號代表零個、一個或多個數字或字元
?:問號代表一個單一的數字或字元。這些符號可以被組合使用。
語句 |
描述 |
WHERE SALARY GLOB ‘200*‘ |
尋找以 200 開頭的任意值 |
WHERE SALARY GLOB ‘*200*‘ |
尋找任意位置包含 200 的任意值 |
WHERE SALARY GLOB ‘?00*‘ |
尋找第二位和第三位為 00 的任意值 |
WHERE SALARY GLOB ‘2??‘ |
尋找以 2 開頭,且長度至少為 3 個字元的任意值 |
WHERE SALARY GLOB ‘*2‘ |
尋找以 2 結尾的任意值 |
WHERE SALARY GLOB ‘?2*3‘ |
尋找第二位為 2,且以 3 結尾的任意值 |
WHERE SALARY GLOB ‘2???3‘ |
尋找長度為 5 位元,且以 2 開頭以 3 結尾的任意值 |
SQLite Limit 子句 :限制返回的資料量
格式1:返回指定數量 的結果集
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]
格式2:從M行開始提取N行的值作為結果集返回
SELECT column1, column2, columnN
FROM table_name
LIMIT N OFFSET M
SQLite Order By 排序
文法格式:
SELECTcolumn-list
FROM table_name
[WHEREcondition]
[ORDER BYcolumn1, column2, .. columnN] [ASC | DESC];
SQLite Group By 分組
文法格式:
SELECTcolumn-list
FROM table_name
WHERE [conditions ]
GROUP BYcolumn1, column2....columnN
ORDER BYcolumn1, column2....columnN
SQLite Having 子句 HAVING子句允許指定條件來過濾將出現在最終結果中的分組結果。
文法
下面是 HAVING 子句在 SELECT 查詢中的位置:
SELECT FROM WHERE GROUP BY HAVING ORDERBY
SELECT column1, column2 FROM table1,table2
WHERE [ conditions ] GROUP BY column1,column2
HAVING [ conditions ]
ORDER BY column1, column2
SQLite Distinct 關鍵字 去重
文法
用於消除重複記錄的 DISTINCT 關鍵字的基本文法如下:
SELECT DISTINCT column1,column2,.....columnN
FROM table_name
WHERE [condition]
SQLite 常用函數
SQLite 有許多內建函數用於處理字串或數字資料。下面列出了一些有用的 SQLite 內建函數,且所有函數都是大小寫不敏感,這意味著您可以使用這些函數的小寫形式或大寫形式或混合形式。欲瞭解更多詳情,請查看 SQLite 的官方文檔:
序號 |
函數 & 描述 |
1 |
SQLite COUNT 函數 SQLite COUNT 聚集合函式是用來計算一個資料庫表中的行數。 |
2 |
SQLite MAX 函數 SQLite MAX 彙總函式允許我們選擇某列的最大值。 |
3 |
SQLite MIN 函數 SQLite MIN 彙總函式允許我們選擇某列的最小值。 |
4 |
SQLite AVG 函數 SQLite AVG 彙總函式計算某列的平均值。 |
5 |
SQLite SUM 函數 SQLite SUM 彙總函式允許為一個數值列計算總和。 |
6 |
SQLite RANDOM 函數 SQLite RANDOM 函數返回一個介於 -9223372036854775808 和 +9223372036854775807 之間的偽隨機整數。 |
7 |
SQLite ABS 函數 SQLite ABS 函數返回數值參數的絕對值。 |
8 |
SQLite UPPER 函數 SQLite UPPER 函數把字串轉換為大寫字母。 |
9 |
SQLite LOWER 函數 SQLite LOWER 函數把字串轉換為小寫字母。 |
10 |
SQLite LENGTH 函數 SQLite LENGTH 函數返回字串的長度。 |
sqlite 初