子查询

一、子查询

  • 子查询在其他查询的基础上提供了一种有效的方式来表示where子句的条件。
  • 子查询是可以嵌套在select、insert、update、delete语句中。
  • 子查询的select查询总是使用圆括号括起来。
  • 子查询分成两种:嵌套子查询、相关子查询

二、嵌套子查询

在MySQL中的子查询是可以嵌套使用的,并且可以在一个查询中嵌套任意多个子查询,即一个子查询中还可以包含另一个子查询,这种查询方式为嵌套子查询。

嵌套查询语句格式:

select  列名  from  表名  where  列名  in(select查询语句)

select(select(select(select)

三、相关子查询

指的是子查询的结果有且只有一个值。

(1)使用insert和select语句结合

当insert语句和selecti语句做结合,就是把查询的结果插入到某一张表中。

格式:

insert into表名select查询语句

(2)使用delete和select语句结合

delete from 表名 where 列名 in (select查询语句)

例∶删除计算机系学生的成绩

delete from sc where sno in (select sno from student where dept=’计算机系’)

(3)使用update和select语句(子查询)结合

例如将计算机系全部学生的成绩加5分

Update sc set grade = grade+5

Where sno in (select sno from student where dept=’计算机系’)

四、子查询注意事项

1、where后面的条件要什么,子查询就查什么。比如:条件要学号,子查询就查学号

2、什么情况优先考虑子查询?给出的条件没有明确的提示时候用。例如:查询计算机系学生选修了哪些课程?

3、where后面要用到聚合函数当条件,聚合函数不能直接写,就可以借助查询语句把聚合函数的结果给查出来就行,比如成绩大于平均成绩

where grade>(sellect avg(grade) from sc)==>where grade>78

子查询

上一篇:ES6中的Promise


下一篇:idea激活码最新版_2021.06.23