SQL高级课程
SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。 SQL 通配符必须与 LIKE 运算符一起使用。 在 SQL 中,可使用以下通配符: 通配符 % _ [charlist] [^charlist] 或者 [!charlist] 描述 替代一个或多个字符 仅替代一个字符 字符列中的任何单一字符 不在字符列中的任何单一字符 原始的表 (用在例子中的):
Persons 表: Id 1 2 3 LastName Adams Bush Carter FirstName John George Thomas Address Oxford Street Fifth Avenue Changan Street City London New York Beijing 使用 % 通配符
例子 1
现在,我们希望从上面的 \表中选取居住在以 \开始的城市里的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE 'Ne%'
结果集: Id 2 LastName Bush FirstName George Address Fifth Avenue City New York 例子 2
接下来,我们希望从 \表中选取居住在包含 \的城市里的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE '%lond%'
结果集: Id 1 LastName Adams FirstName John Address Oxford Street City London 使用 _ 通配符
例子 1
现在,我们希望从上面的 \表中选取名字的第一个字符之后是 \的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE FirstName LIKE '_eorge'
结果集: Id 2 LastName Bush FirstName George Address Fifth Avenue City New York 例子 2
接下来,我们希望从 \表中选取的这条记录的姓氏以 \开头,然后是一个任意字符,然后是 \,然后是任意字符,然后是 \: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE LastName LIKE 'C_r_er'
结果集:
Id 3 LastName Carter FirstName Thomas Address Changan Street City Beijing 使用 [charlist] 通配符
例子 1
现在,我们希望从上面的 \表中选取居住的城市以 \或 \或 \开头的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
结果集: Id 1 2 LastName Adams Bush FirstName John George Address Oxford Street Fifth Avenue City London New York 例子 2
现在,我们希望从上面的 \表中选取居住的城市不以 \或 \或 \开头的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
结果集: Id 3 LastName Carter FirstName Thomas Address Changan Street City Beijing
IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。
SQL IN 语法
SELECT column_name(s) FROM table_name
WHERE column_name IN (value1,value2,...)
原始的表 (在实例中使用:)
Persons 表: Id 1 2 3 LastName Adams Bush Carter FirstName John George Thomas Address Oxford Street Fifth Avenue Changan Street City London New York Beijing IN 操作符实例 现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE LastName IN ('Adams','Carter')
结果集: Id 1 3 LastName Adams Carter FirstName John Thomas Address Oxford Street Changan Street City London Beijing
BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
BETWEEN 操作符
操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name WHERE column_name
BETWEEN value1 AND value2
原始的表 (在实例中使用:)
Persons 表: Id 1 2 3 4
LastName
Adams Bush Carter Gates
FirstName
John George Thomas Bill
Address
Oxford Street Fifth Avenue Changan Street Xuanwumen 10
City
London New York Beijing Beijing
BETWEEN 操作符实例
如需以字母顺序显示介于 \(包括)和 \(不包括)之间的人,请使用下面的 SQL:
SELECT * FROM Persons WHERE LastName
BETWEEN 'Adams' AND 'Carter'
结果集: Id 1 2 LastName Adams Bush FirstName John George Address Oxford Street Fifth Avenue City London New York 重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 \和 \之间的人,但不包括 \和 \;某些数据库会列出介于 \和 \之间并包括 \和 \的人;而另一些数据库会列出介于 \和 \之间的人,包括 \,但不包括 \。 所以,请检查你的数据库是如何处理 BETWEEN....AND 操作符的!
实例 2
如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:
SELECT * FROM Persons