欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫(kù) SQLite

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫(kù) SQLite

http://yzkb.51969.com/

SQLite語(yǔ)法

大小寫敏感性

有個(gè)重要的點(diǎn)值得注意,SQLite 是不區(qū)分大小寫的,但也有一些命令是大小寫敏感的,比如?GLOB?和?glob?在 SQLite 的語(yǔ)句中有不同的含義

注釋

SQL 注釋以兩個(gè)連續(xù)的 "-" 字符(ASCII 0x2d)開(kāi)始,并擴(kuò)展至下一個(gè)換行符(ASCII 0x0a)或直到輸入結(jié)束,以先到者為準(zhǔn)。

您也可以使用 C 風(fēng)格的注釋,以 "/*" 開(kāi)始,并擴(kuò)展至下一個(gè) "*/" 字符對(duì)或直到輸入結(jié)束,以先到者為準(zhǔn)。SQLite的注釋可以跨越多行。

sqlite>.help -- 這是一個(gè)簡(jiǎn)單的注釋

SQLite數(shù)據(jù)類型

SQLite 存儲(chǔ)類

存儲(chǔ)類描述NULL值是一個(gè) NULL 值。INTEGER值是一個(gè)帶符號(hào)的整數(shù),根據(jù)值的大小存儲(chǔ)在 1、2、3、4、6 或 8 字節(jié)中。REAL值是一個(gè)浮點(diǎn)值,存儲(chǔ)為 8 字節(jié)的 IEEE 浮點(diǎn)數(shù)字。TEXT值是一個(gè)文本字符串,使用數(shù)據(jù)庫(kù)編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲(chǔ)。BLOB值是一個(gè) blob 數(shù)據(jù),完全根據(jù)它的輸入存儲(chǔ)。

SQLite 親和(Affinity)類型

親和類型描述TEXT數(shù)值型數(shù)據(jù)在被插入之前,需要先被轉(zhuǎn)換為文本格式,之后再插入到目標(biāo)字段中。NUMERIC當(dāng)文本數(shù)據(jù)被插入到親緣性為NUMERIC的字段中時(shí),如果轉(zhuǎn)換操作不會(huì)導(dǎo)致數(shù)據(jù)信息丟失以及完全可逆,那么SQLite就會(huì)將該文本數(shù)據(jù)轉(zhuǎn)換為INTEGER或REAL類型的數(shù)據(jù),如果轉(zhuǎn)換失敗,SQLite仍會(huì)以TEXT方式存儲(chǔ)該數(shù)據(jù)。對(duì)于NULL或BLOB類型的新數(shù)據(jù),SQLite將不做任何轉(zhuǎn)換,直接以NULL或BLOB的方式存儲(chǔ)該數(shù)據(jù)。需要額外說(shuō)明的是,對(duì)于浮點(diǎn)格式的常量文本,如"30000.0",如果該值可以轉(zhuǎn)換為INTEGER同時(shí)又不會(huì)丟失數(shù)值信息,那么SQLite就會(huì)將其轉(zhuǎn)換為INTEGER的存儲(chǔ)方式。INTEGER對(duì)于親緣類型為INTEGER的字段,其規(guī)則等同于NUMERIC,唯一差別是在執(zhí)行CAST表達(dá)式時(shí)。REAL其規(guī)則基本等同于NUMERIC,唯一的差別是不會(huì)將"30000.0"這樣的文本數(shù)據(jù)轉(zhuǎn)換為INTEGER存儲(chǔ)方式。NONE不做任何的轉(zhuǎn)換,直接以該數(shù)據(jù)所屬的數(shù)據(jù)類型進(jìn)行存儲(chǔ)?! ?/p>

Date 與 Time 數(shù)據(jù)類型

SQLite 沒(méi)有一個(gè)單獨(dú)的用于存儲(chǔ)日期和/或時(shí)間的存儲(chǔ)類,但 SQLite 能夠把日期和時(shí)間存儲(chǔ)為 TEXT、REAL 或 INTEGER 值。

存儲(chǔ)類日期格式TEXT格式為 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。REAL從公元前 4714 年 11 月 24 日格林尼治時(shí)間的正午開(kāi)始算起的天數(shù)。INTEGER從 1970-01-01 00:00:00 UTC 算起的秒數(shù)。

SQLite?創(chuàng)建表

?語(yǔ)法

CREATE TABLE database_name.table_name(

column1 datatype PRIMARY KEY(one or more columns),

column2 datatype,

column3 datatype,

.....

columnN datatype,

);

CREATE TABLE 是告訴數(shù)據(jù)庫(kù)系統(tǒng)創(chuàng)建一個(gè)新表的關(guān)鍵字。CREATE TABLE 語(yǔ)句后跟著表的唯一的名稱或標(biāo)識(shí)。您也可以選擇指定帶有?table_name?的?database_name。

實(shí)例

sqlite> CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

讓我們?cè)賱?chuàng)建一個(gè)表,我們將在隨后章節(jié)的練習(xí)中使用:

sqlite> CREATE TABLE DEPARTMENT(

ID INT PRIMARY KEY NOT NULL,

DEPT CHAR(50) NOT NULL,

EMP_ID INT NOT NULL

);

您可以使用 SQLIte 命令中的?.tables?命令來(lái)驗(yàn)證表是否已成功創(chuàng)建,該命令用于列出附加數(shù)據(jù)庫(kù)中的所有表。

sqlite>.tables

COMPANY DEPARTMENT

在這里,可以看到我們剛創(chuàng)建的兩張表 COMPANY、 DEPARTMENT。

您可以使用 SQLite?.schema?命令得到表的完整信息,如下所示:

sqlite>.schema COMPANY

CREATE TABLE COMPANY(

ID INT PRIMARY KEY NOT NULL,

NAME TEXT NOT NULL,

AGE INT NOT NULL,

ADDRESS CHAR(50),

SALARY REAL

);

SQLite?刪除表

語(yǔ)法

DROP TABLE 語(yǔ)句的基本語(yǔ)法如下。您可以選擇指定帶有表名的數(shù)據(jù)庫(kù)名稱,如下所示:

DROP TABLE database_name.table_name;

實(shí)例

讓我們先確認(rèn) COMPANY 表已經(jīng)存在,然后我們將其從數(shù)據(jù)庫(kù)中刪除。

sqlite>.tables

COMPANY test.COMPANY

這意味著 COMPANY 表已存在數(shù)據(jù)庫(kù)中,接下來(lái)讓我們把它從數(shù)據(jù)庫(kù)中刪除,如下:

sqlite>DROP TABLE COMPANY;

sqlite>

現(xiàn)在,如果嘗試 .TABLES 命令,那么將無(wú)法找到 COMPANY 表了:

sqlite>.tables

sqlite>

SQLite Insert

語(yǔ)法

INSERT INTO 語(yǔ)句有兩種基本語(yǔ)法,如下所示:

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]

VALUES (value1, value2, value3,...valueN);

在這里,column1, column2,...columnN 是要插入數(shù)據(jù)的表中的列的名稱。

如果要為表中的所有列添加值,您也可以不需要在 SQLite 查詢中指定列名稱。但要確保值的順序與列在表中的順序一致。SQLite 的 INSERT INTO 語(yǔ)法如下:

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

實(shí)例

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (1, 'Paul', 32, 'California', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (5, 'David', 27, 'Texas', 85000.00 );

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)

VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 );

您也可以使用第二種語(yǔ)法在 COMPANY 表中創(chuàng)建一個(gè)記錄,如下所示:

INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );

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

SQLite Select

語(yǔ)法

SELECT column1, column2, columnN FROM table_name;

在這里,column1, column2...是表的字段,他們的值即是您要獲取的。如果您想獲取所有可用的字段,那么可以使用下面的語(yǔ)法:

SELECT * FROM table_name;

實(shí)例

前兩個(gè)命令被用來(lái)設(shè)置正確格式化的輸出。

sqlite>.header on

sqlite>.mode column

sqlite> SELECT * FROM COMPANY;

最后,將得到以下的結(jié)果:

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

如果只想獲取 COMPANY 表中指定的字段,則使用下面的查詢:

sqlite> SELECT ID, NAME, SALARY FROM COMPANY;

上面的查詢會(huì)產(chǎn)生以下結(jié)果:

ID NAME SALARY

---------- ---------- ----------

1 Paul 20000.0

2 Allen 15000.0

3 Teddy 20000.0

4 Mark 65000.0

5 David 85000.0

6 Kim 45000.0

7 James 10000.0

設(shè)置輸出列的寬度

有時(shí),由于要顯示的列的默認(rèn)寬度導(dǎo)致?.mode column,這種情況下,輸出被截?cái)?。此時(shí),您可以使用?.width num, num....?命令設(shè)置顯示列的寬度,如下所示:

sqlite>.width 10, 20, 10

sqlite>SELECT * FROM COMPANY;

上面的?.width?命令設(shè)置第一列的寬度為 10,第二列的寬度為 20,第三列的寬度為 10。因此上述 SELECT 語(yǔ)句將得到以下結(jié)果:

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

SQLite?運(yùn)算符

運(yùn)算符是一個(gè)保留字或字符,主要用于 SQLite 語(yǔ)句的 WHERE 子句中執(zhí)行操作,如比較和算術(shù)運(yùn)算。

運(yùn)算符用于指定 SQLite 語(yǔ)句中的條件,并在語(yǔ)句中連接多個(gè)條件。

算術(shù)運(yùn)算符 比較運(yùn)算符 邏輯運(yùn)算符 位運(yùn)算符

SQLite 算術(shù)運(yùn)算符

假設(shè)變量 a=10,變量 b=20,則:

運(yùn)算符描述實(shí)例+加法 - 把運(yùn)算符兩邊的值相加a + b 將得到 30-減法 - 左操作數(shù)減去右操作數(shù)a - b 將得到 -10*乘法 - 把運(yùn)算符兩邊的值相乘a * b 將得到 200/除法 - 左操作數(shù)除以右操作數(shù)b / a 將得到 2%取模 - 左操作數(shù)除以右操作數(shù)后得到的余數(shù)b % a 將得到 0

實(shí)例

sqlite> .mode line

sqlite> select 10 + 20;

10 + 20 = 30

sqlite> select 10 - 20;

10 - 20 = -10

sqlite> select 10 * 20;

10 * 20 = 200

sqlite> select 10 / 5;

10 / 5 = 2

sqlite> select 12 % 5;

12 % 5 = 2

SQLite 比較運(yùn)算符

假設(shè)變量 a=10,變量 b=20,則:

運(yùn)算符描述實(shí)例==檢查兩個(gè)操作數(shù)的值是否相等,如果相等則條件為真。(a == b) 不為真。=檢查兩個(gè)操作數(shù)的值是否相等,如果相等則條件為真。(a = b) 不為真。!=檢查兩個(gè)操作數(shù)的值是否相等,如果不相等則條件為真。(a != b) 為真。<>檢查兩個(gè)操作數(shù)的值是否相等,如果不相等則條件為真。(a <> b) 為真。>檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是則條件為真。(a > b) 不為真。<檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是則條件為真。(a < b) 為真。>=檢查左操作數(shù)的值是否大于等于右操作數(shù)的值,如果是則條件為真。(a >= b) 不為真。<=檢查左操作數(shù)的值是否小于等于右操作數(shù)的值,如果是則條件為真。(a <= b) 為真。!<檢查左操作數(shù)的值是否不小于右操作數(shù)的值,如果是則條件為真。(a !< b) 為假。!>檢查左操作數(shù)的值是否不大于右操作數(shù)的值,如果是則條件為真。(a !> b) 為真。

實(shí)例

假設(shè) COMPANY 表有以下記錄:

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

下面的 SELECT 語(yǔ)句列出了 SALARY 等于 20,000.00 的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE SALARY = 20000;

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

1 Paul 32 California 20000.0

3 Teddy 23 Norway 20000.0

下面的 SELECT 語(yǔ)句列出了 SALARY 不等于 20,000.00 的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE SALARY <> 20000;

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

2 Allen 25 Texas 15000.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

?SQLite 邏輯運(yùn)算符

運(yùn)算符描述ANDAND 運(yùn)算符允許在一個(gè) SQL 語(yǔ)句的 WHERE 子句中的多個(gè)條件的存在。BETWEENBETWEEN 運(yùn)算符用于在給定最小值和最大值范圍內(nèi)的一系列值中搜索值。EXISTSEXISTS 運(yùn)算符用于在滿足一定條件的指定表中搜索行的存在。ININ 運(yùn)算符用于把某個(gè)值與一系列指定列表的值進(jìn)行比較。NOT ININ 運(yùn)算符的對(duì)立面,用于把某個(gè)值與不在一系列指定列表的值進(jìn)行比較。LIKELIKE 運(yùn)算符用于把某個(gè)值與使用通配符運(yùn)算符的相似值進(jìn)行比較。GLOBGLOB 運(yùn)算符用于把某個(gè)值與使用通配符運(yùn)算符的相似值進(jìn)行比較。GLOB 與 LIKE 不同之處在于,它是大小寫敏感的。NOTNOT 運(yùn)算符是所用的邏輯運(yùn)算符的對(duì)立面。比如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定運(yùn)算符。OROR 運(yùn)算符用于結(jié)合一個(gè) SQL 語(yǔ)句的 WHERE 子句中的多個(gè)條件。IS NULLNULL 運(yùn)算符用于把某個(gè)值與 NULL 值進(jìn)行比較。ISIS 運(yùn)算符與 = 相似。IS NOTIS NOT 運(yùn)算符與 != 相似。||連接兩個(gè)不同的字符串,得到一個(gè)新的字符串。UNIQUEUNIQUE 運(yùn)算符搜索指定表中的每一行,確保唯一性(無(wú)重復(fù))

實(shí)例

下面的 SELECT 語(yǔ)句列出了 NAME 以 'Ki' 開(kāi)始的所有記錄,'Ki' 之后的字符不做限制:

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%'; -- 或者'Ki*'

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

6 Kim 22 South-Hall 45000.0

下面的 SELECT 語(yǔ)句列出了 AGE 的值為 25 或 27 的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

2 Allen 25 Texas 15000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

下面的 SELECT 語(yǔ)句列出了 AGE 的值在 25 與 27 之間的所有記錄:

sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

2 Allen 25 Texas 15000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

下面的 SELECT 語(yǔ)句使用 SQL 子查詢,子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 EXISTS 運(yùn)算符一起使用,列出了外查詢中的 AGE 存在于子查詢返回的結(jié)果中的所有記錄:

sqlite> SELECT AGE FROM COMPANY

WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

AGE

----------

32

25

23

25

27

22

24

SQLite 位運(yùn)算符

A = 0011 1100

B = 0000 1101

運(yùn)算符描述實(shí)例&如果同時(shí)存在于兩個(gè)操作數(shù)中,二進(jìn)制 AND 運(yùn)算符復(fù)制一位到結(jié)果中。(A & B) 將得到 12,即為 0000 1100|如果存在于任一操作數(shù)中,二進(jìn)制 OR 運(yùn)算符復(fù)制一位到結(jié)果中。(A | B) 將得到 61,即為 0011 1101~二進(jìn)制補(bǔ)碼運(yùn)算符是一元運(yùn)算符,具有"翻轉(zhuǎn)"位效應(yīng),即0變成1,1變成0。(~A ) 將得到 -61,即為 1100 0011,一個(gè)有符號(hào)二進(jìn)制數(shù)的補(bǔ)碼形式。<<二進(jìn)制左移運(yùn)算符。左操作數(shù)的值向左移動(dòng)右操作數(shù)指定的位數(shù)。A << 2 將得到 240,即為 1111 0000>>二進(jìn)制右移運(yùn)算符。左操作數(shù)的值向右移動(dòng)右操作數(shù)指定的位數(shù)。A >> 2 將得到 15,即為 0000 1111

SQLite?表達(dá)式

SQLite - 布爾表達(dá)式

語(yǔ)法如下:

SELECT column1, column2, columnN

FROM table_name

WHERE SINGLE VALUE MATCHING EXPRESSION;

實(shí)例:

sqlite> SELECT * FROM COMPANY WHERE SALARY = 10000;

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

4 James 24 Houston 10000.0

SQLite - 數(shù)值表達(dá)式

語(yǔ)法如下:

SELECT numerical_expression as OPERATION_NAME

[FROM table_name WHERE CONDITION] ;

實(shí)例:

sqlite> SELECT (15 + 6) AS ADDITION

ADDITION = 21

SQLite - 日期表達(dá)式

日期表達(dá)式返回當(dāng)前系統(tǒng)日期和時(shí)間值,這些表達(dá)式將被用于各種數(shù)據(jù)操作。

sqlite> SELECT CURRENT_TIMESTAMP;

CURRENT_TIMESTAMP = 2013-03-17 10:43:35

SQLite?Where 子句

如果滿足給定的條件,即為真(true)時(shí),則從表中返回特定的值。您可以使用 WHERE 子句來(lái)過(guò)濾記錄,只獲取需要的記錄。

WHERE 子句不僅可用在 SELECT 語(yǔ)句中,它也可用在 UPDATE、DELETE 語(yǔ)句中,等等

語(yǔ)法

SELECT column1, column2, columnN

FROM table_name

WHERE [condition]

下面的 SELECT 語(yǔ)句使用 SQL 子查詢,子查詢查找 SALARY > 65000 的帶有 AGE 字段的所有記錄,后邊的 WHERE 子句與 > 運(yùn)算符一起使用,列出了外查詢中的 AGE 大于子查詢返回的結(jié)果中的年齡的所有記錄:

sqlite> SELECT * FROM COMPANY

WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

1 Paul 32 California 20000.0

SQLite?Update 語(yǔ)句

語(yǔ)法

帶有 WHERE 子句的 UPDATE 查詢的基本語(yǔ)法如下:

UPDATE table_name

SET column1 = value1, column2 = value2...., columnN = valueN

WHERE [condition];

下面是一個(gè)實(shí)例,它會(huì)更新 ID 為 6 的客戶地址:

sqlite> UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;

現(xiàn)在,COMPANY 表有以下記錄:

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 Texas 45000.0

7 James 24 Houston 10000.0

如果您想修改 COMPANY 表中 ADDRESS 和 SALARY 列的所有值,則不需要使用 WHERE 子句,UPDATE 查詢?nèi)缦拢?/p>

sqlite> UPDATE COMPANY SET ADDRESS = 'Texas', SALARY = 20000.00;

現(xiàn)在,COMPANY 表有以下記錄:

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

1 Paul 32 Texas 20000.0

2 Allen 25 Texas 20000.0

3 Teddy 23 Texas 20000.0

4 Mark 25 Texas 20000.0

5 David 27 Texas 20000.0

6 Kim 22 Texas 20000.0

7 James 24 Texas 20000.0

SQLite?Delete 語(yǔ)句

可以使用帶有 WHERE 子句的 DELETE 查詢來(lái)刪除選定行,否則所有的記錄都會(huì)被刪除。

語(yǔ)法

DELETE FROM table_name

WHERE [condition];

?SQLite?Like 子句

Like?運(yùn)算符是用來(lái)匹配通配符指定模式的文本值。如果搜索表達(dá)式與模式表達(dá)式匹配,Like 運(yùn)算符將返回真(true),也就是 1。這里有兩個(gè)通配符與 Like 運(yùn)算符一起使用:

百分號(hào) (%) 下劃線 (_)

百分號(hào)(%)代表零個(gè)、一個(gè)或多個(gè)數(shù)字或字符。下劃線(_)代表一個(gè)單一的數(shù)字或字符。這些符號(hào)可以被組合使用。

語(yǔ)句描述WHERE SALARY LIKE '200%'查找以 200 開(kāi)頭的任意值WHERE SALARY LIKE '%200%'查找任意位置包含 200 的任意值WHERE SALARY LIKE '_00%'查找第二位和第三位為 00 的任意值WHERE SALARY LIKE '2_%_%'查找以 2 開(kāi)頭,且長(zhǎng)度至少為 3 個(gè)字符的任意值WHERE SALARY LIKE '%2'查找以 2 結(jié)尾的任意值WHERE SALARY LIKE '_2%3'查找第二位為 2,且以 3 結(jié)尾的任意值WHERE SALARY LIKE '2___3'查找長(zhǎng)度為 5 位數(shù),且以 2 開(kāi)頭以 3 結(jié)尾的任意值

SQLite?Glob 子句

與 LIKE 運(yùn)算符不同的是,GLOB 是大小寫敏感的,對(duì)于下面的通配符,它遵循 UNIX 的語(yǔ)法。

*:匹配零個(gè)、一個(gè)或多個(gè)數(shù)字或字符。?:代表一個(gè)單一的數(shù)字或字符。[...]:匹配方括號(hào)內(nèi)指定的字符之一。例如,[abc]?匹配 "a"、"b" 或 "c" 中的任何一個(gè)字符。[^...]:匹配不在方括號(hào)內(nèi)指定的字符之一。例如,[^abc]?匹配不是 "a"、"b" 或 "c" 中的任何一個(gè)字符的字符。

以上這些符號(hào)可以被組合使用。

語(yǔ)句描述WHERE SALARY GLOB '200*'查找以 200 開(kāi)頭的任意值WHERE SALARY GLOB '*200*'查找任意位置包含 200 的任意值WHERE SALARY GLOB '?00*'查找第二位和第三位為 00 的任意值WHERE SALARY GLOB '2??'查找以 2 開(kāi)頭,且長(zhǎng)度為 3 個(gè)字符的任意值,例如,它可能匹配 "200"、"2A1"、"2B2" 等值。WHERE SALARY GLOB '*2'查找以 2 結(jié)尾的任意值WHERE SALARY GLOB '?2*3'查找第二位為 2,且以 3 結(jié)尾的任意值WHERE SALARY GLOB '2???3'查找長(zhǎng)度為 5 位數(shù),且以 2 開(kāi)頭以 3 結(jié)尾的任意值

SQLite?Limit 子句

語(yǔ)法

帶有 LIMIT 子句的 SELECT 語(yǔ)句的基本語(yǔ)法如下:

SELECT column1, column2, columnN

FROM table_name

LIMIT [no of rows]

下面是 LIMIT 子句與 OFFSET 子句一起使用時(shí)的語(yǔ)法:

SELECT column1, column2, columnN

FROM table_name

LIMIT [no of rows] OFFSET [row num]

SQLite 引擎將返回從下一行開(kāi)始直到給定的 OFFSET 為止的所有行

在某些情況下,可能需要從一個(gè)特定的偏移開(kāi)始提取記錄。下面是一個(gè)實(shí)例,從第三位開(kāi)始提取 3 個(gè)記錄:

sqlite> SELECT * FROM COMPANY LIMIT 3 OFFSET 2;

這將產(chǎn)生以下結(jié)果:

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

3 Teddy 23 Norway 20000.0

4 Mark 25 Rich-Mond 65000.0

5 David 27 Texas 85000.0

SQLite?Order By

語(yǔ)法

SELECT column-list

FROM table_name

[WHERE condition]

[ORDER BY column1, column2, .. columnN] [ASC | DESC];

ASC?默認(rèn)值,從小到大,升序排列DESC?從大到小,降序排列

您可以在 ORDER BY 子句中使用多個(gè)列,確保您使用的排序列在列清單中:

SELECT

select_list

FROM

table

ORDER BY

column_1 ASC,

column_2 DESC;

column_1 與 column_2 如果后面不指定排序規(guī)則,默認(rèn)為 ASC 升序,以上語(yǔ)句按 column_1 升序,column_2 降序讀取,等價(jià)如下語(yǔ)句:

SELECT

select_list

FROM

table

ORDER BY

column_1,

column_2 DESC;

SQLite?Group By

用于與 SELECT 語(yǔ)句一起使用,來(lái)對(duì)相同的數(shù)據(jù)進(jìn)行分組。

在 SELECT 語(yǔ)句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。

語(yǔ)法

SELECT column-list

FROM table_name

WHERE [ conditions ]

GROUP BY column1, column2....columnN

ORDER BY column1, column2....columnN

實(shí)例

我們的表具有重復(fù)名稱的記錄,如下所示:

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

8 Paul 24 Houston 20000.0

9 James 44 Norway 5000.0

10 James 45 Texas 5000.0

讓我們用同樣的 GROUP BY 語(yǔ)句來(lái)對(duì)所有記錄按 NAME 列進(jìn)行分組,如下所示:

sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME;

這將產(chǎn)生以下結(jié)果:

NAME SUM(SALARY)

---------- -----------

Allen 15000

David 85000

James 20000

Kim 45000

Mark 65000

Paul 40000

Teddy 20000

讓我們把 ORDER BY 子句與 GROUP BY 子句一起使用,如下所示:

sqlite> SELECT NAME, SUM(SALARY)

FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;

這將產(chǎn)生以下結(jié)果:

NAME SUM(SALARY)

---------- -----------

Teddy 20000

Paul 40000

Mark 65000

Kim 45000

James 20000

David 85000

Allen 15000

SQLite?Having 子句?

WHERE 子句在所選列上設(shè)置條件,而 HAVING 子句則在由 GROUP BY 子句創(chuàng)建的分組上設(shè)置條件。

SELECT column1, column2

FROM table1, table2

WHERE [ conditions ]

GROUP BY column1, column2

HAVING [ conditions ]

ORDER BY column1, column2

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

8 Paul 24 Houston 20000.0

9 James 44 Norway 5000.0

10 James 45 Texas 5000.0

下面是一個(gè)實(shí)例,它將顯示名稱計(jì)數(shù)小于 2 的所有記錄:

sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2;

這將產(chǎn)生以下結(jié)果:

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

2 Allen 25 Texas 15000

5 David 27 Texas 85000

6 Kim 22 South-Hall 45000

4 Mark 25 Rich-Mond 65000

3 Teddy 23 Norway 20000

下面是一個(gè)實(shí)例,它將顯示名稱計(jì)數(shù)大于 2 的所有記錄:

sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2;

這將產(chǎn)生以下結(jié)果:

ID NAME AGE ADDRESS SALARY

---------- ---------- ---------- ---------- ----------

10 James 45 Texas 5000

SQLite?Distinct 關(guān)鍵字

與 SELECT 語(yǔ)句一起使用,來(lái)消除所有重復(fù)的記錄,并只獲取唯一一次記錄。

有可能出現(xiàn)一種情況,在一個(gè)表中有多個(gè)重復(fù)的記錄。當(dāng)提取這樣的記錄時(shí),DISTINCT 關(guān)鍵字就顯得特別有意義,它只獲取唯一一次記錄,而不是獲取重復(fù)記錄

SELECT DISTINCT column1, column2,.....columnN

FROM table_name

WHERE [condition]

?實(shí)例:

sqlite> SELECT name FROM COMPANY;

這將產(chǎn)生以下結(jié)果:

NAME

----------

Paul

Allen

Teddy

Mark

David

Kim

James

Paul

James

James

現(xiàn)在,讓我們?cè)谏鲜龅?SELECT 查詢中使用?DISTINCT?關(guān)鍵字:

sqlite> SELECT DISTINCT name FROM COMPANY;

這將產(chǎn)生以下結(jié)果,沒(méi)有任何重復(fù)的條目:

NAME

----------

Paul

Allen

Teddy

Mark

David

Kim

James

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫(kù) SQLite

http://yzkb.51969.com/

參考閱讀

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19185468.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄