SQL SELECT TOP, LIMIT, ROWNUM 子句
以下表作为测试:
SQL SELECT TOP 子句
SELECT TOP 子句用于规定要返回的记录的数目。
SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。
注释:并非所有的数据库系统都支持 SELECT TOP 子句。
SQL Server / MS Access 语法
SELECT TOP number|percent column_name(s)
FROM table_name;
实例
以下操作选取表中前面3条记录。
SELECT TOP 3 * FROM student;
以下操作在 Microsoft SQL Server 数据库中可执行。选取表中前面百分之 50 的记录。
SELECT TOP 50 PERCENT * FROM student;
MySQL 语法
SELECT column_name(s)
FROM table_name
LIMIT number;
实例:选择表Persons前面三条信息。
SELECT *
FROM student
LIMIT 3;
Oracle 语法
SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;
实例:选择表Persons前面三条信息。
SELECT *
FROM student
WHERE ROWNUM <=3;
SQL LIKE 操作符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
SQL LIKE 语法
SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;
实例
提示:”%” 符号用于在模式的前后定义通配符(缺省字母)。可以在任意位置使用它,也可以多个使用。
SQL 通配符
- 通配符可用于替代字符串中的任何其他字符。
- 在 SQL 中,通配符与 SQL LIKE 操作符一起使用。
- SQL 通配符用于搜索表中的数据。
在 SQL 中,可使用以下通配符:
通配符 | 描述 |
---|---|
% | 替代 0 个或多个字符 |
_ | 替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或 [!charlist] | 不在字符列中的任何单一字符 |
它们都可以在任意位置使用,也可以多个使用。
_
实例
SQL [charlist] 通配符
MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
实例
下面的 SQL 语句选取成绩 以 “8”、”9” 开始的所有同学:
下面的 SQL 语句选取成绩以 6 到 8 字母开头的同学:
下面的 SQL 语句选取成绩不以 6 到 8 字母开头的同学:
SQL IN 操作符
IN 操作符允许您在 WHERE 子句中规定多个值。
SQL IN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...);
SQL BETWEEN 操作符
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
SQL BETWEEN 语法
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
实例
以下实例查询成绩及格的同学:
- 改用
NOT BETWEEN 60 AND 100
就是查询不及格的同学了。 - 字符区间的时候要加单引号,如字母A到H之间字母开头的记录:
BETWEEN 'A' AND 'H'
- 日期值选取,如介于 ‘2016-05-10’ 和 ‘2016-05-14’ 之间的所有访问记录:
BETWEEN '2016-05-10' AND '2016-05-14'
请注意,在不同的数据库中,BETWEEN 操作符会产生不同的结果!
在某些数据库中,BETWEEN 选取介于两个值之间但不包括两个测试值的字段。
在某些数据库中,BETWEEN 选取介于两个值之间且包括两个测试值的字段。
在某些数据库中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段。
因此,请检查您的数据库是如何处理 BETWEEN 操作符!
SQL 别名
通过使用 SQL,可以为表名称或列名称指定别名。
基本上,创建别名是为了让列名称的可读性更强。
列的 SQL 别名语法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 别名语法
SELECT column_name(s)
FROM table_name AS alias_name;
在下面的情况下,使用别名很有用:
- 在查询中涉及超过一个表
- 在查询中使用了函数
- 列名称很长或者可读性差
- 需要把两个列或者多个列结合在一起