SQL语句及其类型–语法示例(第2部分)


在第一章节我们学习了讨论了3个SQL子句,分别是WITH,SELECT和FROM子句。今天,我们将转向SQL语句的第二部分。在SQL子句的这一部分中,我们将在SQL中看到ARRAYTABLE,GROUP BY,HAVING,ORDER BY,LIMIT,INTO,OPTION和WHERE语句。另外,我们将学习它们的语法和示例。

SQL子句的类型是什么?

1.数组

顾名思义,该函数定义了要投影的列。它可能与from语句条目相关,并且隐式是一个嵌套表。

语法规则

函数中的列不应重复。

用法

ARRAYTABLE(expression COLUMNS , ...) AS name
COLUMN := name datatype

2.WHERE子句

此子句设置记录的条件以限制受select delete和update语句影响的记录。

当需要从单个或多个表中获取数据时,我们使用SQL WHERE子句。如果指定了条件,则它将返回一个特定值。我们还可以将WHERE子句与UPDATE,DELETE SQL语句等配合使用,而不仅限于SELECT语句。

WHERE的一般形式为:

WHERE criteria

3.GROUP BY子句

此子句表明,应根据每个组的指定表达式值对行进行分类。在可选过滤由HAVING子句完成的汇总行之后,应返回一行。

语法规则

  • 这种子句中的列差异必须具有未混淆的输出列。
  • 表达式必须出现在我们在GROUP BY中使用的SELECT子句中。
  • SELECT子句使用列引用和表达式,而GROUP BY子句不使用。它应该出现在聚合函数中。
  • 如果在任何情况下我们都使用带有SELECT子句的聚合函数,但未指定GROUP BY,则隐式GROUP BY函数将对整个结果执行。
  • GROUP BY子句中的列必须是可比较的类型。

GROUP BY的一般形式为:

GROUP BY ,expression)*

4.条款

该子句与where子句完全一样,唯一的区别在于,即使语法相同,它也对GROUP BY子句的输出进行操作。

此子句中使用的表达式必须包含一个COUNT,AVG,SUM,MIN和MAX 的聚合函数

5.按条款订购

我们使用此子句来指定记录的存储和排序方式。选项为升序(ASC)和降序(DESC)。

用法:

ORDER BY expression [ASC|DESC] [NULLS (FIRST|LAST)], ...

语法规则:

  • 排序列的位置还包括基于1的位置整数,SELECT子句别名,SELECT子句表达式或不相关的表达式。
  • 列引用可能select子句作为用于混叠的列中的表达式中出现,或者可以内的从表引用列FROM子句。如果列引用不在select子句中,则查询不应是set操作,请指定SELECT  DISTINCT或包含GROUP BY子句。
  • 非相关查询的ORDER BY子句中允许使用不相关的表达式(在select子句中未显示为别名表达式的表达式)。表达式中引用的列应来自FROM子句表引用。列引用不能是别名或位置。
  • ORDER BY列应为可比较的类型。
  • 如果我们在没有限制子句的内联视图或视图定义中使用ORDER BY,则优化器将删除它。
  • 现在,如果知道NULLS FIRST / LAST,则可以保证将null排在第一或最后。如果不知道空值排序,则通常可以使用空值作为低值对结果进行排序,这是内部默认排序行为。但是,并非所有源都返回带有默认为低值的null的结果,并且可能返回具有不同null顺序的结果。

6.LIMIT子句

此子句将限制设置为SELECT子句返回的记录数。在此还可以指定一个可选的偏移量,即要跳过的行数。

如果还指定了另一个子句,即ORDER BY,则它将在OFFSET / LIMIT之前应用,如果未指定,则顺序不固定。

也可以通过SQL 2008 OFFSET / FETCH FIRST子句指定。

用法:

LIMIT [offset,] limit
[OFFSET offset ROW|ROWS] [FETCH FIRST|NEXT [limit] ROW|ROWS solely

语法规则:

  • 限制/偏移量表达式应为非负数或参数引用(?)。偏移量0将被忽略,而限制数0将不返回任何行。
  • 术语FIRST / NEXT可另外互换为ROW / ROWS。
  • limit子句可能带有一个可选的NON_STRICT提示,以指示即使结果与限制的逻辑应用不一致,也不应抑制推送操作。仅在无序限制上才需要提示。

7.INTO条件

当我们使用SELECT关键字声明INTO子句时,结果将插入到特定表中。我们经常在插入临时表的记录时使用它。

它位于FROM子句之前。

用法:

INTO table FROM ...

语法规则:

  • INTO子句在逻辑上最后应用在ORDER BY和LIMIT子句之后。
  • 。选择INTO不得使用UNION查询。

8.选项条件

关键字有助于表示可以通过命令传递给用户的可用选项。

SQL子句指定在整个查询中都应使用指示的查询提示,并且每个查询提示只能指定一次,但也可以允许多个查询提示。

可以使用该语句指定带有一个OPTION子句的此子句的条件。

可以在SELECT,UPDATE,DELETE和MERGE语句中指定OPTION子句。

您了解SQL日期函数吗?

用法:

OPTION option, (option)*

所以,这一切都在SQL子句第2部分中。希望您喜欢该解释。

总结

因此,在本SQL子句教程中,我们用其语法介绍了不同的子句,例如WHERE子句,GROUP BY子句,HAVING BY子句,ORDER BY子句,LIMIT子句,INTO子句,OPTION子句。

本文由 学习链 作者:学习链 发表,其版权均为 学习链 所有,文章内容系作者个人观点,不代表 学习链 对观点赞同或支持,未经许可,禁止转载,题图来自Unsplash,基于CC0协议。

推荐阅读

发表评论