📜  Python SQLite-限制(1)

📅  最后修改于: 2023-12-03 14:46:04.377000             🧑  作者: Mango

Python SQLite-限制

SQLite是一种轻量级的关系型数据库,通常用于小型应用程序和移动设备。作为python内置的库,SQLite提供了外部数据库中许多基本功能。

在SQLite中,限制指定查询的结果集的大小。你可以使用关键字LIMIT来指定需要检索的记录数。

SELECT语句之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语句

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限制了结果集的大小。