SQL LIMIT子句

SQL LIMIT子句

SQL LIMIT子句

SQL LIMIT子句用于限制由SELECT语句返回的行数。此外,我们还可以在UPDATE和DELETE语句中使用它来限制(限制)结果记录。

例如,如果您在数据库表中存储了大量行,并且只想获取某个数量的行,比如前10行,您可以在查询中使用LIMIT子句。

Microsoft SQL Server不支持LIMIT子句。代替这个,我们可以使用TOP子句从MS SQL Server数据库的表中选择有限数量的记录。类似地,Oracle支持ROWNUM子句来限制表的记录。

语法

下面是带有SELECT语句的SQL LIMIT子句的基本语法-

SELECT column_name(s)
FROM table_name
WHERE [condition]
LIMIT value;

在这里, 是要从顶部返回的行数。

示例

假设我们已经创建了一个名为CUSTOMERS的表,其中包含客户的个人详细信息,包括他们的姓名,年龄,地址和薪水等,如下所示−

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

现在,使用INSERT语句将值插入到这个表中,如下所示 –

INSERT INTO CUSTOMERS VALUES
   (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 );

表格将按以下格式创建 –

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等。

SELECT * FROM CUSTOMERS LIMIT 3;

输出

这将产生以下结果 –

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 条记录。

SELECT * FROM CUSTOMERS ORDER BY AGE ASC LIMIT 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 开头的前两个客户的详细信息的查询。

SELECT * FROM CUSTOMERS WHERE NAME LIKE 'k%' LIMIT 2;

输出

以下结果由此产生 –

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个客户 –

DELETE FROM CUSTOMERS WHERE NAME LIKE 'K%' LIMIT 2;

输出

我们得到的输出如下所示:

Query OK, 2 rows affected (0.01 sec)

验证

我们可以通过使用SELECT语句检索表的内容来验证更改是否在表中反映出来。以下是在CUSTOMERS表中显示记录的查询语句。

SELECT * FROM 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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程