SQL WHERE 子句



WHERE 子句用于规定选择的标准。



WHERE 子句



如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。



语法SELECT 列名称 FROM 表名称 WHERE 列 运算符 值



下面的运算符可在 WHERE 子句中使用:




操作符


描述



=



等于



<>



不等于



>



大于



<



小于



>=



大于等于



<=



小于等于



BETWEEN



在某个范围内



LIKE



搜索某种模式


注释:在某些版本的 SQL 中,操作符 <> 可以写为 !=。



使用 WHERE 子句

如果只希望选取居住在城市 "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 运算符实例


使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人:

SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'


结果


LastName


FirstName



Address



City



Carter



Thomas



Changan Street



Beijing


OR 运算符实例


使用 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 运算符


我们也可以把 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