任务描述
- 创建于使用单值子查询
- 创建于使用多值子查询
- 创建于使用相关子查询
相关知识与任务描述
子查询其实就是嵌套查询,如果一个查询语句嵌套在另一个查询语句中,那么称该查询语句为子查询。
子查询在主查询之前执行,主查询使用子查询的结果。
子查询可以返回单个结果,可以返回多个结果。如果子查询返回单个值结果,则为单值子查询,
可以在主查询中对其使用相应的单行记录比较运算符;如果子查询返回多个结果,则为多值子查询
,此时不允许对其使用单行记录比较运算符。
在dql和dml语句中可以嵌套使用select子句。即select、insert、update、和delete语句都可以嵌套select子句。在一般情况下,select子句将作为以where或having子句引导的条件。
常见语法格式如下:
select 字段列表 from tablel
where 表达式 operator(select 字段列表 form table2);
其条件表达式的形式有以下几种:
①字段名 = (select 子句),如果select子句只返回单个值作为条件,可以使用此条件表达式。
②字段名 = (select子句),如果select子句返回多个值作为条件,必须使用功能此条件表达式。
③字段名 exists(select子句),如果select子句返回值是布尔类型,必须此条件表达式。
一、创建与使用单值子查询
- 子查询返回空值
- 子查询返回单值
二、创建与使用多值子查询
- 创建单表多值子查询
- 创建多表多值子查询
三、创建与使用相关子查询
- 在select字段列表中使用相关子查询
- 在where语句中使用相关子查询
- 在where语句中国使用exists子查询
项目作业
一、选择题
1.如果在where子句中有两个条件要同时满足,应该用逻辑符(AND)来连接。
2.在从两个表中查询数据时,连接条件要放在(WHERE)子句中。
3.DELETE FROM S WHERE 年龄 > 语句的 功能是(从S表中删除年龄大于60岁的记录)。
4.在建表时,如果希望某列的值在一定的范围内,应建立(CHECK)约束。
5.下列子句中在SELECT语句中用于对结果集进行排序的是(ORDERB子句)。
6.为了去除 结果集中重复的行,可在SELCET语句中使用关键字(DISTINCT)。
7.GROUP BY子句的作用是(查询结果的分组条件)。
8.HAVING子句的作用是(组的筛选条件)。
二、简答题
1.简述SELECT子句的嵌套使用方式。
2.简述内连接和外连接的区别。
3.简述连接查询和联合查询的区别。