SQL |限制条款
如果有大量满足查询条件的元组,一次只查看少数几个可能会很费事。
- LIMIT 子句用于设置 SQL 返回的元组数的上限。
- 需要注意的是,并非所有 SQL 版本都支持此子句。
- 也可以使用 SQL 2008 OFFSET/FETCH FIRST 子句指定 LIMIT 子句。
- 限制/偏移表达式必须是非负整数。
例子:
假设我们有关系,学生。
学生表:
RollNo | Name | Grade |
---|---|---|
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
查询
SELECT *
FROM Student
LIMIT 5;
输出:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
SELECT *
FROM Student
ORDER BY Grade DESC
LIMIT 3;
输出:
12006 | Anne | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
LIMIT运算符可以用于上述情况,我们需要查找班级中排名前 3 的学生,并且不想使用任何条件语句。
使用 LIMIT 和 OFFSET
LIMIT x OFFSET y 只是意味着跳过前 y 个条目,然后返回下一个 x 条目。
OFFSET 只能与 ORDER BY 子句一起使用。它不能单独使用。
OFFSET 值必须大于或等于零。它不能为负数,否则返回错误。
查询:
SELECT *
FROM Student
LIMIT 5 OFFSET 2
ORDER BY ROLLNO;
输出:
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
使用 LIMIT ALL
LIMIT ALL 意味着没有限制。
SELECT *
FROM Student
LIMIT ALL;
上面的查询只是返回表中的所有条目。