黑马程序员c语言教程:子查询简介.docx 立即下载
2025-08-28
约1.9万字
约28页
0
23KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

黑马程序员c语言教程:子查询简介.docx

黑马程序员c语言教程:子查询简介.docx

预览

免费试读已结束,剩余 23 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

黑马程序员c语言教程:子查询简介

第一篇:黑马程序员c语言教程:子查询简介--为什么要用子查询先求scott的工资selectsalfromempwhereename='SCOTT'select*fromempwheresal>3000//===>select*fromempwheresal>(selectsalfromempwhereename='SCOTT')/子查询的场景对于一个问题,1步不能求解,需要多步whereename='SCOTT')子查询的本质select语言的嵌套子查询知识架构合理的书写风格子查询的()不要丢掉子查询和主查询可以不是同一张表,只要子查询返回的结果,主查询能用就行...4可以在主查询的什么地方放一个子查询selecta,b,c,(select*......)//ok//在select后面的子查询必须是单行子查询fromtab1,tab2,(select**)//okwhere...(select*...)//okorderby...//errgroupby...//errhavning...(select****)//子查询的分类按照子查询返回的条目数,分为:单行子查询和多行子查询--单行子查询只能用单行比较操作符(=)--多行子查询只能用多行比较操作符(inanyall)按照子查询和主查询的执行顺序来分一般子子查询子查询把结果返回给主查询....一般相关子查询主查询把select列中的参数传递给子查询子查询返回空值的问题子查询中一般不使用orderby,但是Top-N问题,子查询必须要用orderbyeg:求工资的前三名分页....M子查询结果集一般不排序,Top-N问题除外解释3-eg查询部门名称是SALES的员工信息分析思路:因为SALES在部门表中,,查找部门表,才能获取部门编号,.....===>员工信息//子查询select*fromempwheredeptno=(selectdeptnofromdeptwheredname='SALES')//多表查询selecte.*fromempe,deptdwheree.deptno=d.deptnoandd.dname='SALES'SQL优化select*selecta,b,c,from....//效率高//多表查询效率高解释4-1selectempno,ename,sysdate,'ddddd',(selectdnamefromdeptwheredeptno=10)十号部门名称fromempselectempno,ename,sysdate,'ddddd',(selectdnamefromdept)十号部门名称fromemp第1行出现错误:ORA-01427:单行子查询返回多个行解释4-2---from是一个集合,tab表本身就是I个集合selecta,b,c,from(select*......)//ok//在select后面的子查询必须是单行子查询查询员工名字编号select*from___________________select*from(selectempno,enamefromemp)解释5-1--单行子查询只能用单行比较操作符(=)pptselect*fromempwheresal>(selectsalfromempwhereename='SCOTT')解释5-2多行子查询多行比较操作符in--查询部门名称为SALES和ACCOUNTING的员工信息--查询部门名称为不是SALES和ACCOUNTING的员工信息select*fromempwheredeptnoin(selectdeptnofromdeptwheredname='SALES'ordname='ACCOUNTING')select*fromempwheredeptnonotin(selectdeptnofromdeptwheredname='SALES'ordname='ACCOUNTING')allany--查询薪水比30号部门所有员工薪高的员工信息allselect*fromempwheresal>(selectmax(sal)fromempwheredeptno=30)select*fromempwheresal>all(selectsalfromempwheredeptno=30)--大于这个集合的最大值就可以--查询薪水比30号部门任意一个员工薪高的员工信息select*fromempwheresal>(selectmin(sal)fromempwheredeptno=30)select*fromempwheresal>any(selectsalfromempwheredeptno=30)--大于这个集合的最小值就可以--any/all的运算
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

黑马程序员c语言教程:子查询简介

文档大小:23KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用