我有一个讨论与主题是否条款队友clause
和expression
可以互换使用.例如,调用代表expression
a=b
(例如,参与语句SELECT * WHERE expression
)子句的变量是正确/通用的吗?
这将是有益的是有人能给出什么确切的定义clause
,expression
并statement
在SQL世界.
在SQL条款,"条款"通常用来指节的声明中,通常是由它的名字命名的关键字引入-例如,一个典型的SELECT
声明将组合成的SELECT
子句,FROM
子句和WHERE
条款.在该FROM
条款中,有些人可能会参考JOIN
条款和ON
条款.但是,这绝不是100%接受的用法.
当谈到"声明"和"表达"时,它是相当标准的用法 - 表达式是产生价值的东西.在大多数语言中,这进一步被理解为产生标量值的东西.在SQL中,这稍作修改,因为当您使用行集时遇到表达式时,表达式将为每行(或每个组或分区,如果涉及分组或分区并且它位于相关位置)产生一个标量值.
最后,语句是一个完整的"东西",您的数据库引擎可以理解并生成结果.它不会产生值,但可能会产生结果集.您不能只是向FROM
数据库发送一个子句 - 它必须是更大的语句的一部分,例如SELECT
我在第一段中提到的语句.