SQL LIMIT子句
SQL LIMIT子句
SQL LIMIT子句用于限制由SELECT语句返回的行数。此外,我们还可以在UPDATE和DELETE语句中使用它来限制(限制)结果记录。
例如,如果您在数据库表中存储了大量行,并且只想获取某个数量的行,比如前10行,您可以在查询中使用LIMIT子句。
Microsoft SQL Server不支持LIMIT子句。代替这个,我们可以使用TOP子句从MS SQL Server数据库的表中选择有限数量的记录。类似地,Oracle支持ROWNUM子句来限制表的记录。
语法
下面是带有SELECT语句的SQL LIMIT子句的基本语法-
在这里, 值 是要从顶部返回的行数。
示例
假设我们已经创建了一个名为CUSTOMERS的表,其中包含客户的个人详细信息,包括他们的姓名,年龄,地址和薪水等,如下所示−
现在,使用INSERT语句将值插入到这个表中,如下所示 –
表格将按以下格式创建 –
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
6 | Komal | 22 | Hyderabad | 4500.00 |
7 | Muffy | 24 | Indore | 10000.00 |
现在,我们使用LIMIT子句从CUSTOMERS表中获取前3条记录,而不指定任何子句(用于过滤数据),例如WHERE、ORDER BY等。
输出
这将产生以下结果 –
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
限制order by子句
SQL中的order by子句用于对查询结果集进行升序或降序排序。我们可以将它与MySQL数据库中的limit子句一起使用,按排序顺序检索(或更新或删除等)前面 N 条记录。
示例
使用以下查询,我们将按照 AGE 列的升序,检索 CUSTOMERS 表中排序的前 4 条记录。
输出
我们得到的结果如下:
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
6 | Komal | 22 | Hyderabad | 4500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
7 | Muffy | 24 | Indore | 10000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
Note − ORDER BY子句默认按升序排列数据。因此,如果我们需要按降序排序数据,则必须使用DESC关键字。
LIMIT与WHERE子句
我们可以在WHERE子句中使用LIMIT子句,限制给定数量的行并根据指定的条件进行筛选。
示例
以下是查询从CUSTOMERS表中检索以 K 开头的前两个客户的详细信息的查询。
输出
以下结果由此产生 –
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 23 | Kota | 2000.00 |
使用DELETE语句的LIMIT子句
在MySQL数据库中,可以使用LIMIT子句与DELETE语句一起使用,以删除满足给定条件的特定行数。
示例
在下面的查询中,我们使用带有LIMIT子句的DELETE语句。在这里,我们正在删除名称以 K 开头的前2个客户 –
输出
我们得到的输出如下所示:
验证
我们可以通过使用SELECT语句检索表的内容来验证更改是否在表中反映出来。以下是在CUSTOMERS表中显示记录的查询语句。
表格的显示如下:
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
4 | Chaitali | 25 | Mumbai | 6500.00 |
5 | Hardik | 27 | Bhopal | 8500.00 |
7 | Muffy | 24 | Indore | 10000.00 |