0%

SQLServer-Day3

SQLServer—Day3

TOP子句

TOP子句用于规定要返回的记录的数目(并非所有的数据库系统都支持TOP子句)

SELECT TOP number | percent column_name(s)

FROM table_name

MySQLOracle中的SQL SELECT TOP是等价的

MySQL语法:

1
2
3
SELECT column_name(s)
FROM table_name
LIMIT number

例子:

1
2
3
SELECT *
FROM Persons
LIMIT 5

Oracle语法

1
2
3
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

例子:

1
2
3
SELECT *
FROM Persons
WHERE ROWNUM <= 5

原始表 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
2
3
SELECT * 
FROM Persons
WHERE City LIKE 'N%'

Tips: “%”可用于定义通配符(模式中缺少的字母)

结果:

Id LastName FirstName Address City
2 Bush George Fifth Avenue New York

例2:从上面的Persons表中选取居住在以“g”结尾的城市里的人

1
2
3
SELECT *
FROM Persons
WHERE City LIKE '%g'

结果:

Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing

例3:从上面的Persons表中选取居住在包含“lon”的城市里的人

1
2
3
SELECT * 
FROM Persons
WHERE City LIKE '%lon%'

结果:

Id LastName FirstName Address City
1 Adams John Oxford Street London

例4:通过使用关键字 NOT,我们可以从Persons表中选取居住在不包含‘lon’的城市里的人:

1
2
3
SELECT *
FROM Persons
WHERE City NOT LIKE '%lon%'

结果:

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
2
3
SELECT *
FROM Persons
WHERE FirstName LIKE '_eorge'

同理:

1
2
3
SELECT * 
FROM Persons
WHERE LastName LIKE 'C_r_er'

就是寻找名字的姓氏以‘C’开头,然后是任意一个字符,然后是‘r’,然后任意字符,最后是’er’的人

[charlist]字符集

例1:我们希望从上面的“Persons”表中选取居住的城市以‘A’或‘L’或’N‘开头的人

1
2
3
SELECT *
FROM Persons
WHERE City LIKE '[ALN]%'

结果:

Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York

例2:从“Persons”表中选取居住城市不以‘A’或’L‘或’N‘开头的人:

1
2
3
SELECT *
FROM Persons
WHERE City LIKE '[!ALN]%'