第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

SQL Between & In

1. 定義

慕課解釋:BetweenIn操作符一般與 Where 搭配,用于操作某個(gè)范圍內(nèi)的數(shù)據(jù)。

2. 前言

本小節(jié)中,我們將一起學(xué)習(xí) SQL Between和 SQL In的基本使用。

前面的小節(jié)中,我們學(xué)習(xí)了諸多運(yùn)算符的使用,如 = 和 Like ,這些運(yùn)算符都只能作用于單個(gè)條件值。有時(shí)候,數(shù)據(jù)篩選的條件是一個(gè)范圍,如找出年齡在18~24之間的用戶,為了更加方便地解決這些問題,SQL 提供了 Between 和 In 兩個(gè)關(guān)鍵字。

提示: Between 和 In 不僅可以用在 int 等數(shù)值類型上,還可以用于字符和日期類型。

本小節(jié)測(cè)試數(shù)據(jù)如下,請(qǐng)先在數(shù)據(jù)庫中執(zhí)行:

DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
  username varchar(20),
  age int
);
INSERT INTO imooc_user(username,age) VALUES('pedro', 23), ('peter', 18), ('faker', 20), ('lucy', 29);

3. SQL Between

Between 必須與 And 一起使用,表示在某某與某某之間,常與 Where 搭配,用于查找某個(gè)范圍內(nèi)的數(shù)據(jù)。

SQL Between 的使用語法如下:

SELECT [col] FROM [table_name] WHERE [col] BETWEEN [val1] AND [val2];

其中table_name代表數(shù)據(jù)表名稱,col代表字段名稱,val表示條件值,數(shù)字 1、2 表示多字條件值。

3.1 例1、單獨(dú)使用 Between

Between 常用于查找某個(gè)范圍內(nèi)的數(shù)據(jù)記錄。

請(qǐng)書寫 SQL 語句,找出imooc_user表中年齡在 18~24 之間的用戶。

分析:

分析題干可知年齡是條件字段,而條件值是一個(gè)范圍,即18~24,符合 Between 和 And 的使用。

語句:

整理可得語句如下:

SELECT username, age FROM imooc_user WHERE age BETWEEN 18 AND 24;

查詢結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 23  |
| peter    | 18  |
| faker    | 20  |
+----------+-----+

3.2 例2、Between 與 Not 搭配使用

Between 可以很好的處理范圍操作,還可以與 Not 搭配表示不在某個(gè)范圍內(nèi)的記錄。

請(qǐng)書寫 SQL 語句,找出imooc_user表中年齡不在 18~24 之間的用戶。

分析:

與例1剛好相反,在符合 Between 和 And 的前提下,增加NOT修飾即可。

語句:

整理可得語句如下:

SELECT username, age FROM imooc_user WHERE age NOT BETWEEN 18 AND 24;

查詢結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| lucy     | 29  |
+----------+-----+

提示: Between 不僅可以和 Select 搭配使用,還可以搭配 Update 與 Delete。

3.3 例3、Between 與 Delete 搭配使用

Between 也可與 Delete 搭配用于刪除某個(gè)范圍內(nèi)的記錄。

請(qǐng)書寫 SQL 語句,刪除imooc_user表中年齡在18~24之間的用戶。

分析:

幾乎與例1一致,只需將 Select 改為 Delete 即可。

語句:

DELETE FROM imooc_user WHERE age BETWEEN 18 AND 24;

刪除成功后,imooc_user 表中的數(shù)據(jù)如下:

+----------+-----+
| username | age |
+----------+-----+
| lucy     | 29  |
+----------+-----+

4. SQL In

In 與 Between 都可以用于范圍操作,與 Between 不同的是,In 表示某某之中,且必須顯示的羅列出所有的值。

SQL In 的語法如下:

SELECT [col] FROM [table_name] WHERE [col] IN (val...);

4.1 例4、連續(xù)范圍內(nèi)使用 In

In 常用于查找某個(gè)范圍內(nèi)的數(shù)據(jù)記錄,但這個(gè)范圍中的值都必須在()中羅列出來。

請(qǐng)書寫 SQL 語句,找出imooc_user表中年齡在 18~24 之間的用戶。

分析:

分析題干可知年齡是條件字段,而條件值是一個(gè)范圍,即 18~24,可以用 In 表示該范圍。

語句:

整理可得語句如下:

SELECT username, age FROM imooc_user WHERE age IN (18,19,20,21,22,23,24);

查詢結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 23  |
| peter    | 18  |
| faker    | 20  |
+----------+-----+

4.2 例5、非連續(xù)范圍內(nèi)使用 In

In 不僅可以查找連續(xù)范圍內(nèi)的記錄,也可查找非連續(xù)范圍內(nèi)的記錄。

請(qǐng)書寫 SQL 語句,找出imooc_user表中年齡是 18 或 23 的用戶。

分析:

與例4幾乎一致,不過括號(hào)內(nèi)的范圍值從連續(xù)范圍變成了(18,23)。

語句:

整理可得語句如下:

SELECT username, age FROM imooc_user WHERE age IN (18,23);

查詢結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| pedro    | 23  |
| peter    | 18  |
+----------+-----+

4.3 例6、In 搭配 Not 使用

In 還可以搭配 Not 使用,查找不在范圍內(nèi)的數(shù)據(jù)記錄。

請(qǐng)書寫 SQL語句,找出imooc_user表中年齡不是 18 或 23 的用戶。

分析:

與例5恰好相反,只需在 In 前加上 Not 即可。

語句:

整理可得語句如下:

SELECT username, age FROM imooc_user WHERE age NOT IN (18,23);

查詢結(jié)果如下:

+----------+-----+
| username | age |
+----------+-----+
| faker    | 20  |
| lucy     | 29  |
+----------+-----+

提示: In 也可與 Update、Delete 一起搭配使用,與 Between 相比,In 更加靈活,使用也更為廣泛。

5. 個(gè)人經(jīng)驗(yàn)

  • 如果范圍條件是連續(xù)的,優(yōu)先考慮使用 Between,不僅語句更為簡(jiǎn)潔,而且性能更加優(yōu)異。
  • Between 只可用于連續(xù)范圍的操作,而 In 還支持非連續(xù)范圍的操作。
  • 當(dāng) Delete 和 Update 使用范圍操作是較危險(xiǎn)的,容易引起批量數(shù)據(jù)更新和刪除,在使用前,請(qǐng)仔細(xì)斟酌。