SQL WHERE 子句
WHERE 子句用于规定选择的标准。
WHERE 子句
如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
语法SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
下面的运算符可在 WHERE 子句中使用:
操作符
|
描述
|
=
|
等于
|
<>
|
不等于
|
>
|
大于
|
<
|
小于
|
>=
|
大于等于
|
<=
|
小于等于
|
BETWEEN
|
在某个范围内
|
LIKE
|
搜索某种模式
|
注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。
使用 WHERE 子句
"Persons" 表
结果:
引号的使用
数值:这是正确的:SELECT * FROM Persons WHERE Year>1965 这是错误的:SELECT * FROM Persons WHERE Year>'1965'
SQL AND & OR 运算符
AND 运算符实例
结果:
OR 运算符实例
结果:
结合 AND 和 OR 运算符
结果:
如果只希望选取居住在城市 "Beijing" 中的人,我们需要向 SELECT 语句添加 WHERE 子句:
SELECT * FROM Persons WHERE City='Beijing'"Persons" 表
LastName
|
FirstName
|
Address
|
City
|
Year
|
Adams
|
John
|
Oxford Street
|
London
|
1970
|
Bush
|
George
|
Fifth Avenue
|
New York
|
1975
|
Carter
|
Thomas
|
Changan Street
|
Beijing
|
1980
|
Gates
|
Bill
|
Xuanwumen 10
|
Beijing
|
1985
|
LastName
|
FirstName
|
Address
|
City
|
Year
|
Carter
|
Thomas
|
Changan Street
|
Beijing
|
1980
|
Gates
|
Bill
|
Xuanwumen 10
|
Beijing
|
1985
|
请注意,我们在例子中的条件值周围使用的是单引号。
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。
文本值:这是正确的:SELECT * FROM Persons WHERE FirstName='Bush' 这是错误的:SELECT * FROM Persons WHERE FirstName=Bush数值:这是正确的:SELECT * FROM Persons WHERE Year>1965 这是错误的:SELECT * FROM Persons WHERE Year>'1965'
SQL AND & OR 运算符
AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。
AND 和 OR 运算符
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
原始的表 (用在例子中的):
LastName
|
FirstName
|
Address
|
City
|
Adams
|
John
|
Oxford Street
|
London
|
Bush
|
George
|
Fifth Avenue
|
New York
|
Carter
|
Thomas
|
Changan Street
|
Beijing
|
Carter
|
William
|
Xuanwumen 10
|
Beijing
|
使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人:
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'结果:
LastName
|
FirstName
|
Address
|
City
|
Carter
|
Thomas
|
Changan Street
|
Beijing
|
使用 OR 来显示所有姓为 "Carter" 或者名为 "Thomas" 的人:
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'结果:
LastName
|
FirstName
|
Address
|
City
|
Carter
|
Thomas
|
Changan Street
|
Beijing
|
Carter
|
William
|
Xuanwumen 10
|
Beijing
|
我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William')AND LastName='Carter'结果:
LastName
|
FirstName
|
Address
|
City
|
Carter
|
Thomas
|
Changan Street
|
Beijing
|
Carter
|
William
|
Xuanwumen 10
|
Beijing
|