视图查询 加条件_第四关 复杂查询

本文详细介绍了如何创建视图,并探讨了子查询的四种应用:IN, ANY, ALL, BETWEEN。强调了子查询的注意事项,如避免运算符前加ALL,减少嵌套等。讲解了标量子查询的特性,强调其不能返回多行结果。同时,讨论了关联子查询在每个组内比较的作用,并给出了多个练习题,帮助读者巩固理解。" 111719806,10293093,C# 中手动配对并连接到WinForm低功耗蓝牙设备,"['C#编程', '蓝牙开发', 'WinForm应用', '设备配对', '低功耗蓝牙']
摘要由CSDN通过智能技术生成

一、视图

如何创建视图?

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

二、子查询

四个子查询应用:in,any,all,between

d67f3b5d3d8cf7761465e5c895c16475.png

注意事项

1.all前面不要加运算符

2.子查询语句中最好不要层层嵌套

3.注意子查询的命名方便后期查看

bfa8ea60f517bb4b102de53ea3a6a886.png

三、标量子查询

from语句后面不能应用聚合函数,可在from字句中直接写定义视图的sql查询语句,运行时先运行子查询部分。

0a3fa9a6e3699e45cddcffb2e398feef.png

5d48786dde5906471587640b2b101fcb.png

注意⚠️:该子查询绝对不能返回多行结果。如果子查询返回了多行结果,那么它就不再是标量子查询,只是一个普通子查询,因此不能被用在=或者
<>等需要单一输入值的运算符当中,也不能用在Select等子句当中。

四、关联子查询

用于在每个组里进行比较

关联条件需要写在子查询语句当中

19d15e6ea37d23ddfb60aa51317ebc5a.png

作业

第1题

select name from world where population>
(select population from world where name='Russia')

第2题

select name from world where continent='Europe' and GDP/population>
(select GDP/population from world where name='United Kingdom')

第3题 在运算符in里使用子查询

select name,continent from world where continent in 
(select continent from world where name='Argentina' or name='Australia')
order by name 

第4题 如何运用between 使用标量子查询

select name,population from world where population between
(select polulation from world where name='Canada')+1 and
(select population from world where name='Poland')-1;

注意:边界值!!!

1e0d965139a9b883eba655fdbdbd9f21.png

第6题

select name from world where  GDP>all
(select  GDP from world where continent='Europe' and GDP>0);

1800de07c997adc311b6432459f2c4af.png

第8题

select continent,name from world as x
where name<=all(select name from world as y
where x.continent=y.continent
group by continent)

注:<=all 可查询出按字母排序首位的国家

第9题

select name,continent,population from world as x
where 25000000>=all(select population from world as y
where x.continent=y.continent
group by continent)

第10题

select name,continent from world as x
where population>=all(select 3*population from world as y
where x.continent=y.continent and x.name<>y.name
group by continent)

第10题中 x.name<>y.name 这一条主要是为了排除自己

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值