2014《数据库原理与应用》实验作业布置123

  • 格式:doc
  • 大小:1.47 MB
  • 文档页数:55

《数据库原理与应用》实验作业布置实验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所示。

2.对学生课程数据库ST中各个表结构进行详细设计。

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

表2.3 “course”表结构表2.4 “sc”表结构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 studentsno sname ssex sage sdept--------- -------- ---- ------ --------------------201313101 李勇男 20 CS201313102 刘晨女 19 CS201313103 王敏女 18 MA201313104 张立男 19 IS--[3_2]查询选修了课程的学生学号。

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

--[3_4]查询年龄不在20~23岁之间的学生姓名、系别和年龄。

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

s elect sname,ssexfrom studentwhere sdept in('is','ma','cs')sname ssex-------- ----李勇男刘晨女王敏女张立男--[3_6]查询所有姓刘学生的姓名、学号和性别。

se lect sname,sno,ssexfrom studentwhere sname like'刘%'sname sno ssex-------- --------- ----刘晨 201313102 女--[3_7] 查询名字中第2个字为"晨"字的学生的姓名和学号。

sel ect sname,sno,ssexfrom studentwhere sname like'_晨%'sname sno-------- ---------刘晨 201313102--[3_8]某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。

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

select sno, cnofrom SCwhere Grade is NULLsno cno--------- ------[3_9]查询计算机系年龄在20岁以下的学生姓名。

s elect snamefrom studentwhere Sdept='CS'and Sage<20sname--------刘晨--[3_10] 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

select sno, Gradefrom Scwhere cno='3'order by Grade DESCsno Grade--------- ---------------------------------------201313101 88.0201313102 50.0--[3_11] 查询全体学生情况,查询结果按所在系升序排列,同一系中的学生按性别降序排列。

--使用集函数select *from studentorder by Sdept,Ssex DESCsno sname ssex sage sdept--------- -------- ---- ------ --------------------201313102 刘晨女 19 CS201313101 李勇男 20 CS201313104 张立男 19 IS201313103 王敏女 18 MA--[3_12] 查询学生总人数。

select Count(sno) "total"from studenttotal-----------4--[3_13] 查询选修了课程的学生人数。

se lect Count(student.sno) "total"from studentwhere sno in(select sno from Sc)total-----------2--[3_14] 计算1号课程的最高、最低及平均成绩。

select max(Grade) 'max',min(Grade)'min',avg(Grade)'avg'from SCwhere Cno='1'max min avg------------------------------------------------------------------------------ ---------------------------------------92.0 92.0 92.000000--[3_15] 查询学生201313101选修课程的平均成绩。

s elect avg(Grade)'avg'from SCwhere sno='201313101'avg---------------------------------------71.666666--[3_16] 查询学生201313102选修课程的总学分数。

--使用GROUP BY子句分组s elect sum(Ccredit)from sc, Coursegroup by sno,o,ohaving (sno='201313102'and o=o)-----------24--[3_17] 求各个课程号及相应的选课人数。

--使用HAVING短语筛选最终分组结果s elect cno, count(sno) 'total number'from Scgroup by cnocno total number---- ------------1 12 23 2--[3_18] 查询选修了3门以上课程的学生学号。

sel ect Snofrom Scgroup by Snohaving (COUNT(sno)>=3);Sno---------201313101--[3_19] 查询有2门以上课程是90分以上的学生的学号及(90分以上的)课程数select sno,COUNT(cno)'数目'from scwhere grade>=90group by snohaving COUNT(sno)>=2sno 数目--------- -----------201313101 22. 连接查询--自然连接--[3_20] 查询每个学生及其选修课程的情况。

select *from student,scwhere student.sno=sc.sno;sno sname ssex sage sdept sno cno grade--------- -------- ---- ------ -------------------- --------- ---- --------------------------------------- 201313101 李勇男20 CS 201313101 1 92.0 201313101 李勇男20 CS 201313101 2 35.0 201313101 李勇男20 CS 201313101 3 95.0201313102 刘晨女19 CS 201313102 2 90.0 201313102 刘晨女19 CS 201313102 3 50.0--左外连接--[3_21]查询每个学生及其选修课程的情况(包括没有选修课程的学生)。