当前位置:文档之家› 《数据库原理与应用》实验题目及答案

《数据库原理与应用》实验题目及答案

《数据库原理与应用》实验作业布置实验1 数据库的建立修改与删除完成以下实验报告:《数据库原理与应用》实验报告实验1 数据库的建立修改与删除二、实验环境操作系统:Windows XP。

数据库管理系统:MS SQL Server 2000 或MS SQL Server 2008。

三、实验目的1.熟悉SQL Server 2000上机环境,学会SQL Server 2000“企业管理器”以及“查询分析器”的启动与退出;或熟悉MS SQL Server 2008上机环境,学会SQL Server Management Studio的启动与退出。

2.掌握建立数据库的两种方法。

3.掌握查看和修改数据库的两种方法。

4.掌握删除数据库的两种方法。

四、实验内容(一) 规定内容1. 在用户方便的存储空间上建立存放用户数据库的文件夹。

本实验在D盘根目录下建立文件夹:D:\SQL2000DB,再建立存放T_SQL源代码的文件夹:D:\SQL2000DB\T_SQL 2.利用企业管理器创建学生课程数据库ST,参数如表1.1所示。

3.利用企业管理器查看ST数据库的属性。

4.使用T-SQL语句建立学生-课程数据库ST,参数如表1.1所示。

5.使用T-SQL语句建立数据库JXDB,参数如表1.2所示。

6.使用T-SQL语句为数据库JXDB添加文件组JX_Group2,并为此文件组添加1个数据文件JXDB_Data4;添加1个日志文件JXDB_log1。

参数由用户自己设定。

7.使用T-SQL语句修改数据库JXDB中次数据文件JXDB_Data4的属性:文件初始大小改为5M,增长方式改为每次按20%增长。

删除日志文件JXDB_log1。

8.使用T-SQL语句删除数据库JXDB。

(二) 自定内容五、出现的问题及解决方法实验2 表结构的建立修改删除及完整性约束条件定义完成以下实验报告:《数据库原理与应用》实验报告一、实验题目实验2 表结构的建立修改删除及完整性约束条件定义二、实验环境操作系统:Windows XP。

数据库管理系统:MS SQL Server 2000或MS SQL Server 2008。

三、实验目的1.掌握建立、修改与删除表结构的两种方法。

2.掌握定义完整性约束条件的方法。

3.掌握利用企业管理器和使用T-SQL语句向表中插入记录的方法。

四、实验内容(一) 规定内容1.对学生课程数据库ST进行完整性约束条件规划设计。

设计结果如表2.1所示。

若某课程有先修课,则其先修课程删除时该课程的先修课号置空值当插入或修改“先修课号”时,若该课号在表中不存在,则递归插入触发器触发器选修(7) 学号、课号取值唯一且不能为空值主健(8) 成绩采用百分制check(9) 学号只能是学生表中已有的学号。

当修改某学生学号时,该生所有选课记录的学号自动级联修改;当删除某学生时,该生所有选课记录自动级联删除。

外键级联更改级联删除(10) 课号只能是课程表中已有的课号;当修改课程表中的课号时,选修表中所有选修该课程的课号自动级联修改;当删除课程表中某课程时,若选修表中该课程有学生选修,则拒绝删除。

外键级联更改拒绝删除2.对学生课程数据库ST中各个表结构进行详细设计。

学生、课程及选修表结构设计结果分别如表2.2、2.3和2.4所示。

表2.2 “student”表结构列名数据类型允许Null值约束条件sno char(9) primary keysname char(8) Not nullssex char(2) check(性别 in('男','女')) default '男'sage smallintsdept char(20)表2.3 “course”表结构列名数据类型允许Null值约束条件cno char(4) primary key cname char(16) uniqueccredit smallintcpno char(4)references 课程(课号)级联更改,置空值删除触发器递归插入触发器表2.4 “sc”表结构列名数据类型允许Null值约束条件sno char(9) references 学生(学号) on delete cascade on update cascadecno char(4) references 课程(课号) on update cascadegrade decimal(5,1)check(成绩>=0 and成绩<=100) 表级约束:primary key(学号, 课号)3.使用企业管理器在数据库ST中建立学生、课程及选修表结构。

4.使用企业管理器为学生、课程及选修表录入若干行数据。

5.使用企业管理器删除学生、课程及选修表6.使用T_SQL语言在数据库ST中建立学生、课程及选修表结构。

7.使用T_SQL语言为学生、课程及选修表插入若干行数据。

(二) 自定内容五、出现的问题及解决方法实验3 数据查询与更新完成以下实验报告:《数据库原理与应用》实验报告一、实验题目实验3 数据查询与更新二、实验环境操作系统:Windows XP。

数据库管理系统:MS SQL Server 2000或MS SQL Server 2008。

三、实验目的1.掌握SELECT语句的语法、语义及语用。

2.掌握基于单表的查询方法。

3.掌握基于多表的查询方法。

4.掌握相关与不相关的嵌套查询。

5.掌握集合查询。

6.掌握插入(INSERT)、修改(UPDATE)和删除(DELETE)语句的使用。

四、实验内容(一) 规定内容1. 单表查询USE ST--[3_1]查询全体学生的详细记录。

select*from student;运行结果:sno sname ssex sage sdept--------- -------- ---- ------ --------------------201313101 李勇男20 CS201313102 刘晨女19 CS201313103 王敏女18 MA201313104 张立男19 IS--[3_2]查询选修了课程的学生学号。

select distinct snofrom sc;运行结果:sno---------201313101201313102--[3_3]将学生表中的sno、sname这2列合并为1列snosname输出,其余列不变。

select sno+sname snosname,ssex,sage,sdeptfrom student;运行结果:snosname ssex sage sdept----------------- ---- ------ --------------------201313101李勇男20 CS201313102刘晨女19 CS201313103王敏女18 MA201313104张立男19 IS--[3_4]查询年龄不在20~23岁之间的学生姓名、系别和年龄。

select sname,sdept,sagefrom studentwhere sage<20 or sage>23;运行结果:sname sdept sage-------- -------------------- ------刘晨CS 19王敏MA 18张立IS 19--[3_5] 查询计算机科学系(cs)、数学系(ma)和信息系(is)学生的姓名和性别。

SELECT sname,ssexFROM studentWHERE sdept IN('cs','ma','is');运行结果:sname ssex-------- ----李勇男刘晨女王敏女张立男--[3_6]查询所有姓刘学生的姓名、学号和性别。

SELECT sname,sno,ssexFROM studentWHERE sname LIKE'刘%';运行结果:sname sno ssex-------- --------- ----刘晨201313102 女--[3_7]查询名字中第2个字为"阳"字的学生的姓名和学号。

SELECT sname,snoFROM studentWHERE sname LIKE'_阳%';运行结果:sname sno-------- -----------[3_8]某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。

--查询缺少成绩的学生的学号和相应的课程号。

SELECT sno,cno FROM scWHERE grade IS NULL;运行结果:sno cno--------- ------[3_9]查询计算机系年龄在20岁以下的学生姓名。

SELECT snameFROM studentWHERE sdept='cs'AND sage<20;运行结果:sname--------刘晨--[3_10]查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

SELECT sno,gradeFROM scWHERE cno='3'ORDER BY grade DESC;运行结果:sno grade--------- ---------------------------------------201313101 88.0201313102 50.0--[3_11]查询全体学生情况,查询结果按所在系升序排列,同一系中的学生按性别降序排列。

SELECT*FROM studentORDER BY sdept,sage DESC;运行结果:sno sname ssex sage sdept--------- -------- ---- ------ --------------------201313101 李勇男20 CS201313102 刘晨女19 CS201313104 张立男19 IS201313103 王敏女18 MA--使用集函数--[3_12]查询学生总人数。

SELECT COUNT(*)学生总人数FROM student;运行结果:学生总人数-----------4--[3_13]查询选修了课程的学生人数。

SELECT COUNT(DISTINCT sno)选课人数--注:用DISTINCT以避免重复计算学生人数FROM sc;运行结果:选课人数-----------2--[3_14]计算1号课程的最高、最低及平均成绩。

SELECT MAX(grade)'1号课程最高分',MAX(grade)'1号课程最低分',A VG(grade)'1号课程平均成绩'FROM scWHERE cno='1'运行结果:1号课程最高分1号课程最低分1号课程平均成绩--------------------------------------- --------------------------------------- ---------------------------------------92.0 92.0 92.000000--[3_15]查询学生201313101选修课程的平均成绩。

相关主题