SQLServer—Day3
TOP子句
TOP
子句用于规定要返回的记录的数目(并非所有的数据库系统都支持TOP子句)
SELECT TOP number | percent column_name(s)
FROM table_name
MySQL
和Oracle
中的SQL SELECT TOP
是等价的
MySQL语法:
1 | SELECT column_name(s) |
例子:
1 | SELECT * |
Oracle语法
1 | SELECT column_name(s) |
例子:
1 | SELECT * |
原始表 Persons表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
4 | Obama | Barack | Pennsylvania Avenue | Washington |
例1:从上面的Persons表中选取头两条记录
1 | SELECT TOP 2 * FROM Persons |
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
例2:从Persons表中选取50%的记录
1 | SELECT TOP 50 PERCENT * FROM Persons |
结果同上述
LIKE操作符
用于在WHERE
子句中搜索列中的指定模式
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
Persons表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
例1:从上面的Persons表中选取居住在以”N”开始的城市里的人
1 | SELECT * |
Tips: “%”可用于定义通配符(模式中缺少的字母)
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | Bush | George | Fifth Avenue | New York |
例2:从上面的Persons表中选取居住在以“g”结尾的城市里的人
1 | SELECT * |
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
3 | Carter | Thomas | Changan Street | Beijing |
例3:从上面的Persons表中选取居住在包含“lon”的城市里的人
1 | SELECT * |
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
例4:通过使用关键字 NOT
,我们可以从Persons表中选取居住在不包含‘lon’的城市里的人:
1 | SELECT * |
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
通配符
在搜索数据库中的数据是,SQL通配符可以代替一个或多个字符。
SQL通配符必须和LIKE
运算符一起使用
在SQL中,可使用一下通配符:
通配符 | 描述 |
---|---|
% | 代替一个或多个字符 |
_ | 仅代替一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] or [!charlist] | 不在字符列中的任何单一字符 |
原始Persons表:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
_
通配符:
例1:我们希望从Persons表中选取名字的第一个字符之后是“eorge”的人:
1 | SELECT * |
同理:
1 | SELECT * |
就是寻找名字的姓氏以‘C’开头,然后是任意一个字符,然后是‘r’,然后任意字符,最后是’er’的人
[charlist]
字符集
例1:我们希望从上面的“Persons”表中选取居住的城市以‘A’或‘L’或’N‘开头的人
1 | SELECT * |
结果:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
例2:从“Persons”表中选取居住城市不以‘A’或’L‘或’N‘开头的人:
1 | SELECT * |