学习内容:
一、视图 (即 sql查询语句,用于频繁使用,但无法在视图里插入数据,否则会报错)
练习:如何创建视图
create view 按年龄汇总
as
select 性别,count(*)
from student
group by 性别;
二、子查询 (在where 里插入临时查询语句,用于临时查询)
1.应用与多行子查询
类型:
in :主要用于关联分析查询
any all : 主要应用在比较分析时使用
2.练习:
01.那些学生的成绩比课程0002的全部成绩里的任意一个高?
select 学号,成绩
from score
where 成绩 > any (
select 成绩
from score
where 课程号 ='00002'
);
02.哪些学生的成绩比课程0002的全部成绩里的 都高呢?
select 学号,成绩
from score
where 成绩 > ALL
(
select 成绩
from score
where 课程号 ='0002'
);
三、标量子查询
1.什么是标量子查询,有什么作用?
应用在 select where 里,只能返回单一的值
select 学号,成绩
from score
where 成绩> (select avg(成绩) from score);
2.注意事项是什么
如果在用group by 等多行语句 会报错
3.练习:
01.大于平均成绩学生的学号和成绩
SELECT 学号,成绩
from score
where 成绩 > (select avg(成绩) from score);
02.成绩是差生和优等生的学号和成绩