SQL中的关键字和子句有啥区别?

Posted

技术标签:

【中文标题】SQL中的关键字和子句有啥区别?【英文标题】: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 之后的任何内容都被视为子句(直到下一个子句) forums.devshed.com/mysql-help-4/… 子句是一种过滤数据的手段是不正确的。 FROM 关键字开始一个子句,您标识的 WHERE 关键字也是如此。我不知道“子句”是否有正式定义,但对我来说,它意味着语句中的一个部分或块。 一条SQL语句由子句组成,其中一个子句是where。查看SELECT 的文档并注意术语的使用:msdn.microsoft.com/en-us/library/ms189499.aspx。 【参考方案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, ... 是子句。

【讨论】:

以上是关于SQL中的关键字和子句有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

oracle sql中的join关键字和inner join关键字有啥区别? [复制]

sql server,mysql,oracle有啥相通点和语法区别?

“类型”和“子类型”关键字有啥区别?

SQL中的INNER JOIN和JOIN有啥区别

linq to sql select和where的区别

Slick中的inSet和inSetBind有啥区别