SQL子句与表达式术语

时间:2015-12-07 10:13:52

标签: sql

我与队友讨论了clauseexpression这两个词是否可以互换使用的主题。例如,调用代表expression a=b的变量(例如,参与声明SELECT * WHERE expression)一个句子是正确/通用的吗?

修改

有人可以准确定义SQL世界中clauseexpressionstatement的内容。

2 个答案:

答案 0 :(得分:7)

在SQL术语中,“子句”通常用于表示语句的部分,通常由其命名的关键字引入 - 例如典型的SELECT语句将由SELECT子句,FROM子句和WHERE子句组成。 FROM子句中,某些人员可能会引用JOIN条款和ON条款。但是,这绝不是100%接受的用法。

当谈到“声明”和“表达”时,它是相当标准的用法 - 表达式是产生值的东西。在大多数语言中,这进一步被理解为产生标量值的东西。在SQL中,这稍作修改,因为当您使用行集时遇到表达式时,表达式将生成一个标量值每行(或每个组或分区,如果涉及分组或分区,它位于相关位置)。

最后,语句是一个完整的“东西”,您的数据库引擎可以理解并生成结果。它不会产生但它可能会产生结果集。您不能只将FROM子句发送到数据库 - 它必须是更大语句的一部分,例如我在第一段中提到的SELECT语句。

答案 1 :(得分:0)

答案是否定的,表达式的评估结果可能是boolean valuestringnumber,其中一个子句构成了数据满足的规则,只有记录形式部分结果。

select * from TABLE where /*clause 1*/ field1 = field2 
and /*clause 2*/field3 = /*expression*/ field1 + field2

在上面的选择陈述中

  

第一个子句形成一个规则,即field1应该等于field2

     

第二条形成一条规则,即field3应该等于>的结果。表达式field1 + field2

<强>更新

SQL中有各种子句,如fromwhereorder bygroup byhavingfrom子句告诉从哪个表读取和排序,告诉如何排列结果。子句控制从哪里读取数据,将哪些数据作为select语句的一部分以及如何呈现数据。

另一方面,表达式计算为某种数据类型的值。

一个Statement,是一个带有子句的结构化查询。