WHERE 子句用於規定選擇的標準。白話點就是:where用來過濾掉不滿足條件的記錄(把所有存儲在數據庫中的數據稱之爲記錄),獲取滿足條件的記錄。
WHERE 子句
如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。
語法
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值;
下面的運算符可在 WHERE 子句中使用:
操作符 | 描述 |
---|---|
= | Equal |
<> | 不等於 |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
BETWEEN | 在某個範圍內 |
LIKE | 搜索某種模式 |
註釋:在某些版本的 SQL 中,操作符 <> 可以寫爲 !=。
使用WHERE子句
如果只需選取居住於城市 "Sandnes" 中的某些人,我們需要向 SELECT 語句添加 WHERE 子句:
SELECT * FROM Persons WHERE City='Sandnes';
"Persons" 表
LastName | FirstName | Address | City | Year |
---|---|---|---|---|
Hansen | Ola | Timoteivn 10 | Sandnes | 1951 |
Svendson | Tove | Borgvn 23 | Sandnes | 1978 |
Svendson | Stale | Kaivn 18 | Sandnes | 1980 |
Pettersen | Kari | Storgt 20 | Stavanger | 1960 |
結果:
LastName | FirstName | Address | City | Year |
---|---|---|---|---|
Hansen | Ola | Timoteivn 10 | Sandnes | 1951 |
Svendson | Tove | Borgvn 23 | Sandnes | 1978 |
Svendson | Stale | Kaivn 18 | Sandnes | 1980 |
引號的使用
請注意,我們在例子中的條件值周圍使用的是單引號,建議一直使用單引號,這個也是個好習慣。
SQL 使用單引號來環繞文本值(大部分數據庫系統也接受雙引號)。如果是數值,請不要使用引號。
文本值:
這是正確的: SELECT * FROM Persons WHERE FirstName='Tove'; 這是錯誤的: SELECT * FROM Persons WHERE FirstName=Tove;
數值:
這是正確的: SELECT * FROM Persons WHERE Year>1965; 這是錯誤的: SELECT * FROM Persons WHERE Year>'1965';
LIKE 條件
LIKE 用於規定針對列中某個模式的搜索。
語法
SELECT 列 FROM 表 WHERE 列 LIKE 模式
符號"%"可用於定義模式之前及模式之後的通配符(模式中缺少的字符)。
使用LIKE
下面的語句會返回名字的第一個字符爲 'O' 的人:
SELECT * FROM Persons WHERE FirstName LIKE 'O%'
;
下面的語句會返回名字的最後一個字符爲 'a' 的人:
SELECT * FROM Persons WHERE FirstName LIKE '%a'
;
下面的語句會返回名字中包含字符 'la' 的人:
SELECT * FROM Persons WHERE FirstName LIKE '%la%'
;
SQL 通配符(LIKE)
在搜索數據庫中的數據時,SQL 通配符可以替代一個或多個字符。
SQL 通配符必須與 LIKE 運算符一起使用。
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
---|---|
% | 替代一個或多個字符 |
_ | 僅替代一個字符 |
[charlist] | 字符列中的任何單一字符 |
[^charlist] 或者 [!charlist] | 不在字符列中的任何單一字符 |