Python PostgreSQL - Limit 限制子句
执行 PostgreSQL SELECT 语句时,可以使用 LIMIT 子句限制其结果中的记录数。
语法
以下是 PostgreSQL 中 LMIT 子句的语法 −
SELECT column1, column2, columnN FROM table_name LIMIT [行数]
示例
假设我们使用以下查询创建了一个名为 CRICKETERS 的表 −
postgres=# CREATE TABLE CRICKETERS ( First_Name VARCHAR(255), Last_Name VARCHAR(255), Age int, Place_Of_Birth VARCHAR(255), Country VARCHAR(255) ); CREATE TABLE postgres=#
如果我们使用 INSERT 语句向其中插入 5 条记录,如下所示 −
postgres=# insert into CRICKETERS values ('Shikhar', 'Dhawan', 33, 'Delhi', 'India'); INSERT 0 1 postgres=# insert into CRICKETERS values ('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica'); INSERT 0 1 postgres=# insert into CRICKETERS values ('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka'); INSERT 0 1 postgres=# insert into CRICKETERS values ('Virat', 'Kohli', 30, 'Delhi', 'India'); INSERT 0 1 postgres=# insert into CRICKETERS values ('Rohit', 'Sharma', 32, 'Nagpur', 'India'); INSERT 0 1
以下语句使用 LIMIT 子句检索 Cricketers 表的前 3 条记录 −
postgres=# SELECT * FROM CRICKETERS LIMIT 3; first_name | last_name | age | place_of_birth | country ------------+------------+-----+----------------+------------- Shikhar | Dhawan | 33 | Delhi | India Jonathan | Trott | 38 | CapeTown | SouthAfrica Kumara | Sangakkara | 41 | Matale | Srilanka (3 rows)
如果您想要获取从特定记录(偏移量)开始的记录,可以使用 OFFSET 子句和 LIMIT 来实现。
postgres=# SELECT * FROM CRICKETERS LIMIT 3 OFFSET 2; first_name | last_name | age | place_of_birth | country ------------+------------+-----+----------------+---------- Kumara | Sangakkara | 41 | Matale | Srilanka Virat | Kohli | 30 | Delhi | India Rohit | Sharma | 32 | Nagpur | India (3 rows) postgres=#
使用 Python 的限制子句
以下 Python 示例检索名为 EMPLOYEE 的表的内容,将结果中的记录数限制为 2 −
示例
import psycopg2 #建立连接 conn = psycopg2.connect( database="mydb", user='postgres', password='password', host='127.0.0.1', port= '5432' ) #设置自动提交为 false conn.autocommit = True #使用 cursor() 方法创建游标对象 cursor = conn.cursor() #检索单行 sql = '''SELECT * from EMPLOYEE LIMIT 2 OFFSET 2''' #执行查询 cursor.execute(sql) #获取数据 result = cursor.fetchall(); print(result) #在数据库中提交你的更改 conn.commit() #关闭连接 conn.close()
输出
[('Sharukh', 'Sheik', 25, 'M', 8300.0), ('Sarmista', 'Sharma', 26, 'F', 10000.0)]