鉴于 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/