数据库基础之SQL子查询和子句

点击蓝字关注我吧

【本文详细介绍了数据库的基础知识之SQL子查询和子句,欢迎读者朋友们阅读、转发和收藏!】

1 基本概念

1.1 子查询

当一个查询是另一个查询的条件时,称之为子查询。

子查询可以使用几个简单命令构造功能强大的复合命令。

子查询最常用于 SELECT-SQL 命令的 WHERE 子句中。

子查询是一个 SELECT 语句,它嵌套在一个 SELECT 、 SELECT...INTO 语句、 INSERT...INTO 语句、 DELETE 语句、或 UPDATE 语句或嵌套在另一子查询中。

语法

可用三种语法来创建子查询:

comparison [ANY | ALL | SOME] (sqlstatement)expression [NOT] IN (sqlstatement)[NOT] EXISTS (sqlstatement)

子查询可分为以下几个部分:

Ø Comparison :一个表达式及一个比较运算符,将表达式与子查询的结果作比较。

Ø Expression :用以搜寻子查询结果集的表达式。

Ø Sqlstatement :SELECT 语句,遵从与其他 SELECT 语句相同的格式及规则。它必须括在括号之中。

说明

可以拿子查询代替表达式用于 SELECT 语句字段表或 WHERE 或 HAVING 子句。在子查询之中,在 WHERE 或 HAVING 子句的表达式中,用于计算的特定值是由 SELECT 语句提供的。

1.2 子句查询

1.2.1 group by 子句 语法

SELECT column1, SUM(column2) FROM " 表名 " GROUP BY "column-list";

这个 GROUP BY 子句将集中所有的行在一起,它包含了指定列的数据以及允许合计函数来计算一个或者多个列。

示例:

假设我们将从 employee 表中搜索工资最高的列,可以使用以下的 SQL 语句:

SELECT max(salary), dept FROM employee GROUP BY dept;

这条语句将在每一个单独的部门中选择工资最高的工资。结果他们的 salary 和 dept 将被返回。

1.2.2 HAVING 子句语法

下面先给出 HAVING 子句的语法:

SELECT column1, SUM(column2)FROM "list-of-tables"GROUP BY "column-list"HAVING "condition";

这个 HAVING 子句允许你为每一个组指定条件,换句话说,可以根据你指定的条件来选择行。如果你想使用 HAVING 子句的话,它应该处再 GROUP BY 子句之后。

1.2.3 ORDER BY 子句语法

SELECT column1, SUM(column2)FROM "list-of-tables"ORDER BY "column-list" [ASC | DESC];[ ] = optional

ORDER BY 是一个可选的子句,它允许你根据指定要 order by 的列来以上升或者下降的顺序来显示查询的结果。例如:

ASC = Ascending Order – 这个是缺省的DESC = Descending Order

我知道你在看

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200603A03BWZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券