SQL server 数据库练习题及答案(练习2)

news2025/2/4 10:35:00

使用你的名字创建一个数据库

创建表:

数据库中有三张表,分别为student,course,SC(即学生表,课程表,选课表)

问题:

--1.分别查询学生表和学生修课表中的全部数据。
--2.查询成绩在7080分之间的学生的学号、课程号和成绩。
--3查询C01号课程成绩最高的分数
--4.查询学生都选修了哪些课程,要求列出课程号。
--8.查询修了C02号课程的所有学生的平均成绩、最高成绩和最低成绩。
--9.统计每个系的学生人数。
--10.统计每门课程的修课人数和考试最高分。
--11.统计每个学生的选课门数,并按选课门数的递增顺序显示结果。
--12.统计选修课的学生总数和考试的平均成绩。
--13.查询选课门数超过2门的学生的平均成绩和选课门数。
--14.列出总成绩超过200分的学生,要求列出学号、总成绩。
--16.查询选修了VB号课程的学生的姓名和所在系。
--17.查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩的降序排列结果。
--18.查询计算机系男生修了"数据库基础"的学生的姓名、性别、成绩。
--19.查询哪些学生的年龄相同,要求列出年龄相同的学生的姓名和年龄。
--20.查询哪些课程没有人选,要求列出课程号和课程名。
--21.查询有考试成绩的所有学生的姓名、修课名称及考试成绩
--22.分别查询信息系和计算机系的学生的姓名、性别、修课名称、修课成绩,并要求将这两个查询结果合并成一个结果集,并以系名、姓名、性别、修课名称、修课成绩的顺序显示各列。
--//此题用到了并union查询

--23.用子查询实现如下查询:
--(1)    
查询选修了C01号课程的学生的姓名和所在系。
--(2)    查询数学系成绩80分以上的学生的学号、姓名。
--(3)    查询计算机系学生所选的课程名.
--24.
将计算机系成绩高于80分的学生的修课情况插入到另一张表中,分两种情况实现:
--(1)    在插入数据过程中建表。
--(2)    先建一个新表,然后再插入数据。
--25.删除修课成绩小于50分的学生的修课记录
--26.将所有选修了"c01"课程的学生的成绩加10分。

答案:

/*创建数据库*/
create database gaohongyuan
on primary 
(name="gaohongyuan_data",
filename="c:\gao\gaohongyuan_data.mdf", 
size=8MB,
maxsize=100MB, 
filegrowth=10%) 
log on 
(name="gaohongyuan_log.ldf", 
filename="c:\gao\gaohongyuan_log.ldf", 
size=1MB, 
filegrowth=10%)

use gaohongyuan/*切换数据库*/

/*创建学生表*/
create table student(
Sno varchar(20) primary key not null,
Sname varchar(32) not null,
Ssex varchar(2) default('男'),
Sage int check(Sage>=0 and Sage<=100),
Sdept varchar(32) not null
)
go
/*创建课程表*/
create table course(
Cno varchar(20) primary key not null,
Cname varchar(32) unique not null,
Hours int check(Hours>0) not null
)
go
/*创建选课表*/
create table SC(
Sno varchar(20) references student(Sno),
Cno varchar(20) references course(Cno),
Grade int check(Grade>=0 and Grade<=100) null
)
go
/*插入数据*/
select * from student/*查询语句*/
insert student values
('9512101','李勇','男',19,'计算机系'),
('9512102','刘晨','男',20,'计算机系'),
('9512103','王敏','女',20,'计算机系'),
('9521101','张立','男',22,'信息系'),
('9521102','吴宾','女',21,'信息系'),
('9521103','张海','男',20,'信息系'),
('9531101','钱小力','女',18,'数学系'),
('9531102','王大力','男',19,'数学系')
go
select * from course/*查询语句*/
insert course values
('C01','计算机文化学',70),
('C02','VB',90),
('C03','计算机网络',80),
('C04','数据库基础',108),
('C05','高等数学',180),
('C06','数据结构',72)
go
select * from SC/*查询语句*/
insert SC(Sno,Cno,Grade) values
('9512101','C01',90),
('9512101','C02',86),
('9512101','C06',null),
('9512102','C02',78),
('9512102','C04',66),
('9512102','C01',82),
('9512102','C02',75),
('9512102','C04',92),
('9512102','C05',50),
('9521103','C02',68),
('9521103','C06',null),
('9531101','C01',80),
('9531101','C05',95),
('9531102','C05',85)
go

--1
select * from student
select * from SC
select * from course
--2
select Sno 学号,Cno 课程号,Grade 成绩 from SC where Grade between 70 and 80
--3
select Cno,max(Grade) from SC where Cno='C01' group by Cno
--4
select Sname,Cname,co.Cno from student st join SC on st.Sno=SC.Sno join course co on co.Cno=SC.Cno 
--8
select Sname 姓名,avg(Grade) 平均分,max(Grade) 最高分,min(Grade) 最低分 from student st join SC on st.Sno=Sc.Sno where Cno='C02' group by Sname
--9
select Sdept,count(Sdept) from student group by Sdept
--10
select Cname,count(SC.Cno),max(Grade) from SC join course co on SC.Cno=co.Cno group by Cname
--11
select Sname,count(SC.Cno) from student st join SC on SC.Sno=st.Sno group by Sname order by count(SC.Cno) asc
--12
select count(distinct Sno),avg(Grade) from SC 
--13
select Sname,avg(Grade),count(SC.Cno) from student st join SC on SC.Sno=st.Sno join course co on SC.Cno=co.Cno group by Sname having count(SC.Cno)>=2
--14
select Sno,sum(Grade) from SC group by Sno having sum(Grade)>200
--16
select Sname,Sdept,SC.Cno,Cname from student st join SC on st.Sno=SC.Sno join course co on co.Cno=SC.Cno where Cname='VB'
--17
select Sname,SC.Cno,Grade from student st join SC on st.Sno=SC.Sno order by Grade desc
--18
select Sname,Ssex,Cname,Grade from student st join SC on st.Sno=SC.SNo join course co on co.Cno=SC.Cno where Cname='数据库基础'
--19
select sname,sage from student where sage in (select Sage from student group by sage having count(Sage)>1)
--20
select distinct SC.Cno,Cname from SC left join course co on SC.Cno=co.Cno 
--21
select Sname,Cname,Grade from student st join SC on st.Sno=SC.Sno join course co on co.Cno=SC.Cno where Grade is not null
--22
select Sname 姓名,Ssex 性别,Cname 修课名称,Grade 修课成绩,Sdept 系别 from student st join SC on st.Sno=SC.Sno join course co on co.Cno=SC.Cno where Sdept='信息系'
union select Sname 姓名,Ssex 性别,Cname 修课名称,Grade 修课成绩,Sdept 系别 from student st join SC on st.Sno=SC.Sno join course co on co.Cno=SC.Cno where Sdept='计算机系'
--23
----1
select Sname,Sdept,Cno from student st join SC on st.Sno=SC.Sno where Cno='C01'
----2
select SC.Sno,Sname,Grade from student st join SC on st.Sno=SC.Sno where Grade>=80
----3
select Sname,Sdept,Cname from student st join SC on st.Sno=SC.Sno join course co on co.Cno=SC.Cno where Sdept='计算机系'
--24
----1
select * into SC1 from SC where Grade>80
select * from SC1
----2
create table SC2(
Sno varchar(20) references student(Sno),
Cno varchar(20) references course(Cno),
Grade int check(Grade>=0 and Grade<=100) null
)
insert into SC2 select * from SC where Grade>80
select * from SC2
--25
delete from SC where Grade<50
--26
update SC set Grade=Grade+10 where Cno='C01'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1337393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件操作(c)

1.文件分类&#xff1a;分为程序文件和数据文件 1.程序文件&#xff1a;源程序文件&#xff08;后缀.c&#xff09;,目标文件&#xff08;windows环境后缀.obj&#xff09;,可执行程序&#xff08;windows环境后缀.exe&#xff09; 2.数据文件&#xff1a;程序运行时读写的数据…

【MySQL】复合查询 | 内外连接

文章目录 一、MySQL复合查询基本查询回顾多表查询自连接子查询单行子查询多行子查询多列子查询在from子句中使用子查询合并查询 二、MySQL内外连接内连接外连接左外连接右外连接 一、MySQL复合查询 基本查询回顾 准备测试表 下面给出三张表&#xff0c;员工表&#xff08;emp&…

多重断言插件之pytest-assume的简单使用

背景&#xff1a; pytest-assume是Pytest框架的一个扩展&#xff0c;它允许在单个测试用例中多次断言。通常情况下&#xff0c;当一个断言失败时&#xff0c;测试会立即停止执行&#xff0c;而pytest-assume允许我 们继续执行剩余的断言&#xff0c;以便查看更多的失败信息。…

k8s集群通过helm部署skywalking

1、安装helm 下载脚本安装 ~# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 ~# chmod 700 get_helm.sh ~# ./get_helm.sh或者下载包进行安装 ~# wget https://get.helm.sh/helm-canary-linux-amd64.tar.gz ~# mv helm …

使用 Jekyll 构建你的网站 - 初入门

文章目录 一、Jekyll介绍二、Jekyll安装和启动2.1 配置Ruby环境1&#xff09;Windows2&#xff09;macOS 2.2 安装 Jekyll2.3 构建Jekyll项目2.4 启动 Jekyll 服务 三、Jekyll常用命令四、目录结构4.1 主要目录4.2 其他的约定目录 五、使用GitLink构建Jekyll博客5.1 生成Jekyll…

JAVA:JDK17新特性迈向更强大的编程体验

1、简述 随着技术的不断发展&#xff0c;Java语言也在不断演进&#xff0c;为开发者提供更强大、高效的编程体验。在JDK 17中&#xff0c;我们迎来了一系列引人注目的新特性&#xff0c;这些特性不仅使得Java更现代化&#xff0c;同时也进一步提升了开发效率和代码质量。本文将…

CleanMyMac X2024免费许可证及功能详细讲解

一些用户反映自己的CleanMyMac卸载不干净&#xff1f;你的卸载方式正确码&#xff1f;当你在Mac上安装使用CleanMyMac后&#xff0c;需要将软件卸载&#xff0c;你会使用怎样方法完成操作呢&#xff1f;小编今天主要讲解如何卸载CleanMyMac以及卸载这款软件时应该注意的事项。一…

OpenGL :LearnOpenGL笔记

glfw https://github.com/JoeyDeVries/LearnOpenGL/blob/master/src/1.getting_started/1.1.hello_window/hello_window.cpp #include <glad/glad.h>// 注: GLAD的include文件包含所需的OpenGL头文件(如GL/GL.h) &#xff0c;因此确保在其他需要OpenGL的头文件 (如GLFW…

【SQL经典题目】连续日期判断、同时在线人数、会话划分、间隔日期连续、日期交叉

【1.查询至少连续3天下单的用户】 思路1&#xff08;使用lead&#xff09;&#xff1a; distinct user_id,create_date去重&#xff0c;确保每个用户每天只有一条访问记录lead(create_date,2,‘9999-12-31’) over(partition by user_id order by create_date)根据用户分区&am…

【Unity游戏制作】游戏模型导入之前需要注意的三个基本点

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

使用Dependency Walker和Process Explorer排查瑞芯微工具软件RKPQTool.exe启动报错问题

目录 1、问题说明 2、使用Dependency Walker查看工具程序的库依赖关系 3、在可以运行的电脑上使用Process Explorer查看依赖的msvcr120.dll和msvcp120.dll库的路径 4、C/C运行时库介绍 5、可以下载安装VC_redist.x86.exe或VC_redist.x64.exe解决系统库缺失问题 C软件异常排…

【如何破坏单例模式(详解)】

✅如何破坏单例模式 &#x1f4a1;典型解析✅拓展知识仓✅反射破坏单例✅反序列化破坏单例✅ObjectlnputStream ✅总结✅如何避免单例被破坏✅ 避免反射破坏单例✅ 避免反序列化破坏单例 &#x1f4a1;典型解析 单例模式主要是通过把一个类的构造方法私有化&#xff0c;来避免重…

『JavaScript』全面掌握JavaScript数组的操作、方法与高级技巧

&#x1f4e3;读完这篇文章里你能收获到 学习JavaScript中数组的基本操作掌握JavaScript数组的多种内置方法了解JavaScript中的数组扩展运算符、Array.from()和Array.of()等实用技巧熟悉如何在JavaScript中使用数组方法进行数据处理 文章目录 一、基本操作1. 创建数组2. 访问和…

Python 高级(三):多线程 threading

大家好&#xff0c;我是水滴~~ 在Python中&#xff0c;threading模块提供了一种简单而强大的方式来进行多线程编程。多线程可以同时执行多个任务&#xff0c;使程序能够更有效地利用计算资源。本教程将介绍threading模块的基本概念、用法和一些常见的多线程编程模式。 文章中…

HTML---利用CSS3制作网页动画

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 本章目标 会使用transfoem 2D 变形设置网页元元素会使用transition制作过渡动画会使用animation制作网页动画 一.CSS3概述 CSS3是HTML的样式语言&#xff0c;它用于描述和控制HTML文档的外观和…

Java AQS 核心数据结构-CLH 锁及优化

Java AQS 核心数据结构-CLH 锁 什么是CLH锁 CLH 锁是对自旋锁的一种改进&#xff0c;有效的解决了以上的两个缺点。 第一个是锁饥饿问题。在锁竞争激烈的情况下&#xff0c;可能存在一个线程一直被其他线程”插队“而一直获取不到锁的情况。第二是性能问题。在实际的多处理上…

6.1810: Operating System Engineering 2023 <Lab5: cow: Copy-on-write fork>

一、本节任务 二、要点 2.1 设备驱动&#xff08;device driver&#xff09; memory-mapped I/O&#xff1a;设备拥有一个地址范围&#xff0c;软件可以使用 ld/st 指令来访存从而读写设备的寄存器。平台设计者决定设备在物理内存空间中的位置。 内核如何识别设备中断&#…

K8s出现问题时,如何排查解决!

K8s问题的排查 1. POD启动异常、部分节点无法启动pod2. 审视集群状态3. 追踪事件日志4. 聚焦Pod状态5. 检查网络连通性6. 审视存储配置7. 研究容器日志8. K8S集群网络通信9. 问题&#xff1a;Service 是否通过 DNS 工作&#xff1f;10. 总结1、POD启动异常、部分节点无法启动p…

2024年度AI大模型趋势解读

文章目录 2024年度AI大模型趋势解读写在前面大模型时代大模型未来发展趋势总结 2024年度AI大模型趋势解读 写在前面 大模型指具备超大规模预训练语料、拥有超千亿规模模型参数的深度学习模型。由美国开放人工智能研究中心&#xff08;OpenAI&#xff09;研发、基于大模型的人工…

python 面试题第一弹

1. 如何理解Python中的深浅拷贝 浅拷贝&#xff08;Shallow Copy&#xff09;创建一个新的对象&#xff0c;该对象的内容是原始对象的引用。这意味着新对象与原始对象共享相同的内存地址&#xff0c;因此对于可变对象来说&#xff0c;如果修改了其中一个对象&#xff0c;另一个…