数据库作业7:SQL练习4 - SELECT(连接查询、嵌套查询)
[例 3.49] 查询每个学生及其选修课程的情况
SELECT Student., SC.
FROM Student, SC
WHERE Student.Sno = SC.Sno;
通过学生的学号将Student表与SC表连接起来。
[例 3.50] 对[例 3.49]用自然连接完成
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno = SC.Sno;
省去了一列学号,表确实美观了许多。
[例 3.51 ]查询选修2号课程且成绩在90分以上的所有学生的学号和姓名。
SELECT Student.Sno, Sname
FROM Student, SC
WHERE Student.Sno=SC.Sno AND
SC.Cno=’ 2 ’ AND SC.Grade>90;
在SC中找Cno=2和Grade>90组成个关系再连接Student中满足关系的元组。
[例 3.52]查询每一门课的间接先修课
SELECT FIRST.Cno, SECOND.Cpno
FROM Course FIRST, Course SECOND
WHERE FIRST.Cpno = SECOND.Cno;
表里面有3号课,它的对应先行课是2号课,2号的先行课为1号课,则1号就是3号的间接先行课。
[例 3. 53] 改写[例 3.49]
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student LEFT OUT JOIN SC ON (Student.Sno=SC.Sno);
内容为空的数据显示出来了,这是因为外连接的关系。
[例3.54]查询每个学生的学号、姓名、选修的课程名及成绩
SELECT Student.Sno, Sname, Cname, Grade
FROM Student, SC, Course /多表连接/
WHERE Student.Sno = SC.Sno
AND SC.Cno = Course.Cno;
老生常谈,没有异常。
[例 3.55] 查询与“刘晨”在同一个系学习的学生。
1、SELECT Sdept
FROM Student
WHERE Sname= ’ 刘晨 ';
2、SELECT Sno, Sname, Sdept
FROM Student
WHERE Sdept= ’ CS ';
将第一步嵌入到第二步查询的条件中:
SELECT Sno, Sname, Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept
FROM Student
WHERE Sname= ’ 刘晨 ');
[例 3.56]查询选修了课程名为“信息系统”的学生学号和姓名
SELECT Sno,Sname
FROM Student
WHERE Sno IN
(SELECT Sno
FROM SC
WHERE Cno IN
(SELECT Cno
FROM Course
WHERE Cname= ‘信息系统’
)
);
1、Course表中找到信息系统的课程号;
2、在SC表中找到选了3的学生学号;
3、在Student表中找到对应的学生学号和姓名。
[例 3.57 ]找出每个学生超过他选修课程平均成绩的课程号。
SELECT Sno, Cno
FROM SC x
WHERE Grade >=(SELECT AVG(Grade)
FROM SC y
WHERE y.Sno=x.Sno);
带有ANY(SOME)或ALL谓词的子查询
使用ANY或ALL谓词时必须同时使用比较运算
语义为:
ANY 大于子查询结果中的某个值
ALL 大于子查询结果中的所有值
< ANY 小于子查询结果中的某个值
< ALL 小于子查询结果中的所有值
= ANY 大于等于子查询结果中的某个值
= ALL 大于等于子查询结果中的所有值
[例 3.58] 查询非计算机科学系中比计算机科学系任意一个学生年龄小的学生姓名和年龄
SELECT Sname,Sage
FROM Student
WHERE Sage < ANY (SELECT Sage
FROM Student
WHERE Sdept= ’ CS ')
AND Sdept <> ‘CS ’ ; /*注意这是父查询块中的条件 */
[例 3.59] 查询非计算机科学系中比计算机科学系所有学生年龄都小的学生姓名及年龄。
两种方法:
SELECT Sname,Sage
FROM Student
WHERE Sage < ALL
(SELECT Sage
FROM Student
WHERE Sdept= ’ CS ')
AND Sdept <> ’ CS ’;
SELECT Sname,Sage
FROM Student
WHERE Sage <
(SELECT MIN(Sage)
FROM Student
WHERE Sdept= ’ CS ‘)
AND Sdept <>’ CS ';
分别是使用了ALL谓词和聚集函数
数据库作业7:SQL练习4 - SELECT(连接查询、嵌套查询)相关推荐
- 数据库作业:SQL练习3 - SELECT(单表查询)
这是一些单表查询的例题的练习. [3.29] SELECT * FROM Student WHERE Sno LIKE '201215121'; 等价于: SELECT * FROM Student ...
- 数据库作业:SQL练习4 - SELECT(连接查询、嵌套查询)
学习了连接查询和嵌套查询. 今天启动SQL server,显示无法连接到服务器,重新打开软件还是一样,后来通过搜索重新启动了SQL server的服务,就可以了. 此电脑右键-管理-展开服务与应用程序 ...
- 数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中)
数据库SQL语言学习--上机练习2(连接查询 嵌套查询)(持续更新中) 上机练习2 1. 启动SQL Server 2008中的 SQL Server Management ...
- 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询
目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...
- sql 子查询 嵌套查询_SQL子查询– SQL中的嵌套查询
sql 子查询 嵌套查询 In the real world, there are times when we need a particular set of data but we don't h ...
- 连接查询--嵌套查询
连接查询–嵌套查询 一.单层嵌套查询 嵌套查询分为相关嵌套查询.不相关嵌套查询.区分条件是分离之后是否可以单独查询. 不相关嵌套查询:由里向外查询,先执行子查询,得到的结果用来构造外部查询的条件.子查 ...
- 数据库实验之《表的连接和嵌套查询》
表的连接&嵌套查询 实验目的 熟练掌握Mysql查询方法,加深对SQL语言查询语句的理解. 掌握多表的连接查询与嵌套查询语句的正确写法和实验操作方法. 实验环境 Windows10,MySQL ...
- mysql连接与嵌套查询_数据库之嵌套查询与连接查询
嵌套查询 单值嵌套查询 值返回结果是一个值的嵌套查询称为单值嵌套查询 对Sales数据库,列出市场部的所有员工的编号 USE Sale GO SELECT employee_id FROM emplo ...
- mysql连接与嵌套查询_数据库的连接查询和嵌套查询怎么做啊?
4. select 订货单号,进货量 from 商品表,订货表 where 商品表.商品编号=订货表.商品编号 and 商品名称='螺母' 5. select 订货单号,进货价格 from 商品表,订 ...
- SQL service基础(五)嵌套查询(UNION、EXCEPT、INTERSECT)
实验目标: 1.掌握嵌套查询,从而增强SQL的查询能力 2.掌握UNION.EXCEPT.INTERSECT操作符将来自不同查询但结构相同的数据集合组合起来,形成一个具有综合信息的查询结果 sql脚本 ...
最新文章
- Java gdal .mif/.mid文件读取
- laydate 使用
- Android:学习AIDL,这一篇文章就够了(下)
- 【控制】蚁群算法(ACO,Ant Colony Optimization)及 Matlab 实现
- Oracle EBS-SQL (QA-1):检查超出检验周期的检验数据.sql
- ORACLE 外部表的简单使用
- springmvc 组合注解
- 用一句话解释什么是装饰器
- php soap详解,关于PHP+SOAP详解
- error LNK2001: 无法解析的外部符号 _IID_IDirectDraw7
- eXtremeComponents 中文参考文档
- html怎么画表格边框,WEB 制作1px边框表格的几种方法
- Electron入门宝典(三)菜单快捷键
- Java初学者使用Scanner通过键盘输入学生成绩,并使用while循环实现重复输入,计算成绩的平均分及优秀率等
- 关于android各平台上架心得
- HDU-1425 排序
- OpenCV笔记11:利用HSV颜色空间进行目标检测和目标跟踪
- Vue全家桶:Vuex
- 8串口服务器芯片,8口串口服务器,串口转网口,485转以太网,232转以太网,422转网络...
- OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields 论文精读
热门文章
- 深度学习backbone是什么意思_股票强势是什么意思,股票强势特征和如何分析_股票学习...
- java计算机毕业设计旅游景点展示平台的设计与实现源程序+mysql+系统+lw文档+远程调试
- 怎么用html写一个学校代码,[代码学校]简单实用的HTML代码分享_格桑梅朵_天涯部落_天涯社区...
- Ajax实现网页部分更新
- 一位25岁的董事长给大学生的18条忠告
- 文华财经是C语言编程吗,各位大神们,帮我把这指标改下,文华财经里不能用...
- 理解“像元”、“波段”与“通道”
- Revers root
- 解决ubuntu18.04中文乱码问题
- 提取图像的骨架(Skeleton)算法