标签: ansi-92

为什么SQL ANSI-92标准不比ANSI-89更好地采用?

在我所工作的每家公司,我发现人们仍然在ANSI-89标准中编写SQL查询:

select a.id, b.id, b.address_1
from person a, address b
where a.id = b.id
Run Code Online (Sandbox Code Playgroud)

而不是ANSI-92标准:

select a.id, b.id, b.address_1
from person a
inner join address b
on a.id = b.id
Run Code Online (Sandbox Code Playgroud)

对于这样一个非常简单的查询,可读性没有太大差异,但是对于大型查询,我发现将我的连接条件分组并列出表格可以更容易地查看我在连接中可能存在问题的位置,以及让我在WHERE子句中保留所有过滤功能.更不用说我觉得外连接比Oracle中的(+)语法更直观.

当我尝试向人们传播ANSI-92时,使用ANSI-92而不是ANSI-89有什么具体的性能优势吗?我会自己尝试,但是我们这里的Oracle设置不允许我们使用EXPLAIN PLAN - 不希望人们尝试优化他们的代码,是吗?

sql join ansi-92 ansi-sql

105
推荐指数
5
解决办法
4万
查看次数

开源数据库的常见SQL查询列表?

我正在尝试找到有关MySQL,PostgreSQL,SQLite等开源数据库的正确RDBMS SQL查询的信息.他们是否有任何预组装列表或者我只需要梳理每个数据库引擎的文档(在某些情况下猜测正确的实现? ALTER TABLE vs CREATE INDEX)

例如,到目前为止,我有MySQL的这个(部分)列表:

CREATE TABLE `%s` (...);
DROP TABLE IF EXISTS `%s` %s;
ALTER TABLE `%s` RENAME TO `%s`;

ALTER TABLE `%s` ADD COLUMN %s;
ALTER TABLE `%s` DROP COLUMN `%s` %s;
ALTER TABLE `%s` RENAME COLUMN `%s` to `%s`;

ALTER TABLE `%s` ADD CONSTRAINT `%s` FOREIGN KEY (`%s`) REFERENCES `%s` (`%s`) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE `%s` ADD CONSTRAINT `%s` UNIQUE (`%s`);
ALTER TABLE `%s` DROP CONSTRAINT …
Run Code Online (Sandbox Code Playgroud)

mysql postgresql relational-database ansi-92 database-schema

5
推荐指数
1
解决办法
372
查看次数