sql语言中子查询是什么(sql子查询详解)
导语:数据库基础之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 &34; GROUP BY &34;;
这个 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 &34;
GROUP BY &34;
HAVING &34;;
这个 HAVING 子句允许你为每一个组指定条件,换句话说,可以根据你指定的条件来选择行。如果你想使用 HAVING 子句的话,它应该处再 GROUP BY 子句之后。
1.2.3 ORDER BY 子句语法SELECT column1, SUM(column2)
FROM &34;
ORDER BY &34; [ASC | DESC];
[ ] = optional
ORDER BY 是一个可选的子句,它允许你根据指定要 order by 的列来以上升或者下降的顺序来显示查询的结果。例如:
ASC = Ascending Order – 这个是缺省的
DESC = Descending Order
本文内容由小思整理编辑!