点击蓝字关注我吧
【本文详细介绍了数据库的基础知识之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
我知道你在看哟
领取专属 10元无门槛券
私享最新 技术干货