基于SqlServer的DML(数据查询)实验,掌握select查询语句的使用、掌握有无条件查询

1.SELECT语句的基本语法

2.掌握数据汇总的方法

3.WITH CHECK OPTION对视图使用的影响

七、实验步骤

1.启动SQL查询分析器(SQL Server Management Studio);

2.选择数据库University,验证如下例题:

第一部分:

1 查询全体学生的详细记录。这是一个无条件的选择查询,其命令为:

select * from Students

在这里插入图片描述

2查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。这是一个无条件的投影查询,其命令为:select Sname,Sno,Sdept from Students

在这里插入图片描述

3 查询选修了课程的学生学号。其命令为:

–3查询选修了课程的学生学号

–因为没有选修表,先修课充当选修课

select distinct Sno as 学号 from Reports

where Cno in(select Cno from Courses where Pre_Cno is not null)

在这里插入图片描述

4查询数学系全体学生的学号(Sno)和姓名 (Sname)。其命令为:

select Sno,Sname from Students

where Sdept=‘数学’

在这里插入图片描述

5 查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。其命令为:select Sname as 姓名,Sage as 年龄 from Students

where Sage<=22 and Sage>=18

在这里插入图片描述

6 查询年龄不在18-22岁之间的学生姓名(Sname)及年龄(Sage)。其命令为:

select Sname as 姓名,Sage as 年龄 from Students

where Sage>22 or Sage<18

在这里插入图片描述

7 查询自动化系、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。其命令为:select Sno as 学号,Sname as 姓名,Ssex as 性别 from Students

where Sdept=‘自动化’ or Sdept=‘数学’ or Sdept=‘计算机’

在这里插入图片描述

8 查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。其命令为:

select Sno as 学号,Sname as 姓名,Ssex as 性别 from Students

where Sname like ‘刘%’

在这里插入图片描述

9 查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。其命令为:

select Cno as 课程号 , Gredits as 学分 from Courses

where Cname=‘DB_设计’

在这里插入图片描述

10 查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。其命令为:

select * from Courses

where Cname like ‘DB_%设_‘ESCAPE’’

在这里插入图片描述

11假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。其命令为:

select Sno as 学生号,Cno as 课程号 from Reports

where Grade is NULL

在这里插入图片描述

12 查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。其命令为:

select * from Students

order by Sdept desc,Sage asc

在这里插入图片描述

13 查询学生总人数。其命令为:

select count(Sno) as 学生总人数 from Students

在这里插入图片描述

14 查询选修了课程的学生人数。其命令为:

select count(distinct Sno) as 人数 from Reports

where Cno in(select Cno from Courses where Pre_Cno is not null)

在这里插入图片描述

15 计算选修C01号课程的学生平均成绩。其命令为:

select avg(Grade)as C01课程平均成绩 from Reports

where Cno=‘C01’

在这里插入图片描述

16 查询选修C01号课程的学生最高分数。其命令为:

select max (Grade) as C01课程最高分 from Reports

where Cno=‘C01’

在这里插入图片描述

17 计算每门课程的平均成绩、最高分、最低分和总分。其命令为:

select Courses.Cname AS 课程名,avg(Reports.Grade) as 平均成绩,max(Reports.Grade) as 最高成绩,min(Reports.Grade) as 最低成绩

from Reports,Courses

group by Courses.Cname

在这里插入图片描述

第二部分:

1.从Students表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。

代码: CREATE VIEW STU_SEX(SNO,SNAME,SSSEX,SAGE)

as Select Sno,Sname,Ssex,Sage from Students

在这里插入图片描述

2.从Courses表中建立查询所有课程先修课信息的视图课程Courses_PRE。视图的列名为课程号、课程名称和先修课名称。

代码:CREATE VIEW Courses_PRE(课程号,课程名称,先修课名称) AS

SELECT Cno,Cname,(select Cname from Courses as Courses1 where Courses1.Cno=Courses.Pre_Cno)

from Courses

在这里插入图片描述

3.从Reports表中建立查询成绩大于等于80信息的视图STU_CJ1。视图的列名为学号、课程号和成绩。

代码:CREATE VIEW STU_CJ1 as

select * FROM Reports

where Grade>80 OR Grade=80

在这里插入图片描述

4.从Students、Reports和Courses三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。

代码:CREATE VIEW STU_CJ2 as

select Students.Sname as 姓名,Courses.Cname as 课程名称,Reports.Grade as 成绩

from Students,Courses,Reports

where Reports.Sno=Students.Sno and Reports.Cno=Courses.Cno

在这里插入图片描述

5.从Students、Reports和Courses三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。

第5题是在第4题基础上修改的

代码:CREATE VIEW STU_CJ3(姓名,课程名称,成绩) as

select * from STU_CJ2

where 成绩<80

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数同学面临毕业设计项目选题时,很多人都会感到无从下手,尤其是对于计算机专业的学生来说,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。

因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
img
img
img

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
img

,选择一个合适的题目尤为重要。因为毕业设计不仅是我们在大学四年学习的一个总结,更是展示自己能力的重要机会。**

因此收集整理了一份《2024年计算机毕业设计项目大全》,初衷也很简单,就是希望能够帮助提高效率,同时减轻大家的负担。
[外链图片转存中…(img-vKHoSmin-1712569454655)]
[外链图片转存中…(img-3fTiovBz-1712569454655)]
[外链图片转存中…(img-YhIbW5sv-1712569454656)]

既有Java、Web、PHP、也有C、小程序、Python等项目供你选择,真正体系化!

由于项目比较多,这里只是将部分目录截图出来,每个节点里面都包含素材文档、项目源码、讲解视频

如果你觉得这些内容对你有帮助,可以添加VX:vip1024c (备注项目大全获取)
[外链图片转存中…(img-ARYrUnVt-1712569454656)]

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值