完整表格见博文:https://blog.csdn.net/weixin_44410704/article/details/118252624

一、实验目的

1、掌握Select语句的基本语法;
2、掌握连接查询的表示和使用方法;
3、掌握子查询的表示和使用方法。

二、实验准备

1、理解Select语句的基本语法格式和执行方法;
2、理解连接查询的表示;
3、理解子查询的表示方法。

三、实验内容

基于Student_DB 数据库中的三个表Student,Course,SC,进行如下的查询:
(给出查询语句及结果截图)
(1) 查询每个学生及其选修课情况。
(2) 查询每个学生的学号、姓名、选修的课程及成绩。
(3) 查询每个学生的平均成绩,包括学号和平均成绩两列,结果按学号升序排。
(4) 查询选修了2 号课程且成绩在80 分以上的学生姓名,年龄。
(5) 查询选修了课程名为“操作系统”的学生学号和姓名。
(6) 查询与“王敏”在同一个系学习的学生。(用IN 嵌套实现)
(7) 查询各班各门课的平均成绩,包括学号、课程号和平均成绩三列,结果先按学号升序排,学号一样的再按课程号升序排。
(8) 查询其它系中比信息系某一学生年龄大(age>20)的学生姓名和年龄。
(9) 查询选修了课程1 或者选修了课程2 的学生。
(10) 求没有选修2 号课程的学生姓名。
(11) 查询选修课程1 的学生集合与选修课程2 的学生集合的交集。
(12) 查询信息系的学生与年龄不大于19 岁的学生的差集。

四、实验代码及运行结果截图

--(1) 查询每个学生及其选修课情况。
SELECT STUDENT.*,SC.*FROM STUDENT,SCWHERE STUDENT.SNO = SC.SNO;

--(2) 查询每个学生的学号、姓名、选修的课程及成绩。
SELECT STUDENT.SNO,SNAME,CNAME,GRADEFROM STUDENT,SC,COURSEWHERE STUDENT.SNO = SC.SNOAND SC.CNO = COURSE.CNO;

--(3) 查询每个学生的平均成绩,包括学号和平均成绩两列,结果按学号升序排。
SELECT STUDENT.SNO,AVG(GRADE) AS 'AVG_GRADE'FROM STUDENT,SCWHERE STUDENT.SNO = SC.SNOGROUP BY STUDENT.SNOORDER BY STUDENT.SNO

--(4) 查询选修了2 号课程且成绩在80 分以上的学生姓名,年龄。
SELECT DISTINCT SNAME,SAGEFROM STUDENT,SCWHERE STUDENT.SNO = SC.SNOAND CNO = 2AND GRADE>80

--(5) 查询选修了课程名为“操作系统”的学生学号和姓名。
--INSERT INTO SC VALUES('201215122','4','90')
SELECT STUDENT.SNO,SNAMEFROM STUDENT,SC,COURSEWHERE STUDENT.SNO = SC.SNOAND COURSE.CNO = SC.CNOAND COURSE.CNAME = '操作系统';

--(6) 查询与“王敏”在同一个系学习的学生。(用IN 嵌套实现)
SELECT SNO,SNAME,SDEPTFROM STUDENTWHERE SDEPT IN (SELECT SDEPTFROM STUDENTWHERE SNAME = '王敏')

--(7) 查询各门课的平均成绩,包括学号、课程号和平均成绩三列,结果先按学号升
--序排,学号一样的再按课程号升序排。
--CASE1
SELECT SC.SNO,SC.CNO,AVG(GRADE) AS AVERAGEFROM STUDENT,SCWHERE STUDENT.SNO = SC.SNOGROUP BY SC.SNO,SC.CNOORDER BY SC.SNO,SC.CNO


--CASE2
SELECT SC.CNO,AVG(GRADE) AS 'AVG_GRADE'FROM SCGROUP BY SC.CNO

--(8) 查询其它系中比信息系某一学生年龄大(age>20)的学生姓名和年龄。
SELECT SNAME,SAGEFROM STUDENTWHERE SDEPT <> 'IS' AND SAGE>(SELECT MIN(SAGE)FROM STUDENTWHERE SDEPT='IS')

--(9) 查询选修了课程1 或者选修了课程2 的学生。
SELECT DISTINCT SNO FROM SC WHERE SC.CNO = '1' OR SC.CNO = '2'

--(10) 求没有选修2 号课程的学生姓名。
SELECT DISTINCT SNAMEFROM STUDENTWHERE STUDENT.SNO NOT IN(SELECT DISTINCT SC.SNOFROM SCWHERE SC.CNO = '2')

--(11) 查询选修课程1 的学生集合与选修课程2 的学生集合的交集。
SELECT SC.SNO FROM SC WHERE SC.CNO ='1'
INTERSECT
SELECT SC.SNO FROM SC
WHERE SC.CNO = '2'

--(12) 查询年龄不大于19 岁的学生与信息系的学生的差集。
SELECT *FROM StudentWHERE Sage<=19
EXCEPT
SELECT *FROM StudentWHERE Sdept= 'IS'

SQL Server 数据库多表查询相关推荐

  1. SQL server 数据库单表查询前n%行

    use EMIS go select top 10 percent * from t_course_reg go

  2. SQL Server 数据库词汇表

    SQL Server 数据库词汇表 词汇 词义 Activation 激活 ActiveX Data Objects(ADO) ActiveX 数据对象 ActiveX Data Objects(Mu ...

  3. delphi使用MS Sql Server数据库的分布式查询

    目录 delphi使用MS Sql Server数据库的分布式查询 一.链接服务器 1.1.简单的链接服务器 1.2.含多数据库架构的全链接服务器 1.3.链接服务器的理论与总结 语法: 参数: 本系 ...

  4. MS Sql Server 数据库或表修复(DBCC CHECKDB)

    MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令.  1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL ...

  5. Sql Server数据库实现表中字段的列加密研究

    1.问题描述 去年6月份的时候做过一个系统,要对里面的一些敏感字段进行一下加密.Sqlserver列加密可以参考官方文档:SQL Server 技术文档 - SQL Server | Microsof ...

  6. 查看MS SQL Server数据库每个表占用的空间大小

    参数说明见:http://msdn.microsoft.com/zh-cn/library/ms188776.aspx create table #t(name varchar(255), rows ...

  7. SQL Server数据库建表

    在SQL Server Management Studio的对象资源管理器中创建表 在想要新建表的数据库下面,选中"表"右键-->"新建表"-->为 ...

  8. SQL Server数据库建表以及使用方法

    一 , 连接数据库引擎. 二 ,身份验证选择windows或者SQL Server身份验证连接. 三,选择数据库,新建数据库. 四, 输入 数据库名称,下面初始大小,自动增长,路径可以更改, 假设该数 ...

  9. SQL Server数据库的T-SQL查询语句

    一.SQL简介 在进行数据管理时,使用SSMS进行数据维护有可视化.方便的优点,但是在批量维护或重复维护数据时,每次都需要使用SSMS不但不方便,而且容易出错.通过编写SQL语句来维护数据库便于解决重 ...

最新文章

  1. 如何团队协作,代码托管?Git使用教程:最详细、最浅显、一文读懂Git常用操作!...
  2. 解决ecilpse插件安装速度变得很慢
  3. Collections.sort()自定义排序方式
  4. python123期末测试第十周答案_Python语言设计_章节测验,期末考试,慕课答案查询公众号...
  5. Tkinter模块常用参数(python3)
  6. SAP Spartacus Org unit detail实例的单例特性
  7. c# list集合根据某个字段去重_java8 List 根据对象某个字段或多个字段去重、筛选、List转Map、排序、分组、统计计数等等...
  8. NOIP201501金币
  9. 苹果iOS 11.3.1正式发布,修复iPhone 8触屏bug
  10. spring mvc 解决csrf跨站请求攻击
  11. Win10下连接树莓派ZeroW(附win10虚拟网卡驱动下载)
  12. npoi 删除多行 操作excel_使用NPOI导出Excel ICell调用过剩 内存溢出
  13. strtolower
  14. prometheus-community-PushProx介绍
  15. 计算机专业答辩系统抄袭怎么办,计算机毕业设计答辩怎么老是不过?
  16. 抖音短视频运营借势热点:有哪些热点渠道,有哪些热点改编的套路。
  17. 关于:File.separator ( 详解 )
  18. 实现图的邻接矩阵和邻接表存储
  19. 【bzoj1040】【ZJOI2008】【骑士】
  20. 1天1瓶啤酒 大脑衰老2年

热门文章

  1. SecureRandom-随机数的生成
  2. 牛刀小试MySQL--基于GTID的replication
  3. LeetCode(40):组合总和 II
  4. hibernate访问效率相关
  5. PAT乙级(1007 素数对猜想)
  6. 贵州2021高考状元成绩查询,2021年贵州高考状元名单公布,贵州高考状元学校资料及最高分...
  7. “我的国产数据库之路”征文活动——专访优秀作者彭冲
  8. SQL执行效率提升几万倍的操作详解!
  9. 一文了解GaussDB 200的产品架构、数据流程、组网方案、服务部署原则、企业级增强特性......
  10. JS对象拷贝:深拷贝和浅拷贝