SQL WHERE 子句

来源:互联网 发布:淘宝招募令制作 编辑:程序博客网 时间:2024/04/27 16:01

WHERE 子句用于规定选择的标准。白话点就是:where用来过滤掉不满足条件的记录(把所有存储在数据库中的数据称之为记录),获取满足条件的记录。

WHERE 子句

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

语法

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;

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

操作符描述=Equal<>不等于>大于<小于>=大于等于<=小于等于BETWEEN在某个范围内LIKE搜索某种模式

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

使用WHERE子句

如果只需选取居住于城市 "Sandnes" 中的某些人,我们需要向 SELECT 语句添加 WHERE 子句:

SELECT * FROM Persons WHERE City='Sandnes';

"Persons" 表

LastNameFirstNameAddressCityYearHansenOlaTimoteivn 10Sandnes1951SvendsonToveBorgvn 23Sandnes1978SvendsonStaleKaivn 18Sandnes1980PettersenKariStorgt 20Stavanger1960

结果:

LastNameFirstNameAddressCityYearHansenOlaTimoteivn 10Sandnes1951SvendsonToveBorgvn 23Sandnes1978SvendsonStaleKaivn 18Sandnes1980

引号的使用

请注意,我们在例子中的条件值周围使用的是单引号,建议一直使用单引号,这个也是个好习惯。

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]

不在字符列中的任何单一字符