数据库SQL Server实验报告 之 SQL语言进行简单查询(3/8)

这篇具有很好参考价值的文章主要介绍了数据库SQL Server实验报告 之 SQL语言进行简单查询(3/8)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验名称          SQL语言进行简单查询

注意:原版word在下载资源里面(免费下载)

实验目的及要求:

  1. 掌握各种查询的SQL脚本写法,包括SELECT、FROM、WHERE、GROUP BY、HAVING子句的用法,特别要求比较内连接、外连接的结果
  2. 在XSGL数据库中,使用各种查询条件完成指定的查询操作。

实验内容及步骤:

注:所有程序第一行均在XSGL数据库中进行,即每次运行程序第一行均为use XSGL

  1. 查询选修了课程的学生人数。

select count(distinct sno) 学生人数--distinct表示去掉重复行

from sc

  1. 查询学生200515001选修课程的总学分数。

select sum(credit)

from course,sc

where sno = '200515001'

and sc.cno = course.cno and grade>=60; --成绩超过60才有学分,并连接两个表

  1. 查所有有成绩的学生学号和课程号。

select sno,cno

from sc

where grade is not null; --排除空值

  1. 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄。

select sname,sdept,sage

from student

where sage>=20and sage<=23; --范围条件语句  也可以用betweenand

  1. 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

select sno,grade

from sc

where cno=3

order by grade desc;--降序排列;

  1. 求哪些学生还没有被分配系?

select *--查询所有表的所有信息

from student

where sdept=' 'or sdept is null;--sdept 为空或者为空格

  1. 求CS系中所有男同学的学生姓名和年龄。

select sname,sage

from student

where ssex='男'and sdept='CS';

  1. 我校开设的课程中哪些课程名以“数据”两个字开头?

select cname

from course--like语句表示求相似的,

where cname like '数据%';--数据%表示以数据开头,后面0到无穷多个字符

  1. 求哪些学生的姓名中第2个字是“立”?

select sname

from student

where sname like '_向%';--_表示一个字符

  1. 求哪些学生的成绩为优秀,求出该学生的学号及相应的课程号。

select sno,cno

from sc

where grade>90;--以90分以上为优秀

  1. 求既不是CS系,也不是MA系的学生中年龄不小于20的学生姓名。

select sname

from student

where (sdept<>'cs'and sdept<>'ma')and sage>=20;--注意优先级,最好加括号

  1. 求CS系中男女学生的数量分别是多少?

select ssex,count(ssex) 人数--也可以用*代替ssex

from student

where sdept='cs'

group by ssex--分别输出男女需要分组

  1. 求各系中每个年龄段的学生总人数,要求结果中对系进行排序,同一个系的按年龄排序。

select count(sno) 人数,sdept,sage

from student

group by sdept,sagegroup by 语句后面的词数与 select后单个词数一致

order by sdept desc,sage ;--降序为desc 升序为asc可省略

  1. 查询各系的学生的人数并按人数从多到少排序 

select count(sno) 人数,sdept

from student

group by sdept

order by count(sno) desc;--降序为desc 升序为asc可省略

  1. 查询各系的男女生学生总数, 并按系别升序排列, 女生排在前

select sdept,ssex,count(sno) 人数

from student

group by sdept,ssex

order by sdept,ssex desc;--女生在前,按照第二字母顺序降序为desc

  1. 查询选修了3门课程已上的学生的学号和姓名

select student.sno,sname--必须加上student.或者sc.因为两个表都有sno

from sc,student

where student.sno=sc.sno--连接两个表

group by student.sno,sname

having count(*)>3--分组后显示选了三门以上的,而不是直接显示整个表三门以上的

  1. 查询每个学生所选课程的平均成绩, 最高分, 最低分和选课门数

select sno,avg(grade) 平均分,max(grade) 最高分,

min(grade) 最低分,count(cno) 选课门数

from sc

group by sno

  1. 查询至少选修了2门课程的学生的平均成绩.

select sno,avg(grade) 平均分

from sc

group by sno--查询的是选修至少两门的每个学生,然后计算每个学生的课程的信息,则对学生分组,每一个学生为一组

having  count(cno)>=2; --having后面可以使用聚合函数。聚合函数就是对一组值进行计算并且返回单一值的函数:sum---求和,count---计数,max---最大值,avg---平均值等。所以不用where。

  1. 查询平均分超过80分的学生的学号和平均分.

select sno,avg(grade) 平均分

from sc

group by sno

having  avg(grade)>=80;

比较: 求各学生的60分以上课程的平均分.

select sno,avg(grade) 平均分

from sc

where grade>60

group by sno--having既然是对查出来的结果进行过滤,那么就不能对没有查出来的值使用having。

  1. 查询”信息系”(IS)中选修了2门课程以上的学生的学号.

select student.sno

from sc,student

where sdept='is'and student.sno=sc.sno--一定要记得连接两个表

group by student.sno

having count(cno)>2;

  1. 打印李勇的成绩单(即求李勇所选修的课程名及其成绩)。

select cname,grade

from sc,student,course--需要连接三个表

where course.cno=sc.cno

and student.sno=sc.sno and sname='李勇 ';

  1. 求不及格和缺考的学生所在系、学号、姓名及相应课程名,要求按系排序,同一个系的按学号排序。

select sdept,student.sno,sname,cname

from student,course,sc

--sno是student表的主码,cno是course表的主码,需要用主码与sc表中的外码连接

where student.sno=sc.sno

and course.cno=sc.cno

and (grade<60 or grade is null)

--不用and因为成绩小于六十与成绩为空不能同时发生

--有or出现注意通过题目判断是否加括号

order by sdept ,student.sno--先按系排序,则系别在前面

  1. 求CS系不及格和缺考的学生学号、姓名及相应课程名,要求按学号排序。

select student.sno,sname,cname

from student,course,sc

where student.sno=sc.sno

and course.cno=sc.cno

and (grade<60 or grade is null)

and sdept='cs'

order by student.sno

  1. 求既不是CS系,也不是MA系缺考学生的学号、姓名及相应课程名。

select student.sno,sname,cname

from student, course, sc

where student.sno=sc.sno and course.cno=sc.cno

and grade is null

and sdept not in('cs','ma')--与sdept<>'cs'and sdept<>'ma'一致

  1. 求选修BD课程的学生平均成绩。

select avg(grade)

from course,sc

where course.cno=sc.cno and cname='DB'

  1. 求每一门课程的学生平均成绩,要求输出课程名及对应的平均成绩,并按平均成绩由大到小排序。

select cname, avg(grade) --成绩在sc表,课程名在course表

from course, sc

where course.cno=sc.cno

group by cname--求每一门课程,所以分组

order by avg(grade) desc--从大到小即为倒序

  1. 求李勇所选修的总学分(即成绩及格的课程学分总和)。

select sum(credit) 总学分

from student,course,sc--成绩在sc表,学分在course表,李勇在student表

where student.sno=sc.sno and course.cno=sc.cno

and sname='李勇' and grade>=60文章来源地址https://www.toymoban.com/news/detail-432649.html

到了这里,关于数据库SQL Server实验报告 之 SQL语言进行简单查询(3/8)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server 实验一 数据库的创建和使用

    任务描述 本关简要介绍 SQL Server 数据库、 SQL Server 中的系统数据库和用户数据库,根据介绍的知识完成相关选择题。 相关知识 SQL Server 简介 数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。在当今的互

    2024年02月07日
    浏览(54)
  • 【数据库Microsoft SQL Server】实验一 数据库的定义与单表查询

    一、实验目的 1.要求学生熟悉掌握在DBMS中用SQL语言定义数据库、表、主码及外码。 2.熟悉关系数据库中常用数据类型,为关系表各属性定义合理的数据类型。 3.在建立好的数据库表中输入部分虚拟数据,实现基于单表的sql查询并分析查询结果。 二、实验环境与实验准备工作

    2024年02月05日
    浏览(61)
  • 【数据库·关系数据库标准语言SQL·学习笔记】Microsoft SQL Server数据库的建立和删除

    开发环境:SQL Server Management Studio(SSMS) 利用数据库对象资源管理器创建数据库 (1)右击对象资源管理器中的数据库,选择新建数据库 (2)在新建数据库界面输入数据库名称 ,并选择确定 利用CREAT DATABASE命令在SSM工具的新建查询中创建数据库 1.语法格式 CREATE DATABASE dat

    2024年02月08日
    浏览(60)
  • 南京邮电大学数据库实验一(SQL语言)

    (1) 通过上机实践,熟悉Oracle的SQL * Plus环境及使用方法 (2) 掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵 (3) 加深对关系数据模型的数据结构和约束的理解 硬件:微型计算机 软件:Windows 操作系统、ORACLE 10G 实验原理基于第二、三、五章的相关内容。 实验内容如下:

    2024年04月27日
    浏览(48)
  • RDS-sql server使用DTS进行数据库迁移,同阿里云账号RDS数据库迁移

    目录 RDS-sql server使用DTS进行数据库迁移,同阿里云RDS数据库迁移 背景: 环境调研: 问题: 1:OA程序文件如何迁移? 2:RDS-sql server数据库文件如何迁移? 迁移思路: 失败思路总结: 迁移过程: 1:OA程序文件迁移 2:数据库文件迁移 2.1 使用OSS桶恢复

    2024年02月09日
    浏览(73)
  • 实验一 关系数据库标准语言SQL 课后习题/头歌

    任务要求 建立demo数据库 并显示所有数据库 第2关:创建表 任务要求 设有一个demo数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CI

    2024年02月05日
    浏览(53)
  • 数据库系统头歌实验一 SQL的DDL语言和单表查询

    第1关:创建供应商表S(SNO,SNAME,STATUS,CITY) 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;S表如下 第2关:将P表中的所有红色零件的重量增加6。 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;

    2024年02月07日
    浏览(51)
  • 数据库实验报告--安全性实验

    (1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法。 (2)理解登录账号的概念,掌握混合认证模式下登录账号的建立与取消方法。 (3)掌握混合认证模式下数据库用户的建立与取消方法。 (4)掌握数据库用户权限的设置方法。 (5)理解角色的概念,掌

    2024年02月03日
    浏览(50)
  • 数据库原理实验报告

    这门课是大二学年数据库原理这门必修理论课中需要写报告的部分,要求学会使用sql语句,之前忘发了,今天想起来上传一下。 当时是和室友一起讨论着写完的,因为其中有几个问题实现起来还是比较复杂的,我推荐大家不要闷头自己写,否则万一写错了也不知道。但也不是

    2024年02月09日
    浏览(46)
  • 数据库实验报告

    实验报告一 数据库工具使用及数据库的创建与管理 实验目的 希望学生通过上机操作了解并掌握SQL Server 各组件的主要功能以及查询编译器是如何使用的 了解数据库及数据库对象 了解数据库的结构并熟练掌握使用SQL Server 管理平台和SQL 语句直接创建数据库的方法 实验内容 查

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包