带有 PRIMARY KEY ASC 的 SQLite SELECT 默认顺序

标签 sqlite select

我使用以下方法创建了一个 SQLite 表:

CREATE TABLE T1 (
  CN INTEGER PRIMARY KEY ASC,
  Name TEXT
);

如果我这样做:

SELECT * FROM T1

即使没有指定 ORDER BY 子句,我也能按 CN 获取行顺序吗? CN 是 ROWID 的别名吗?

最佳答案

没有默认顺序这样的东西,如果您需要对结果进行排序,请添加明确的 order by 子句。

DBMS 只是简单地进行了优化,以寻找基于查询快速获取所需数据的最佳方式。在这种情况下,它是 CN 上的主键,但这只是因为您的示例非常简单。永远不要依赖 dbms 选择您想要的顺序。

关于带有 PRIMARY KEY ASC 的 SQLite SELECT 默认顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21418425/

相关文章:

sqlite - Sequelize 内存中的 sqlite 测试隔离数据库?

javascript - 如何根据 html 中的另一个选择选项操作选择选项?

MySQL 连接和内部选择

MYSQL IF SELECT COUNT() 大于零 select * from table else return nothing found

python - 在计算值之前从配对行中删除重复项

sqlite - 如何在SQLite触发器中使用WITH子句

linux - 如何判断 SQLite 在 Linux 上是否正确安装?

python - 我应该如何为我的 python 应用程序构建一个简单的数据库包?

sql - 在 SELECT 语句中执行存储过程

MySQL `WHERE ` 给出匹配 0 的意外结果