Python SQL数据库排序
我已经开始在Python3.7.6中编程SQL,并开始创建一个“备忘单”,在我尝试对它进行排序之前,一切都很顺利(我在这里使用的示例是对数据库“database1”进行排序,表名为“test1”)。我在网上读过,看到有人在使用代码:Python SQL数据库排序,python,sql,sqlite,Python,Sql,Sqlite,我已经开始在Python3.7.6中编程SQL,并开始创建一个“备忘单”,在我尝试对它进行排序之前,一切都很顺利(我在这里使用的示例是对数据库“database1”进行排序,表名为“test1”)。我在网上读过,看到有人在使用代码: SELECT * FROM test1 ORDER BY fname 这似乎是可行的,但我遇到的问题是,它似乎没有以这种有序的形式保存数据库,而这正是我试图实现的(文件根本没有改变;修改的时间没有改变)。我见过其他人附加代码,所以我会在末尾写下相关的部分 def
SELECT * FROM test1
ORDER BY fname
这似乎是可行的,但我遇到的问题是,它似乎没有以这种有序的形式保存数据库,而这正是我试图实现的(文件根本没有改变;修改的时间没有改变)。我见过其他人附加代码,所以我会在末尾写下相关的部分
def order(fileName, sheet, attributes, condition, ascencion):
connection = sqlite3.connect(fileName+".db")
cursor = connection.cursor()
sql_command = """SELECT *
FROM """ + str(sheet) + "\n"
sql_command += "ORDER BY " + str(attributes[0][0])
if ascencion.lower() == "increasing" or ascencion.lower() == "ascending":
sql_command += " ASC;"
elif ascencion.lower() == "decreasing" or ascension.lower() == "descending":
sql_command += " DESC;"
cursor.execute(sql_command)
connection.commit()
connection.close()
SQL表表示无序集。您真的不应该认为存在任何排序,除非您指定了该排序
因此,只需使用orderby
子句检索数据即可
也就是说,SQLite是一个基于文件的数据库,因此它可能会保留文件中的顺序,而不考虑查询。然而,由于SQL通常不会以这种方式运行,我建议您不要依赖它
相反,将fname
声明为表上的主键,或使用fname
在表上定义聚集索引。您仍然需要按排序,但是使用这些方法应该很少甚至没有开销为什么它会更改数据库?你只是在读数据。