【问题标题】:What is the difference between a keyword and a clause in SQL?SQL中的关键字和子句有什么区别?
【发布时间】:2015-09-18 00:24:14
【问题描述】:

我的理解是,子句是将数据集过滤到特定条件的一种手段。因此,WHERE 作为一个子句对我来说完全有意义。

但在我看过的一些教程中,我看到AND/OR 被称为关键字。在我看来,它们都是一个子句。

谁能帮助我更好地理解这一点?

【问题讨论】:

  • AND、OR 和 WHERE 都是关键字 :) WHERE 之后的任何内容都被视为子句(直到下一个子句)
  • 子句是一种过滤数据的手段是不正确的。 FROM 关键字开始一个子句,您标识的 WHERE 关键字也是如此。我不知道“子句”是否有正式定义,但对我来说,它意味着语句中的一个部分或块。
  • 一条SQL语句由子句组成,其中一个子句是where。查看SELECT 的文档并注意术语的使用:msdn.microsoft.com/en-us/library/ms189499.aspx

标签: mysql sql sql-server


【解决方案1】:

举例说明

SELECT  col1
        ,col2
        ,col3
FROM yourTable1 AS t1
INNER JOIN yourTable2 AS t2 ON t1.Id = t2.Id
WHERE col1 = 'aaaa'
AND col2 = 'bbbb'
ORDER BY col1

这是SELECT 语句或查询

FROM yourTable1 AS t1 INNER JOIN yourTable2 ==> FROM 子句

ON t1.Id = t2.Id ==> ON 子句

WHERE col1 = 'aaaa' AND col2 = 'bbbb' ==> WHERE 子句

ORDER BY col1 ==> ORDER BY 子句

SELECTFROMWHEREONASANDORDER BY都是关键字

【讨论】:

    【解决方案2】:

    也许这会有所帮助Reserved Keywords:

    Microsoft SQL Server 使用保留关键字来定义, 操作和访问数据库。保留关键字是 SQL Server 使用的 Transact-SQL 语言的语法 解析和理解 Transact-SQL 语句和批处理。虽然它 在语法上可以使用 SQL Server 保留关键字作为 Transact-SQL 脚本中的标识符和对象名称,您可以这样做 只能使用分隔标识符。

    WHEREAND 都是 KeywordsCLAUSES

    【讨论】:

    • 可以说一个关键字可以引入一个子句,例如WHERE 关键字开始于 WHERE 子句。但是,AND 关键字是一个运算符,它本身并不是一个子句。
    【解决方案3】:

    关键字、子句和语句的使用如下:

    关键字指的是单个 SQL 元素。例如,SELECTFROM 是关键字。

    子句是 SQL 语句的一部分。例如,SELECT employee_id, last_name, ... 是子句。

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 2015-07-28
      • 2010-09-28
      • 2017-12-16
      • 2022-12-22
      相关资源
      最近更新 更多