Python Data Access 简明教程

Python SQLite - Limit

在获取记录时,如果你想通过某个特定的数字来限制它们,你可以使用 SQLite 的 LIMIT 子句来做到。

While fetching records if you want to limit them by a particular number, you can do so, using the LIMIT clause of SQLite.

Syntax

以下是 SQLite 中的 LIMIT 子句的语法:

Following is the syntax of the LIMIT clause in SQLite −

SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]

Example

假设我们使用以下查询创建了一个名为 CRICKETERS 的表 -

Assume we have created a table with name CRICKETERS using the following query −

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age int,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255)
);
sqlite>

并且如果我们使用 INSERT 语句向其中插入 5 条记录,如下所示 -

And if we have inserted 5 records in to it using INSERT statements as −

sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>

以下语句使用 LIMIT 子句检索 Cricketers 表的前 3 条记录:

Following statement retrieves the first 3 records of the Cricketers table using the LIMIT clause −

sqlite> SELECT * FROM CRICKETERS LIMIT 3;
First_Name Last_Name  Age  Place_Of_B Country
---------- ---------- ---- ---------- -------------
Shikhar    Dhawan     33   Delhi      India
Jonathan   Trott      38   CapeTown   SouthAfrica
Kumara     Sangakkara 41   Matale     Srilanka
sqlite>

如果你需要从第 n 个记录开始限制记录(不是第一个),你可以使用 OFFSET 和 LIMIT 来做到。

If you need to limit the records starting from nth record (not 1st), you can do so, using OFFSET along with LIMIT.

sqlite> SELECT * FROM CRICKETERS LIMIT 3 OFFSET 2;
First_Name Last_Name  Age  Place_Of_B Country
---------- ---------- ---- ---------- -------------
Kumara     Sangakkara 41   Matale     Srilanka
Virat      Kohli      30   Delhi      India
Rohit      Sharma     32   Nagpur     India
sqlite>

LIMIT clause using Python

如果你通过将 SELECT 查询与 LIMIT 子句一起传递给光标对象来调用 execute() 方法,则可以检索所需数量的记录。

If you Invoke the execute() method on the cursor object by passing the SELECT query along with the LIMIT clause, you can retrieve required number of records.

Example

以下 Python 示例使用 LIMIT 子句检索 EMPLOYEE 表的前两条记录。

Following python example retrieves the first two records of the EMPLOYEE table using the LIMIT clause.

import sqlite3

#Connecting to sqlite
conn = sqlite3.connect('example.db')

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

#Retrieving single row
sql = '''SELECT * from EMPLOYEE LIMIT 3'''

#Executing the query
cursor.execute(sql)

#Fetching the data
result = cursor.fetchall();
print(result)

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Output

[('Ramya', 'Rama priya', 27, 'F', 9000.0),
   ('Vinay', 'Battacharya', 20, 'M', 6000.0),
   ('Sharukh', 'Sheik', 25, 'M', 8300.0)]