SQL Server-【知识与实战IV】多表查询、个数计算、多重约束条件、两表间的交集、多表之间的关系分析
文章目录
- 一丶 题目&答案
- 二丶 所有表的结构
- 班级:
- 管理员:
- 教师:
- 教师任课:
- 教学计划:
- 课程:
- 课程类型:
- 课程收费:
- 课程注册:
- 系部:
- 学籍状态:
- 学生:
- 专业:
一丶 题目&答案
【1】查询15级网络技术301班所有姓陈的男同学的信息
USE EMIS5
GOselect 班级代码 from 班级 where 班级名称='15级网络技术301班' //通过班级名称找到班级代码select * from 学生
where 班级代码 in(select 班级代码 from 班级 where 班级代码='15级网络技术301班')and 姓名 like '陈%' and 性别='男'
go
【2】查询每个班的男女生各有多少人
select 班级代码,性别,count(*) as 总人数 from 学生 group by 性别,班级代码
【3】查询平均分大于80分的学生的学号、姓名和班级名称信息
select 学号 from 课程注册 group by 学号 having avg(成绩)>80 //平均分大于80分学生学号select 学号,姓名,班级名称 from 学生 inner join 班级 on 学生.班级代码=班级.班级代码and 学号 in(select 学号 from 课程注册 group by 学号 having avg(成绩>80))
go
【4】查询大学英语成绩前三名的同学的学号,姓名以及所在系部名称
//先找到大学英语成绩排名前三的学生学号
select top 3 学号 from 课程注册 inner join 课程 on 课程注册.课程号=课程.课程号 and 课程名称='大学英语'
select 学号,姓名,系部名称
from 学生 inner join 班级 on 学生.班级代码=班级.班级代码inner join 专业 on 专业.专业代码=班级.专业代码inner join 系部 on 系部.系部代码=专业.系部代码
where 学号 in(select top 3 学号 from 课程注册 inner join 课程on 课程注册.课程号=课程.课程号 and 课程名称='大学英语' order by 成绩 DESC)
go
思路
1、先在课程注册表中通过课程号关联课程表中的课程号,找到匹配的同一行,然后就可以知道它的课程名称是否为大学英语。
2. 然后再通过成绩找到前三名同学,约束条件是大学英语,而且要倒序从高到低排
3. 找到了这三名学生后,就可以在课程注册表中确定他们三位的学号,再进入到学生表中拿到他们的班级代码。
4. ,通过学生表的班级代码与班级表的班级代码,找到他们的专业代码,拿到他们的系部代码
5. 通过专业表的系部代码与系部的系部代码,就可以找到他们的系部名称。
【5】查询只有一门课程不及格的同学的最高分、最低分及平均分信息
//查询只有一门课程不及格的学生学号
select 学号 from 课程注册 where 成绩<=60 group by 学号 having count(成绩)=1select 学号,max(成绩) as 最高分,min(成绩) as 最低分,avg(成绩) from 课程注册where 学号 in(select 学号 from 课程注册 where 成绩<60 group by 学号 having count(成绩)=1)group by 学号
go
二丶 所有表的结构
班级:
管理员:
教师:
教师任课:
教学计划:
课程:
课程类型:
课程收费:
课程注册:
系部:
学籍状态:
学生:
专业:
SQL Server-【知识与实战IV】多表查询、个数计算、多重约束条件、两表间的交集、多表之间的关系分析相关推荐
- Sql Server 知识
1 1, 2 打开关系图 3 alter authorization on database:: dataname to sa 4 2. 5 check约束 6 例:列名 like '%@%' 对 ...
- 【淘宝ERP-资料收集】C# 类型 对应 SQLserver类型:SQL SERVER(项目实战)
Sale数据库 --(创建数据库) --创建名为Sale的销售数据库.该数据表有一个名为Sale.mdf的主数据文件和名字为Sale_log.ldf的事务日志文件. --主数据文件容量为4MB,事务日 ...
- sql server 数据分析优化实战(一)——SQL语句优化
前言 在我们进行数据分析的时候,首要的目标是根据业务逻辑,通过编写SQL代码得到我们想要的结果,这是毋庸置疑的.一般情况下,由于我们分析的数据量比较少,体会不出SQL语句各种写法的性能优劣,对SQL代 ...
- 学习如何看懂SQL Server执行计划(三)——连接查询篇
三.连接查询部分 --------------------嵌套循环-------------------- /* UserInfo表数据少.Coupon表数据多 嵌套循环可以理解为就是两层For循环, ...
- 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询
文章目录 前言 一.SELECT 子句 (一)投影指定的列和投影全部列 (二)AS子句修改查询结构的列标题 例题1 (三)TOP谓词限制结果集中的行数 (四)INTO子句将结果插入新表中 例题2 (五 ...
- SQL Server 调优系列基础篇 - 子查询运算总结
前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...
- 浅析 SQL Server 的 CROSS APPLY 和 OUTER APPLY 查询 - 第一部分
第一部分:APPLY 与 JOIN 你可能知道,SQL Server 中的 JOIN 操作用于联接两个或多个表.但是,在 SQL Server 中,JOIN 操作不能用于将表与表值函数的输出联接起来. ...
- 数据库原理与应用(SQL Server)笔记 第三章 连接查询
目录 前言 一.连接谓词 二.JOIN连接 (一)内连接 (二)外连接 (三)交叉连接 总结 前言 本次内容,我们主要掌握数据库的多表查询,即通过两个表及两个以上的表之间的逻辑关系进行检索,将通过连接 ...
- SQL Server 2012导入Excel文件时 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
问题 在使用Microsoft SQL Server 2012 的SSMS 时,向数据库导入Excel数据,报错 "未在本地计算机上注册"Microsoft.ACE.OLEDB.1 ...
- 【SQL Server】系统学习之三:逻辑查询处理阶段-六段式
一.From阶段 针对连接说明: 1.笛卡尔积 2.on筛选器 插播:unknown=not unknuwn 缺失的值: 筛选器(on where having)把unknown当做FALSE处理,排 ...
最新文章
- 学python是什么专业-小白学python是自学好,还是专业老师培训好?
- [推荐] 创业者要留意优先清算权
- laravel 文件上传
- 基于Qt\C++实现的网络远程控制系统
- linux有关网络服务的接口,linux系统有关网络服务接口定义是哪个?
- java jdbc 连接mysql数据库,Java 通过JDBC连接Mysql数据库
- IAR 编译时找不到头文件的解决方法
- 计算机如何寻找ppt文件,如何快速找到电脑里的文件ppt课件
- 一种基于Android、iOS系统的移动端身份证识别技术,手机拍照扫描识别
- 统计 fastq 文件 q20 , GC 含量的软件
- 怎样将图片上文字转换成word文字
- SQLServer之修改PRIMARY KEY
- 共享服务器文件溢出,文件共享软件Samaba中发现缓冲区溢出漏洞
- 列表块元素 ul和ol
- 在Python中画炫酷的K线图
- 20:关于x++和++x的用法
- 制作Win10系统安装U盘,安装纯净版Win10的通用教程
- Oracle 官方学习oracle
- i9 9900k和i9 9900ks有什么区别
- CPT模型:一种中文兼顾NLU和NLG的非平衡预训练语言模型
热门文章
- apache的源代码编译安装
- 小白写linux环境下的定时监测
- 有人认为,“中文编程”是解决中国程序员效率的秘密武器,请问它是一个“银弹”么?...
- J2EE项目中异常处理
- HDOJ 2147 HDU 2147 kiki's game ACM 2147 IN HDU
- 代码的自动生成...
- 数据结构与算法 第二章 数据结构中的线性结构
- keras 的层,中文
- 分享各类AI资源,算法干货,我们是认真的!(附最全AI资源分享)
- 机器学习4-朴素贝叶斯