📅  最后修改于: 2023-12-03 15:04:08.790000             🧑  作者: Mango
ORDER BY 是 SQL 查询中一个重要的子句。使用 ORDER BY 可以根据一个或多个列对查询的结果进行排序。在 Python 中,我们可以使用 SQLite 模块来连接、操作 SQLite 数据库中的数据,并使用 ORDER BY 子句对查询结果进行排序。
以下是一个示例代码,展示了如何在 Python 中使用 SQLite 模块进行排序查询:
import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
c = conn.cursor()
# 创建表格
c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
# 插入数据
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
c.execute("INSERT INTO stocks VALUES ('2006-03-28','BUY','IBM',1000,45.00)")
c.execute("INSERT INTO stocks VALUES ('2006-04-06','SELL','IBM',500,53.00)")
c.execute("INSERT INTO stocks VALUES ('2006-04-05','BUY','MSFT',1000,72.00)")
c.execute("INSERT INTO stocks VALUES ('2006-04-06','SELL','MSFT',500,86.00)")
# 查询表格并按交易日期排序
for row in c.execute('SELECT * FROM stocks ORDER BY date'):
print(row)
# 关闭连接
conn.close()
在上面的代码中,首先我们连接了一个名为 example.db 的 SQLite 数据库,并创建了一个名为 stocks 的表格。然后我们向表格中插入几条数据。最后,我们使用 ORDER BY date
进行排序查询,并打印出查询结果。运行程序后输出的结果如下:
('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0)
('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0)
('2006-04-06', 'SELL', 'IBM', 500.0, 53.0)
('2006-04-06', 'SELL', 'MSFT', 500.0, 86.0)
可以看到,查询结果按交易日期从早到晚排序,与我们使用 ORDER BY date
子句的要求一致。
ORDER BY 子句还可以按多个列进行排序。例如,我们可以按交易日期和股票代码两个列对查询结果进行排序,并且可以指定每个列是否按升序或降序排序:
for row in c.execute('SELECT * FROM stocks ORDER BY date, symbol DESC'):
print(row)
运行程序后输出的结果如下:
('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0)
('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0)
('2006-04-06', 'SELL', 'MSFT', 500.0, 86.0)
('2006-04-06', 'SELL', 'IBM', 500.0, 53.0)
可以看到,查询结果首先按交易日期升序排列,然后按股票代码降序排列。
在使用 ORDER BY 进行排序查询时,需要注意以下几点:
以上便是 Python SQLite 中 ORDER BY 子句的介绍和示例代码。