📅  最后修改于: 2023-12-03 14:46:04.377000             🧑  作者: Mango
SQLite是一种轻量级的关系型数据库,通常用于小型应用程序和移动设备。作为python内置的库,SQLite提供了外部数据库中许多基本功能。
在SQLite中,限制指定查询的结果集的大小。你可以使用关键字LIMIT来指定需要检索的记录数。
LIMIT 关键字用于限制检索的行数,它在SELECT语句中的位置如下所示:
SELECT column1, column2, ...
FROM table_name
LIMIT [no of rows] OFFSET [row num];
其中,LIMIT会指定结果集的行数,可以是0或者正整数。OFFSET参数指定结果集的偏移量,即结果集应从哪一行开始。
以下是基本的用法:
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
# 查询前3条记录
c.execute("SELECT * FROM infor LIMIT 3")
rows = c.fetchall()
for row in rows:
print(row)
conn.close()
以上执行代码将返回前三条infor表中的数据。
OFFSET 关键字指定从哪一行开始使用 LIMIT。 偏移量是从0开始的。 如下所示的SELECT语句包含OFFSET子句:
SELECT column1, column2, ...
FROM table_name
LIMIT [no of rows] OFFSET [row num];
以下是例子:
import sqlite3
# 检索第4行之后的记录
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("SELECT * FROM infor LIMIT 3 OFFSET 3")
rows = c.fetchall()
for row in rows:
print(row)
conn.close()
以上代码将返回infor表中从第4行开始的记录,共3条记录。
下面是一个完整的示例,它演示了如何使用LIMIT限制SQLite查询:
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
# create a test_table
c.execute('''CREATE TABLE test_table
(id INTEGER PRIMARY KEY, name text, score real)''')
# insert some data into the test_table
c.execute("INSERT INTO test_table VALUES (1, 'Alice', 89.5)")
c.execute("INSERT INTO test_table VALUES (2, 'Bob', 73.2)")
c.execute("INSERT INTO test_table VALUES (3, 'Charlie', 98.4)")
c.execute("INSERT INTO test_table VALUES (4, 'David', 82.5)")
c.execute("INSERT INTO test_table VALUES (5, 'Emily', 91.3)")
# select the top 3 scores from the test_table
c.execute("SELECT * FROM test_table ORDER BY score DESC LIMIT 3")
rows = c.fetchall()
for row in rows:
print(row)
conn.close()
在上面这个示例中,我们创建了一个名为test_table的表,并向其中插入了5条数据。我们使用“DESC”关键字指定按分数降序排序,并使用LIMIT 3限制了结果集的大小。