sql 视图_SQL复杂查询-视图与子查询

一、视图

1、什么是视图?

f2cf4f48dfc11ef9435aef695984d7c7.png
视图的含义

dc4449ac023e318b625cce474ba056b7.png
视图注意事项

2、怎样创建视图

c314f9979c7b46b6618f71a816271212.png
创建视图
create view 视图名称(视图列名1,视图列名2,...)  as
<select 查询语句>;

243e93fed78c3bc12853f1d332fbe873.png
视图语句结构
create view 按性别汇总(性别,人数) as
select 性别,count(*)
from student
group by 性别;

8e710dd658919e27de3794e5c3380145.png
创建视图-按性别汇总

510d082b2483af901a7db826ebebb86a.png
视图-按性别汇总

3、删除视图、视图名称的用处

8f074e8f39c115a8b90f45f172f420b3.png
删除视图

f1659c80ef411fa70826292060dc376a.png
视图名称可作为表名

二、子查询

1、什么是子查询?

180a281aa73e19612b852e88ea49169e.png
子查询的含义
select 性别,人数
from (
select 性别,count(*) as '人数'
from student
group by 性别) as 按性别汇总;

131e550c5141e27aee90c49cc6f55bf1.png
子查询结构

05d315019871e809e55fd161f82e77dd.png
子查询-按性别汇总

2、子查询运行顺序

13a37898f9047814c8afe789d711a12e.png
子查询运行顺序

3、 in、any、all子查询

3.1 in(子查询) : 找出每个课程里成绩最低的学号

8ce4516536c7b25238d1a48f80bca6a8.png
in(子查询)

88e9ca8956ba769650e103453603cdf8.png
in(子查询)

b909839a105d3259022e1aabe0ca1266.png
in(子查询)
select 课程号,min(成绩) as '最低成绩'
from score
group by 课程号;

1c17aa52e57fea95e0942f0c7e356ec3.png
in(子查询)

ef0eb21ab86abbfd6581d12acd499027.png
in(子查询)

274b652599b33d5b4b37f988f4b01b48.png
in(子查询)

3745accb09ab0a360b6539ffec1717d6.png
in(子查询)
select 学号,成绩
from score
where 成绩 in (
select min(成绩)
from score
group by 课程号);

3.2 any(子查询) : 找出哪些学生的成绩比课程0002的全部成绩里的"任意一个"高

4001b3d12f604cb9a77f110a4e089045.png
any(子查询)

4b06fb6173864918f347af9cc6531ce4.png
any(子查询)

b04a752ebb3f9f1a16fea0cec106c735.png
any(子查询)

e282b0f03f44efae91a3dd6ab4ea9e64.png
any(子查询)
select 学号,成绩
from score
where 成绩>any(
select 成绩
from score
where 课程号='0002');

8eb5e78a23a19c2a973b3cf99a91ba3d.png
any(子查询)

9dbb9d757802ec47caa4e26fc2a1bfb4.png
any(子查询)

3.3 all(子查询) : 找出哪些学生的成绩比课程0002的全部成绩里的"都"高

select 学号,成绩
from score
where 成绩>all(
select 成绩
from score
where 课程号='0002');

4c5bde39e5483829ebdb18661d63cc9e.png
all(子查询)

27be706bd8d6ede86701311139b00bfe.png
all(子查询)

3.4 子查询注意事项 & SQL运行顺序

d50a41a3464ca6b1c70f25b387d24820.png
子查询注意事项

f8b2cdc691747e0c2ca44e980f6e63b7.png
SQL运行顺序

三、标量子查询

1、 找出大于平均成绩学生的学号和成绩

cc6625bdd6869108e021b30ad54340b3.png
select 学号,成绩
from score
where 成绩>(
select avg(成绩)
from score);

9bd8b17ea6cfac73921b502266a66952.png

932947dc3d147f5dc6388ff57802cc55.png

2、 成绩介于差生和优等生平均成绩之间的学生

select 学号,成绩
from score
where 成绩 between (
select avg(成绩)
from score
where 成绩<=60) and
(select avg(成绩)
from score
where 成绩>=80);

fce31942c89079e4f22e2c89ab5438b9.png

cb69c72f20e1dc4de4a9a32c8d3d28ad.png

3、 标量子查询还可以作为列名

select 学号,成绩,(select avg(成绩) 
                  from score) as 平均成绩
from score;

8bef88c3762d86e15f54fad5c16da2ce.png

4、标量子查询的注意事项

3e2e6ff9520f6eeaa74ca2df6d7270d8.png

667c88c3bf897c1a69962b12f84d74c5.png

四、关联子查询

1、找出每个课程中大于对应课程平均成绩的学生

cbe542fb7bd32c004048c5b2f4488a0b.png
select 学号,课程号,成绩
from score as s1
where 成绩>(
select avg(成绩)
from score as s2
where s1.课程号=s2.课程号
group by 课程号);

764f4302ff6e28da9318b57df4f03e14.png

80de49096867b7f78a11dee35306ed8f.png

9acb7b766afae60afe1ca1f5f795ad18.png

2、关联子查询的注意事项

5d1e5c187c6d8fe90e603da88c1cb727.png
关联子查询的注意事项

bf6188745c6cf3aaddfda60e69782705.png
组内比较-关联子查询

3、看懂SQL报错信息

36e421097a83e3467ec47346bc522d6d.png

五、各种函数

674eccddbb06fe3381c5e5884ff4c4c9.png
汇总函数

e9b643ad6c795e8e97667d97dcf0afdf.png
算术函数

641aa323bc5a09be92c6af5c180419a4.png
字符串函数

b89f2db98e55a45a58f3498a58230f95.png
日期函数

六、总结

ec3c5c4e504ba825266a334cfd2664bd.png

七、SQL zoo SELECT within SELECT Tutorial

7db41782678645de9b2e0538b4b837de.png

cd8a615343cf543b5dfd8976868330ac.png

cdf8c1a0af38d3f22201c936a12fdd5d.png

4d260423918231b9b8c5a2e89d5ed648.png

335bb582c8abd73f8dfdb1131596c269.png

5ba195476893cff7a99e8582a98a4dfa.png

358f2b51939d1e7588217ba4a8a81fdd.png

45905130e39a9840954e570bb7f8d226.png

98b47c5054e928371d33220b200b4bf7.png

86c1d86ae811377b226cb7c901cc8174.png

68885b0aae0ea6ec0759b5799a8963da.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值