欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL使用WHERE條件語句的項(xiàng)目實(shí)踐

 更新時(shí)間:2023年09月06日 10:42:47   作者:CHQIUU  
本文將介紹WHERE子句中使用的通用語法,它還將概述如何在單個(gè)WHERE子句中組合多個(gè)搜索條件謂詞以更細(xì)粒度的方式過濾數(shù)據(jù),以及如何使用NOT操作符排除而不是包含滿足給定搜索條件的行,感興趣的可以了解一下

引言

結(jié)構(gòu)化查詢語言 (SQL)語句中,WHERE子句限制了給定操作會(huì)影響哪些行。它們通過定義特定的條件(稱為搜索條件)來實(shí)現(xiàn)這一點(diǎn),每一行都必須滿足這些條件才能受到操作的影響。

本指南將介紹WHERE子句中使用的通用語法。它還將概述如何在單個(gè)WHERE子句中組合多個(gè)搜索條件謂詞以更細(xì)粒度的方式過濾數(shù)據(jù),以及如何使用NOT操作符排除而不是包含滿足給定搜索條件的行。

雖然本指南在示例中只使用SELECT語句,但這里解釋的概念可以用于許多SQL操作。事實(shí)上,WHERE子句是UPDATEDELETE操作的關(guān)鍵組成部分。

前期準(zhǔn)備

為了學(xué)習(xí)本指南,你需要一臺(tái)運(yùn)行某種使用SQL的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的計(jì)算機(jī)。

注意:請(qǐng)注意,許多RDBMS使用它們自己獨(dú)特的SQL實(shí)現(xiàn)。雖然本教程中概述的命令適用于大多數(shù)RDBMS,但如果你在MySQL以外的系統(tǒng)上測試它們,確切的語法或輸出可能會(huì)有所不同。

你還需要一個(gè)裝載了一些示例數(shù)據(jù)的數(shù)據(jù)庫和表,可以在其中練習(xí)使用相關(guān)命令。

連接到MySQL并設(shè)置一個(gè)示例數(shù)據(jù)庫

如果SQL數(shù)據(jù)庫系統(tǒng)運(yùn)行在遠(yuǎn)程服務(wù)器上,請(qǐng)從本地設(shè)備SSH到服務(wù)器:

ssh sammy@your_server_ip

然后打開MySQL服務(wù)器提示符,將==sammy==替換為你的MySQL用戶賬戶的名稱:

mysql -u sammy -p

創(chuàng)建一個(gè)名為where_db的數(shù)據(jù)庫:

CREATE DATABASE where_db;

如果數(shù)據(jù)庫成功創(chuàng)建,您將收到這樣的輸出:

OutputQuery OK, 1 row affected (0.01 sec)

要選擇where_db數(shù)據(jù)庫,運(yùn)行以下USE語句:

USE where_db;
OutputDatabase changed

選擇where_db后,在其中創(chuàng)建一個(gè)表。

為了理解本指南中使用的示例,假設(shè)您在當(dāng)?shù)氐母郀柗蚯驁鼋?jīng)營高爾夫聯(lián)賽。你決定跟蹤聯(lián)盟球員參加郊游時(shí)的個(gè)人表現(xiàn)信息。為此,您決定將信息存儲(chǔ)在SQL數(shù)據(jù)庫中。

你決定這個(gè)表需要6列:

  • name:每個(gè)高爾夫球手的名字,使用varchar數(shù)據(jù)類型表示,不超過20個(gè)字符
  • rounds_played:每個(gè)高爾夫球手打完的總回合數(shù),用int數(shù)據(jù)類型表示
  • best:每位高爾夫球手在單次比賽中的最佳或最低得分,也用int表示。
  • worst:每位高爾夫球手在單次比賽中的最差或最高得分,同樣用int表示
  • average:每個(gè)高爾夫球手在他們打過的幾輪中得分的近似平均值。這一列將保存decimal類型的值,限制為最多4位,其中一位在小數(shù)點(diǎn)的右側(cè)
  • wins:每個(gè)高爾夫球手在比賽小組中得分最低的輪數(shù),用int類型表示

運(yùn)行下面的CREATE TABLE語句來創(chuàng)建一個(gè)名為golfers的表,它包含以下6列:

CREATE TABLE golfers (
name varchar(20),
rounds_played int,
best int,
worst int,
average decimal (4,1),
wins int
);

然后加載包含一些示例數(shù)據(jù)的golfers表。運(yùn)行下面的INSERT INTO操作來添加代表7名聯(lián)賽高爾夫球手的7行數(shù)據(jù):

INSERT INTO golfers
VALUES
('George', 22, 68, 103, 84.6, 3),
('Pat', 25, 65, 74, 68.7, 9),
('Grady', 11, 78, 118, 97.6, 0),
('Diane', 23, 70, 92, 78.8, 1),
('Calvin', NULL, 63, 76, 68.5, 7),
('Rose', NULL, 69, 84, 76.7, 4),
('Raymond', 18, 67, 92, 81.3, 1);

請(qǐng)注意,其中兩行rounds_played的值是NULL。出于本教程的目的,假設(shè)這些高爾夫球手沒有報(bào)告他們打了多少輪,因此這些值被記錄為NULL。

你可能還注意到,每個(gè)高爾夫球手的best值小于他們的worst值。這是因?yàn)?,在常見的高爾夫?guī)則中,高爾夫球手的得分是由他們將球打入球場每個(gè)洞所需的擊球次數(shù)決定的,總擊球次數(shù)最少的人就是獲勝者。因此,與大多數(shù)其他運(yùn)動(dòng)不同,高爾夫球手的最佳分?jǐn)?shù)會(huì)比最差分?jǐn)?shù)。

有了這些,你就可以開始學(xué)習(xí)如何在SQL中使用WHERE子句了。

使用WHERE子句過濾數(shù)據(jù)

在SQL中,語句是任何發(fā)送到數(shù)據(jù)庫系統(tǒng)的操作,它將執(zhí)行某種任務(wù),如創(chuàng)建表,插入或刪除數(shù)據(jù),或更改列或表的結(jié)構(gòu)。SQL語句是由各種子句,由特定的關(guān)鍵字和他們需要的信息。

正如引言中提到的,WHERE子句允許你過濾掉受SQL操作影響的某些行數(shù)據(jù)。在查詢中,WHERE之后跟上查詢條件,如以下示例:

SELECT columns_to_query
FROM table_to_query
WHERE search_condition;

WHERE關(guān)鍵字后面是一個(gè)搜索條件。一個(gè)搜索條件是由一個(gè)或多個(gè)謂詞或表達(dá)式組成的集合,這些謂詞或表達(dá)式可以計(jì)算一個(gè)或多個(gè)值表達(dá)式并返回“true”、“false”或“unknown”的結(jié)果。注意,在搜索條件只包含一個(gè)謂詞的情況下,術(shù)語“搜索條件”和“謂詞”是同義詞。

WHERE子句搜索條件中的謂詞可以有多種形式,但它們通常遵循以下語法:

. . .
WHERE column_name OPERATOR value_expression
. . .

在SQL中,值表達(dá)式——有時(shí)也稱為標(biāo)量表達(dá)式——是任何返回單個(gè)值的表達(dá)式。值表達(dá)式可以是字面量,比如字符串或數(shù)值,也可以是數(shù)學(xué)表達(dá)式。不過,大多數(shù)情況下,在WHERE子句的搜索條件中,至少有一個(gè)值表達(dá)式是列名。

當(dāng)運(yùn)行包含WHERE子句的SQL查詢時(shí),數(shù)據(jù)庫管理系統(tǒng)將對(duì)FROM子句定義的邏輯表中的每一行應(yīng)用搜索條件。然后,它將只返回所有謂詞在搜索條件中求值為“true”的行。

為了說明這個(gè)想法,運(yùn)行下面的查詢。這將返回golfers表的name列中的所有值:

SELECT name
FROM golfers
WHERE (2 + 2) = 4;

這個(gè)查詢包含一個(gè)WHERE子句,但它沒有指定列名,而是使用(2 + 2)作為第一個(gè)值表達(dá)式,并測試它是否等于第二個(gè)值表達(dá)式4。因?yàn)?code>(2 + 2) 總是等于4,所以對(duì)于每一行,這個(gè)搜索條件都計(jì)算為true。因此,結(jié)果集中的每一行都會(huì)被返回:

Output+---------+
| name    |
+---------+
| George  |
| Pat     |
| Grady   |
| Diane   |
| Calvin  |
| Rose    |
| Raymond |
+---------+
7 rows in set (0.01 sec)

這個(gè)WHERE子句不是很有用,因?yàn)樗偸乔笾禐?ldquo;true”并總是返回表中的每一行。如前所述,在WHERE子句搜索條件中,通常至少使用一個(gè)列名作為值表達(dá)式。當(dāng)運(yùn)行查詢時(shí),數(shù)據(jù)庫系統(tǒng)將依次對(duì)每一行應(yīng)用搜索條件。通過在搜索條件中提供列名作為值表達(dá)式,你告訴DBMS使用該列中每行的值作為迭代搜索條件時(shí)的值表達(dá)式。

以下查詢的WHERE子句對(duì)每一行應(yīng)用了比前一個(gè)示例更排他的搜索條件。它將返回任何wins列值等于1的行中的namewins值:

SELECT name, wins
FROM golfers
WHERE wins = 1;

只有兩名高爾夫球手剛好贏了一輪,因此這個(gè)查詢只返回這兩行:

Output+---------+------+
| name    | wins |
+---------+------+
| Diane   |    1 |
| Raymond |    1 |
+---------+------+
2 rows in set (0.01 sec)

前面的例子使用等號(hào)(=)測試是否兩個(gè)值表達(dá)式是等價(jià)的,但您使用的運(yùn)營商取決于您想要使用什么類型的謂詞過濾結(jié)果集。

SQL標(biāo)準(zhǔn)定義了18種類型的謂詞,盡管并不是所有的SQL實(shí)現(xiàn)都包含這些謂詞。下面是5種最常用的謂詞類型,以及對(duì)每種類型及其使用的操作符的簡要說明。

比較

比較謂詞使用比較運(yùn)算符比較一個(gè)值(在查詢,通常值在一個(gè)指定的列)。這6個(gè)比較運(yùn)算符是:

  • =:測試兩個(gè)值是否相等
SELECT name
FROM golfers
WHERE name = 'George';
Output+--------+
| name   |
+--------+
| George |
+--------+
1 row in set (0.00 sec)
  • <>:測試兩個(gè)值是否相等
SELECT name, wins
FROM golfers
WHERE wins <> 1;
Output+--------+------+
| name   | wins |
+--------+------+
| George |    3 |
| Pat    |    9 |
| Grady  |    0 |
| Calvin |    7 |
| Rose   |    4 |
+--------+------+
5 rows in set (0.00 sec)
  • <:測試第一個(gè)值是否小于第二個(gè)值
SELECT name, wins
FROM golfers
WHERE wins < 1;
Output+-------+------+
| name  | wins |
+-------+------+
| Grady |    0 |
+-------+------+
1 row in set (0.00 sec)
  • >:測試第一個(gè)值是否大于第二個(gè)值
SELECT name, wins
FROM golfers
WHERE wins > 1;
Output+--------+------+
| name   | wins |
+--------+------+
| George |    3 |
| Pat    |    9 |
| Calvin |    7 |
| Rose   |    4 |
+--------+------+
4 rows in set (0.00 sec)
  • <=:測試第一個(gè)值是否小于或等于第二個(gè)
SELECT name, wins
FROM golfers
WHERE wins <= 1;
Output+---------+------+
| name    | wins |
+---------+------+
| Grady   |    0 |
| Diane   |    1 |
| Raymond |    1 |
+---------+------+
3 rows in set (0.00 sec)
  • >=:測試第一個(gè)值是否大于或等于第二個(gè)值
SELECT name, wins
FROM golfers
WHERE wins >= 1;
Output+---------+------+
| name    | wins |
+---------+------+
| George  |    3 |
| Pat     |    9 |
| Diane   |    1 |
| Calvin  |    7 |
| Rose    |    4 |
| Raymond |    1 |
+---------+------+
6 rows in set (0.00 sec)

Null(IS NULL

使用IS NULL操作符的謂詞測試給定列中的值是否為NULL。如果是,則謂詞的計(jì)算結(jié)果為“true”,結(jié)果集中就包含了這一行:

SELECT name, rounds_played
FROM golfers
WHERE rounds_played IS NULL;
Output+--------+---------------+
| name   | rounds_played |
+--------+---------------+
| Calvin |          NULL |
| Rose   |          NULL |
+--------+---------------+
2 rows in set (0.00 sec)

區(qū)間(BETWEEN

范圍謂詞使用BETWEEN操作符來測試指定的列值是否落在兩個(gè)值表達(dá)式之間:

SELECT name, best
FROM golfers
WHERE best BETWEEN 67 AND 73;
Output+---------+------+
| name    | best |
+---------+------+
| George  |   68 |
| Diane   |   70 |
| Rose    |   69 |
| Raymond |   67 |
+---------+------+
4 rows in set (0.00 sec)

包含(IN

成員謂詞使用IN操作符來測試一個(gè)值是否是給定集合的成員:

SELECT name, best
FROM golfers
WHERE best IN (65, 67, 69, 71);
Output+---------+------+
| name    | best |
+---------+------+
| Pat     |   65 |
| Rose    |   69 |
| Raymond |   67 |
+---------+------+
3 rows in set (0.00 sec)

通配符(%_

模式匹配謂詞使用LIKE操作符來測試一個(gè)值是否匹配包含一個(gè)或多個(gè)通配符的字符串模式,也稱為通配符。SQL定義了兩個(gè)通配符,%_:

  • _: 下劃線表示單個(gè)未知字符
SELECT name, rounds_played
FROM golfers
WHERE rounds_played LIKE '2_';
Output+--------+---------------+
| name   | rounds_played |
+--------+---------------+
| George |            22 |
| Pat    |            25 |
| Diane  |            23 |
+--------+---------------+
3 rows in set (0.00 sec)
  • %: 百分比符號(hào)表示零個(gè)或多個(gè)未知字符
SELECT name, rounds_played
FROM golfers
WHERE name LIKE 'G%';
Output+--------+---------------+
| name   | rounds_played |
+--------+---------------+
| George |            22 |
| Grady  |            11 |
+--------+---------------+
2 rows in set (0.00 sec)

用AND和OR組合多個(gè)查詢條件

有時(shí)候,你需要比使用單個(gè)搜索條件謂詞的WHERE子句提供的更細(xì)粒度的過濾結(jié)果。另一方面,也可能有滿足多個(gè)搜索條件之一的行在結(jié)果集中是可接受的。在這種情況下,你可以編寫包含多個(gè)謂詞的WHERE子句,分別使用ANDOR操作符。

要開始使用這些操作符,請(qǐng)運(yùn)行以下查詢,它從golfers表的namebest、worstaverage列中返回值。它的WHERE子句包含兩個(gè)查詢條件,由AND分隔:

SELECT name, best, worst, average
FROM golfers
WHERE best < 70 AND worst < 96;

第一個(gè)謂詞測試每一行的best值是否小于70,而第二個(gè)測試每一行的worst價(jià)值是否小于96。如果任何一個(gè)測試的結(jié)果為“false”,則該行不會(huì)返回到結(jié)果集中:

Output+---------+------+-------+---------+
| name    | best | worst | average |
+---------+------+-------+---------+
| Pat     |   65 |    74 |    68.7 |
| Calvin  |   63 |    76 |    68.5 |
| Rose    |   69 |    84 |    76.7 |
| Raymond |   67 |    92 |    81.3 |
+---------+------+-------+---------+
4 rows in set (0.00 sec)

接下來,運(yùn)行以下查詢。這與前面的例子相同,只是它用OR操作符而不是AND來分隔兩個(gè)謂詞:

SELECT name, best, worst, average
FROM golfers
WHERE best < 70 OR worst < 96;

因?yàn)橹挥幸粋€(gè)謂詞的求值為“true”才能返回一行,所以這個(gè)結(jié)果集比前面的例子多了兩行:

Output+---------+------+-------+---------+
| name    | best | worst | average |
+---------+------+-------+---------+
| George  |   68 |   103 |    84.6 |
| Pat     |   65 |    74 |    68.7 |
| Diane   |   70 |    92 |    78.8 |
| Calvin  |   63 |    76 |    68.5 |
| Rose    |   69 |    84 |    76.7 |
| Raymond |   67 |    92 |    81.3 |
+---------+------+-------+---------+
6 rows in set (0.00 sec)

你可以在一個(gè)WHERE子句中包含任意數(shù)量的謂詞,只要你用正確的語法將它們組合起來。然而,隨著搜索條件變得越來越復(fù)雜,預(yù)測它們將過濾哪些數(shù)據(jù)變得越來越困難。

需要注意的是,數(shù)據(jù)庫系統(tǒng)通常優(yōu)先考慮AND操作符。這意味著任何由AND操作符分隔的謂詞(或在兩個(gè)以上謂詞的情況下的操作符)都被視為一個(gè)單獨(dú)的、隔離的搜索條件,在WHERE子句中的任何其他謂詞之前進(jìn)行測試。

為了說明問題,運(yùn)行下面的查詢,它從nameaverage、worstrounds_played列中返回滿足WHERE子句中定義的搜索條件的任何行:

SELECT name, average, worst, rounds_played
FROM golfers 
WHERE average < 85 OR worst < 95 AND rounds_played BETWEEN 19 AND 23;

這個(gè)查詢首先測試由AND操作符分隔的謂詞是否worst < 95rounds_played BETWEEN 19 AND 23——在當(dāng)前迭代中,這兩個(gè)值都為“true”。如果是,那么該行將出現(xiàn)在結(jié)果集中。但是如果任何一個(gè)求值為“false”,查詢將檢查當(dāng)前行的average值是否小于85。如果是,則返回該行:

Output+---------+---------+-------+---------------+
| name    | average | worst | rounds_played |
+---------+---------+-------+---------------+
| George  |    84.6 |   103 |            22 |
| Pat     |    68.7 |    74 |            25 |
| Diane   |    78.8 |    92 |            23 |
| Calvin  |    68.5 |    76 |          NULL |
| Rose    |    76.7 |    84 |          NULL |
| Raymond |    81.3 |    92 |            18 |
+---------+---------+-------+---------------+
6 rows in set (0.00 sec)

您可以通過將兩個(gè)或多個(gè)查詢條件包裝在括號(hào)中來確定它們的優(yōu)先級(jí)。下面的示例與前一個(gè)相同,但它封裝了average < 85worst < 95查詢條件,用OR操作符分隔,放在括號(hào)中:

SELECT name, average, worst, rounds_played
FROM golfers
WHERE (average < 85 OR worst < 95) AND rounds_played BETWEEN 19 AND 23;

因?yàn)榍皟蓚€(gè)謂詞被圓括號(hào)包圍,后續(xù)的AND操作符將它們視為一個(gè)離散的搜索條件,必須求值為“true”。如果這兩個(gè)謂詞- average < 85worst < 95——求值為“false”,那么整個(gè)搜索條件求值為“false”,查詢會(huì)立即從結(jié)果集中刪除這一行,然后再繼續(xù)求值下一行。

然而,如果前兩個(gè)謂詞中的任何一個(gè)求值為“true”,查詢就會(huì)測試給定高爾夫球手的rounds_played值是否在19到23之間。如果是,則在結(jié)果集中返回這一行:

Output+--------+---------+-------+---------------+
| name   | average | worst | rounds_played |
+--------+---------+-------+---------------+
| George |    84.6 |   103 |            22 |
| Diane  |    78.8 |    92 |            23 |
+--------+---------+-------+---------------+
2 rows in set (0.00 sec)

結(jié)果表明,通過優(yōu)先級(jí)的謂詞集和包裝在括號(hào),否則相同的查詢可以返回結(jié)果集明顯不同。

盡管并不總是需要這樣做,但建議在單個(gè)搜索條件中組合兩個(gè)以上謂詞時(shí)始終使用括號(hào)。這樣做有助于使查詢更可讀、更容易理解。

用NOT排除結(jié)果

到目前為止,本指南的所有示例都集中在如何使用WHERE子句編寫查詢,在結(jié)果集中只包含滿足指定搜索條件的行。然而,你可以通過在WHERE子句中包含NOT操作符來編寫排除特定行的查詢。

范圍、會(huì)員和模式匹配謂詞的條款,包括NOT操作符通常遵循這一語法:

. . .
WHERE column_name NOT OPERATOR value_expression
. . .

為了說明這一點(diǎn),運(yùn)行下面的查詢。這將返回golfers表的name列的值,但其WHERE子句中的NOT操作符將導(dǎo)致DBMS排除所有匹配通配符模式的行:

SELECT name
FROM golfers
WHERE name NOT LIKE 'R%';
Output+--------+
| name   |
+--------+
| George |
| Pat    |
| Grady  |
| Diane  |
| Calvin |
+--------+
5 rows in set (0.00 sec)

當(dāng)將NOT操作符添加到IS NULL謂詞時(shí),情況略有不同。在這種情況下,你可以將NOT放在ISNULL之間,如下面的例子所示。這個(gè)查詢返回所有rounds_played值不為Null的高爾夫球手的namerounds_played值:

SELECT name, rounds_played
FROM golfers
WHERE rounds_played IS NOT NULL;
Output+---------+---------------+
| name    | rounds_played |
+---------+---------------+
| George  |            22 |
| Pat     |            25 |
| Grady   |            11 |
| Diane   |            23 |
| Raymond |            18 |
+---------+---------------+
5 rows in set (0.00 sec)

你也可以將NOT操作符緊跟在WHERE關(guān)鍵字之后。如果你根據(jù)是否滿足多個(gè)搜索條件來排除行,這很有用,如下面的示例查詢返回golfers的name、averagebestwins值:

SELECT name, average, best, wins
FROM golfers
WHERE NOT (average < 80 AND best < 70) OR wins = 9;
Output+---------+---------+------+------+
| name    | average | best | wins |
+---------+---------+------+------+
| George  |    84.6 |   68 |    3 |
| Pat     |    68.7 |   65 |    9 |
| Grady   |    97.6 |   78 |    0 |
| Diane   |    78.8 |   70 |    1 |
| Raymond |    81.3 |   67 |    1 |
+---------+---------+------+------+
5 rows in set (0.00 sec)

請(qǐng)注意結(jié)果集的第二行。帕特的“平均”分?jǐn)?shù)不到80分,她的“最佳”分?jǐn)?shù)也不到70分。然而,她的行仍然包含在結(jié)果集中,因?yàn)?code>NOT操作符只是對(duì)括號(hào)內(nèi)的搜索條件求反。

回想一下,當(dāng)您將由ANDOR分隔的多個(gè)謂詞包裝在括號(hào)中時(shí),SQL將優(yōu)先考慮這些謂詞,并將它們視為單個(gè)隔離的搜索條件。因此,NOT操作符只排除基于前兩個(gè)謂詞的行: average < 80best < 70。但是它包含基于第三個(gè)謂詞的行,wins = 9。

你可以重寫這個(gè)查詢,根據(jù)第三個(gè)條件和前兩個(gè)條件將它們都包含在括號(hào)中,如下所示:

SELECT name, average, best, wins
FROM golfers
WHERE NOT ((average < 80 AND best < 70) OR wins = 9);
Output+---------+---------+------+------+
| name    | average | best | wins |
+---------+---------+------+------+
| George  |    84.6 |   68 |    3 |
| Grady   |    97.6 |   78 |    0 |
| Diane   |    78.8 |   70 |    1 |
| Raymond |    81.3 |   67 |    1 |
+---------+---------+------+------+
4 rows in set (0.00 sec)

根據(jù)SQL實(shí)現(xiàn)的不同,如果你在比較操作符之前包含NOT,數(shù)據(jù)庫系統(tǒng)可能會(huì)認(rèn)為查詢語法無效。舉個(gè)例子,試著運(yùn)行這個(gè)查詢:

SELECT name
FROM golfers
WHERE name NOT = 'Grady';

對(duì)于MySQL及其衍生版本,這將導(dǎo)致錯(cuò)誤:

OutputERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 'Grady'' at line 1

這個(gè)錯(cuò)誤的原因是NOT操作符通常不與比較操作符(=,<>, <, <, <=, >>=)一起使用,因?yàn)槟憧梢酝ㄟ^將一個(gè)比較操作符替換為另一個(gè)比較操作符來實(shí)現(xiàn)相反的效果,該比較操作符將返回第一個(gè)比較操作符將排除的行。例如,你可以將等價(jià)運(yùn)算符(=)替換為不等價(jià)運(yùn)算符(<>)。

總結(jié)

通過閱讀本指南,你學(xué)習(xí)了如何編寫WHERE子句,使查詢只返回滿足指定條件的行。你還學(xué)習(xí)了如何在單個(gè)查詢中組合多個(gè)謂詞和搜索條件,以及如何使用NOT關(guān)鍵字從結(jié)果集中排除信息。

雖然這里顯示的命令在大多數(shù)關(guān)系型數(shù)據(jù)庫上都可以工作,但請(qǐng)注意,每個(gè)SQL數(shù)據(jù)庫都使用自己獨(dú)特的語言實(shí)現(xiàn)。關(guān)于每個(gè)命令及其所有選項(xiàng)的更完整描述,讀者可以查閱相應(yīng)DBMS的官方文檔。

到此這篇關(guān)于SQL使用WHERE條件語句的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)SQL使用WHERE條件語句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql字符串格式化方式

    mysql字符串格式化方式

    這篇文章主要介紹了mysql字符串格式化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 解決啟動(dòng)MySQL服務(wù)時(shí)出現(xiàn)"mysql本地計(jì)算機(jī)上的MySQL服務(wù)啟動(dòng)后停止"的問題

    解決啟動(dòng)MySQL服務(wù)時(shí)出現(xiàn)"mysql本地計(jì)算機(jī)上的MySQL服務(wù)啟動(dòng)后停止"的問題

    某一天我的MySQL啟動(dòng)突然出現(xiàn)了異常:“mysql本地計(jì)算機(jī)上的MySQL服務(wù)啟動(dòng)后停止,某些在未由其他服務(wù)或程序使用時(shí)將自動(dòng)停止,”?,小編在網(wǎng)絡(luò)上面找了很多方法,MySQL啟動(dòng)成功了,但是第二天開啟MySQL時(shí)還是出現(xiàn)了這個(gè)問題,現(xiàn)把兩種方法總結(jié)一下,需要的朋友可以參考下
    2023-11-11
  • MySQL中的BETWEEN...AND的使用情況

    MySQL中的BETWEEN...AND的使用情況

    這篇文章主要介紹了MySQL中的BETWEEN...AND的使用情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mysql、oracle默認(rèn)事務(wù)隔離級(jí)別的說明

    mysql、oracle默認(rèn)事務(wù)隔離級(jí)別的說明

    這篇文章主要介紹了mysql、oracle默認(rèn)事務(wù)隔離級(jí)別的說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Mysql中的DCL權(quán)限詳解

    Mysql中的DCL權(quán)限詳解

    這篇文章主要介紹了Mysql中的DCL詳解,DCL是數(shù)據(jù)控制語言,用來管理用戶、控制數(shù)據(jù)庫的訪問權(quán)限,就控制有哪些用戶可以訪問數(shù)據(jù)庫,可以訪問數(shù)據(jù)庫的哪些內(nèi)容,需要的朋友可以參考下
    2023-08-08
  • 高效數(shù)據(jù)流轉(zhuǎn):Mycat分庫分表與GreatSQL實(shí)時(shí)同步

    高效數(shù)據(jù)流轉(zhuǎn):Mycat分庫分表與GreatSQL實(shí)時(shí)同步

    聚焦數(shù)據(jù)庫擴(kuò)容與實(shí)時(shí)數(shù)據(jù)同步,探索MyCat分庫分表與GreatSQL的強(qiáng)大結(jié)合!想在大規(guī)模數(shù)據(jù)處理中游刃有余?本指南將帶你輕松掌握MyCat的分布式解決方案和GreatSQL的實(shí)時(shí)同步機(jī)制,讓高效、穩(wěn)定的數(shù)據(jù)庫管理觸手可及,一起揭開高并發(fā)環(huán)境下數(shù)據(jù)庫優(yōu)化的神秘面紗吧!
    2024-01-01
  • MySQL語句整理及匯總介紹

    MySQL語句整理及匯總介紹

    今天小編就為大家分享一篇關(guān)于MySQL語句整理及匯總介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Mysql 8 新特性 window functions 的作用

    Mysql 8 新特性 window functions 的作用

    MySQL是眾多網(wǎng)站技術(shù)棧中的標(biāo)準(zhǔn)配置,是廣受歡迎的開源數(shù)據(jù)庫,已經(jīng)推出了8.0的第一個(gè)候選發(fā)行版本。接下來通過本文給大家分享Mysql 8 新特性 window functions 的作用,需要的朋友參考下吧
    2017-11-11
  • MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用

    MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用

    這篇文章介紹了MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • SQL Server COALESCE函數(shù)詳解及實(shí)例

    SQL Server COALESCE函數(shù)詳解及實(shí)例

    這篇文章主要介紹了SQL Server COALESCE函數(shù)詳解及實(shí)例的相關(guān)資料,COALESCE函數(shù)比ISNULL更加強(qiáng)大,這個(gè)函數(shù)的確非常有用,需要的朋友可以參考下
    2016-12-12

最新評(píng)論