自学--数据库笔记--第六篇--子查询
来源:互联网 发布:淘宝上架时间设置 编辑:程序博客网 时间:2024/05/12 11:22
数据库笔记—6—子查询
所有使用的都为已制作好的表
1.
--1.含in谓词的子查询--基于单表的含in谓词的子查询 查询职工号与001进行过相同培训的职工号select wid --查询谁和001进行了相同培训from studywhere wid <> '001' and study_id in( --查询001职工进行了那些培训select study_idfrom studywhere wid = '001')--基于多表的含in谓词的子查询 查询职工号与001进行过相同培训的姓名select wname --查询姓名from workerwhere wid in(select wid --查询谁和001进行了相同培训from studywhere wid <> '001' and study_id in( --查询001职工进行了那些培训select study_idfrom studywhere wid = '001'))
2.
--2.含比较运算符的子查询--单独使用比较运算符的子查询 查询2011年1月的实发工资低于平均实发工资的姓名和职工号select wname,widfrom workerwhere wid in(select widfrom salarywhere YEAR(sdate) = 2011 and MONTH(sdate) = 1 and actualsalary <(select AVG(actualsalary)from salarywhere YEAR(sdate) = 2011 and MONTH(sdate) = 1))--与any或all同时使用的子查询 查询比职工号为1的职工年龄都小的职工姓名和出生年月select wname,wbirthdatefrom workerwhere wbirthdate> all --all为比多个数据都小的(select wbirthdatefrom workerwhere depid = '1')select wname,wbirthdatefrom workerwhere wbirthdate> any --any为比任意一个数据小的(select wbirthdatefrom workerwhere depid = '1')--等价的多表连接查询 显示最高工资的职工所在的部门名select dname as 部门名 --得到部门名from departwhere did =(select depid --得到部门号from workerwhere wid=(select wid --得到职工号from salarywhere totalsalary =(select MAX(totalsalary) --得到最高工资from salary)))--等价的多表连接查询select dname as 部门名 --得到部门名from depart inner join worker on worker.depid = depart.did inner join salary on worker.wid = salary.widwhere totalsalary =(select MAX(totalsalary) --得到最高工资from salary)
3.
--3.子查询代替表达式--显示所有职工的职工号,姓名和平均工资 聚集函数select worker.wid,wname,AVG(totalsalary) as 平均工资from worker inner join salary on worker.wid = salary.widgroup by worker.wid,wname--与上一个等价的SQL语句 利用子查询select wid,wname,(select AVG(totalsalary) from salary where worker.wid = salary.wid) as 平均工资from worker
4.
--4.exists谓词子查询--存在测试 查询所有进行过岗前培训的职工号和职工姓名select wid,wnamefrom workerwhere exists(select *from studywhere worker.wid = study.wid and study_name = '岗前培训')--不存在测试 查询所有未进行过岗前培训的职工号和职工姓名select wid,wnamefrom workerwhere not exists(select *from studywhere worker.wid = study.wid and study_name = '岗前培训')
0 0
- 自学--数据库笔记--第六篇--子查询
- 自学--数据库笔记--第二篇--基本查询
- 自学--数据库笔记--第三篇--附加子句查询
- 自学--数据库笔记--第四篇--多表连接查询
- yii数据库查询自学笔记--命名空间
- MySQL 自学笔记之:数据库查询 DQL(Data Query Lanuage)数据分类(where 子语句)
- MySQL自学笔记4--where、from、exists型子查询
- MySQL 第六篇:索引与子查询
- IOS自学第六篇
- Oracle数据库 -- 子查询篇
- 数据库自学笔记1
- 数据库自学笔记
- 【PHP自学笔记】第六章 Web技术
- MySQL 自学笔记之:数据库查询 DQL(Data Query Lanuage)基本查询
- 《Oracle Database 11g SQL 开发指南》学习笔记——第六章__子查询
- mysql 数据库学习笔记 3 外键 和 select 子查询
- msyql数据库 子查询
- 数据库中的子查询。
- 罗尔:罗一笑病情已得到控制 感谢批评自己的人
- POJ 1049 Microprocessor Simulation 已被翻译
- 如何找到一个栈中的最小值
- Java命名规则
- mysql操作命令(一)
- 自学--数据库笔记--第六篇--子查询
- STL vector用法介绍
- 反向代理教程篇:Web服务器的 “经纪人”
- 开始买了几本家书读
- PX4log 日志文件分析
- 微机个人笔记-存储单元编址
- 关于jvm分析的指令以及jprofiler的初体验
- Android插件化开发之Hook StartActivity方法
- QImage的显示