sql - 默认隐式参数 SQL

标签 sql postgresql

鉴于 SQL 是一种声明性语言,我似乎无法弄清楚在 SQL 中使用默认隐式参数有什么意义(请参阅下面的示例)。强制参数不是确保更多可读性的一种方式吗?毕竟,代码应该被编写一次并被人类多次(或至少一次)阅读。

例如,在 PostgreSQL 中我们有 following syntax :

T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 ON boolean_expression

以下查询:

SELECT * 
FROM T1 JOIN T2
ON true;

隐含一个内部连接意味着它等于以下查询:

SELECT *
FROM T1 INNER JOIN T2
ON true;

有人可以向我解释一下 SQL 中默认参数和可选参数(在我们的示例中是隐式连接类型)背后的原因吗?

最佳答案

此语法是由 SQL 标准委员会根据其智慧设计的。

没有人可以指责 SQL 过于简洁,但我想在某些情况下,缩写语法的选项被认为是合适的(想到的另一种情况是 CREATE TEMP[ORARY] TABLE ).

你提到了可读性的问题,我认为这是一个有效的问题。我们可能同意非常简洁的语法会妨碍可读性,但过于冗长的语法也会如此。

我认为这主要是编写标准的人的品味和判断的问题。

关于sql - 默认隐式参数 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53206235/

相关文章:

c# - 当我更新一行时,gridview 中的所有行都会更新

mysql - SQL 中的外键引用不起作用

MySQL - 为多个表创建一个主键/唯一键

mysql - 使用sql检查时间和日期之间的空闲时间

Mysql按位运算

postgresql - pl/pgsql 与针对 SQL 注入(inject)攻击的准备语句

sql - Postgresql - 日期比较

postgresql - SELECT 查询中的 PreparedStatement setNull

java - 如何从 java 中仅获取 redshift 中的语法错误?

python - 在数据库中存储标记化文本?