PostgreSQL Limit分页

在本节中,我们将了解PostgreSQL LIMIT 子句的工作原理,该子句用于获取命令生成的行的子集。

PostgreSQL LIMIT 子句的语法

PostgreSQL LIMIT 子句的基本语法如下:

SELECT select_list   
FROM table_name  
ORDER BY sort_expression  
LIMIT row_count  

在上面的语法中,Limit 子句返回命令创建的row_count行。

  • 如果row_count值为NULL,则查询将产生类似的结果,因为它不包含LIMIT子句。
  • 或者,如果row_count为零,该语句将返回一个空集。
  • 如果我们想在获取row_count行之前错过各种行,我们可以使用OFFSET 子句。

offset 子句位于LIMIT 子句之后,我们可以在下面的命令中看到:

SELECT select_list  
FROM table_name  
LIMIT row_count OFFSET row_to_skip; 

如果我们使用 ORDER BY 子句来获得带有LIMIT子句的行顺序。或者,如果我们不使用 ORDER BY 子句,我们可能会得到一个未命名的行顺序的输出。

PostgreSQL LIMIT 示例

让我们看一些例子来理解PostgreSQL LIMIT 子句的工作原理。

在这里,我们在CREATE table命令的帮助下创建一个名为CAR的新表,并使用INSERT 命令将一些值插入到CAR表中。

Create table CAR  
(  
    Car_id serial not null primary Key,  
    Car_name VARCHAR(50),   
    Car_Model VARCHAR(50),  
    Car_Price INTEGER,  
    Car_Color VARCHAR(20),  
    BODY_Style VARCHAR(30)  
);  

执行完上面的命令后,我们会看到下面的消息窗口,CAR表就创建成功了。

之后,我们将借助以下命令将一些值插入到CAR表中:

Insert into CAR   
values (1001,'Acura', 'NSX', 47075, 'yellow','coupe'),  
(1002,'Porche','911 Carrera', 399999, 'silver','coupe'),  
(1003,'Nissan', 'Armada', 36777, 'blue','wagon'),  
(1004,'Audi', 'A8', 63890,'black','sedan' ),  
(1005, 'Volvo', 'XC90', 45845, 'gray','wagon'),  
(1006,'BMW', 'M-Series', 108900,'red','coupe'),  
(1007, 'Jaguar', 'XK', 91675, 'brown','convertible'),  
(1008, 'Hummer', 'H1', 119999,'red','sedan'),  
(1009, 'Mercedes-Benz','CLS Class', 86900, 'black', 'sedan'),  
(1010, 'Suzuki', 'XL-7', 25880,'brown','wagon');  

执行完上面的命令后,我们会看到下面的消息窗口,值已经成功插入到CAR表中了。

使用 PostgreSQL LIMIT 限制返回行数的示例

在下面的示例中,我们将在LIMIT 子句的帮助下获取按Car_id排序的前六辆 CAR详细信息。

SELECT Car_id, Car_name, Body_Style  
FROM CAR  
ORDER BY Car_id  
LIMIT 6;  

执行上述命令后,我们将得到以下输出,其中将前六辆汽车的详细信息显示到CAR表中。

使用 PostgreSQL LIMIT 子句获取顶部和底部行的示例

为了从表中选择具有最大值或最小值的行,我们经常使用LIMIT子句。

例如,如果我们想根据价格对前五名最昂贵的汽车进行排序,我们将按汽车价格降序排列。

在以下命令中,我们使用LIMIT 子句将最昂贵的汽车放入CAR表中:

SELECT Car_id, Car_name, Car_Price  
FROM CAR  
ORDER BY Car_Price desc  
LIMIT 5 ;  

执行上述命令后,我们将得到以下输出:

热门文章

优秀文章