云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据库第一章实验报告

数据库第一章实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/6/3 10:23:01

软件131-么红帅-132935

实验1.6空值和空集的处理

一、实验目的

认识NULL值在数据库中的特殊含义,了解空值和空集对于数据库的数据查询操作,特别是空值在条件表达式中与其他的算术运算符或逻辑运算符的运算中,空集作为嵌套查询的子查询返回结果的时候的特殊性,能够熟练使用SQL语句来进行与空值,空集相关的操作。 二、实验内容

(1)查询所有课程记录的上课学时(数

如果有,在什么位置?

SELECTsid,score FROMCHOICES

WHEREcid=(SELECTcidFROMCOURSESWHEREcname='C++') ORDERBYscore;

据库中为每星期学时),以一学期十八个星期计算每个课程的总学时,注意HOUR取NULL值的情况。

SELECTcid,hour*18 FROMCOURSES;

(2)通过查询选修课程C++的学生的人

数,其中成绩合格的学生人数,不合格的学生人数,讨论NULL值得特殊含义。

查询选修C++的学生人数:

SELECTCOUNT(*) FROMCOURSES,CHOICES

WHERECHOICES.cid=COURSES.cid

ANDcname='C++';

NULL的项出现在结果中,被当作最小值处理。

(4)在上面的查询的过程中,如果加上保留字DISTINCT会有什么效果呢?

SELECTDISTINCTscore FROMCHOICES

WHEREcid=(SELECTcid FROMCOURSES WHEREcname='C++') ORDERBYscore;

运行结果为:95

成绩合格的学生人数:

SELECTCOUNT(*) FROMCOURSES,CHOICES

WHERECHOICES.cid=COURSES.cid

ANDcname='C++'ANDscore<60;

成绩为NULL的学生被合并

(5)按年级对所有的学生进行分组,能

得到多少个组?与现实的情况有什么不同?

SELECTgrade FROMSTUDENTS GROUPBYgrade;

运行结果为:86

成绩不合格的学生人数:

SELECTCOUNT(*) FROMCOURSES,CHOICES

WHERECHOICES.cid=COURSES.cid

ANDcname='C++'ANDscore>=60;

得到9个分组,现实中有8个年级。 (6)结合分组,使用集合函数求每个课

运行结果为:0

NULL与比较运算符的运算都返回FALSE值,都不会出现在结果的统计之中。

(3)查询选修课程C++的学生的编号和

程选修的学生的平均分,总的选课记录数,最高成绩,最低成绩,讨论考察取空值的项对集合函数的作用的影响。

SELECTAVG(score),COUNT(*),MAX(score),MIN(score) FROMCHOICES GROUPBYcid;

13

成绩,使用ORDER BY按成绩进行排序时,取NULL的项是否出现在结果中?

软件131-么红帅-132935

在集合函数中,除了使用COUNT(*)计算元组时要把取空值的项计算进去,其他的集合函数都忽略了取空值的项。

(7)采用嵌套查询的方式,利用比较运

O=3

SELECTSNAME,TNAME FROMS,T

WHERET.TID=S.SID

算符和谓词ALL的结合来查询表STUDENTS中最晚入学的学生年级。当存在GRADE取空值的项时,考虑可能出现的情况,并解释原因。

SELECTgrade FROMSTUDENTS

WHEREgrade>=ALL(SELECTgradeFROMSTUDENTS);

运行结果:无

等值连接时,值为NULL的项被忽略。

(8)将操作步骤中的表的数据进行更新,

使得表S中,NO为2和3的记录的SID列取NULL值,T表的NO为4的记录的TID取NULL值,NO为3的TID取0129871005。然后对这两个表按T.TID=S.SID作等值连接运算,找出编号相同的学生和教师的姓名,并分析原因。

CREATETABLES

(NOSMALLINTPRIMARYKEY, SIDVARCHAR(10), SNAMEVARCHAR(10)) CREATETABLET

(NOSMALLINTPRIMARYKEY, TIDVARCHAR(10), TNAMEVARCHAR(10))

INSERTINTOSVALUES(1,'0129871001','王小明'),

(2,'0129871002','李兰'), (3,'0129871003',NULL), (4,'0129871004','关红')

INSERTINTOTVALUES(1,'100189','王小明'),

(2,'100180','李小'), (3,'100121',NULL), (4,'100128',NULL)

UPDATESSETSID=NULLWHERENO=2 ORNO=3

UPDATETSETTID=NULLWHERENO=4 UPDATETSETTID='0129871005'WHEREN

14

搜索更多关于: 数据库第一章实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

软件131-么红帅-132935 实验1.6空值和空集的处理 一、实验目的 认识NULL值在数据库中的特殊含义,了解空值和空集对于数据库的数据查询操作,特别是空值在条件表达式中与其他的算术运算符或逻辑运算符的运算中,空集作为嵌套查询的子查询返回结果的时候的特殊性,能够熟练使用SQL语句来进行与空值,空集相关的操作。 二、实验内容 (1)查询所有课程记录的上课学时(数如果有,在什么位置? SELECTsid,score FROMCHOICES WHEREcid=(SELECTcidFROMCOURSESWHEREcname='C++') ORDERBYscore; 据库中为每星期学时),以一学期十八个星期计算每个课程的总学时,注意HOUR取NULL值的情况。

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com