版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机专业类课程实验报告课程名称:数据库系统及应用学院:计算机科学与工程学院专业:计算机科学与技术学生姓名:学号:指导教师:日期:2016年04月20日电 子 科 技 大 学实 验 报 告实验一1、 实验名称:创建、备份与恢复数据库2、 实验学时:43、 实验内容和目的:(1)实验内容:创建数据库,命名为DB+学号,如:DB000000001该数据库包括5个表;建议:在定义表中字段时,尽量使用意义的英文单词。系别代码表表名:dep教师表表名:teacher学生表表名:stud课程表表名:course选课表表名:sc为每个表准备大约5-10条记录,使用Insert语句将这些数据插入到相应表中 数
2、据录入完成后,将数据库备份到磁盘上,在以后的的试验中备用。(2)实验要求:本实验要求学生掌握创建数据库的方法及相关操作,向数据库中添加样本数据,学习SQLSERVER数据库的恢复和备份。4、 实验原理: 使用数据库管理系统DB、DDL创建数据库及数据库对象。5、 实验器材(设备、元器件)笔记本一台操作系统:Windows 10数据库 : MS SQLSERVER6、 实验步骤:(1) 、启动SQLSERVER(2) 创建数据库:STUD(3) 创建表,表结构见下图,表的详细说明见图后的表格.系别代码表表名:dep其结构如下:(该表的主键为系代码)字段名称字段类型字段大小/格式是否可为空系代码d
3、epidvarchar8否PK系名depnamevarchar20否Not null 教师表表名:teacher其结构如下:(该表的主键为教师号)字段名称字段类型字段大小/格式是否可为空教师号tidVarchar8否PK教师名tnameVarchar8否Not null职称titleVarchar10是所属院系编号depidVarchar20是学生表表名:student其结构如下:(该表的主键为学生号)字段名称字段类型字段大小/格式是否可为空学号sidVarchar11否PK学生名snameVarchar8否Not null性别sexChar2否院系编号depidVarchar20是出生年月b
4、irthdDate是邮箱semailVarchar20是家庭地址homeaddrVarchar40是课程表表名:course其结构如下:(该表的主键是课程号)字段名称字段类型字段大小/格式是否可为空课程号cidvarchar8否PK课程名cnamevarchar30否Not null先修课程号cid_prevarchar8是学分creditsnumeric3(小数位数1)否Not null选课表表名:sc其结构如下:(该表的主键是课程号)字段名称字段类型字段大小/格式是否可为空学号sidvarchar8否Not null, PK课程号cidvarchar8否Not null, PK教师号tid
5、varchar8否成绩scoreinteger是(4) 备份数据库(5) 恢复数据库PK:主键,Not null:不能取空值7、 实验数据及结果分析:(一)实验代码:(1)创建数据库:CREATE DATABASE DB2014060107031(2) 创建表USE DB2014060107031CREATE TABLE dep(depid varchar(20) PRIMARY KEY,depname varchar(20) NOT NULL);CREATE TABLE teacher(tid varchar(20) PRIMARY KEY,tname varchar(8) NOT NULL
6、,title varchar(10),depid varchar(20);CREATE TABLE student(sid varchar(20) PRIMARY Key,sname varchar(8) NOT NULL,sex char(2) NOT NULL,depid varchar(20),birthd date,semail varchar(20),homeaddr varchar(40);CREATE TABLE course(cid varchar(8) PRIMARY KEY,cname varchar(30) NOT NULL,cid_pre varchar(8),cred
7、its numeric(3,1) NOT NULL);CREATE TABLE sc(sid varchar(20) NOT NULL,cid varchar(8) NOT NULL,tid varchar(20) NOT NULL,score integer,PRIMARY KEY(sid,cid))(3) 备份数据库BACKUP DATABASE DB2014060107031 TODISK='D:DB2014060107031.BAK'WITH INIT;(4) 恢复数据库RESTORE DATABASE DB2014060107031 FROM DISK='D:
8、DB2014060107031.BAK'8、 实验结论、心得体会和改进建议:(1)结论:成功实现了数据库的创建及备份。(2) 心得体会:学会了用SQL Server创建数据库和创建表;感受到SQL语言简洁,方便的优点。(3)改进建议建议把六个实验合并成一个实验,这样做的时候比较有连接性。电 子 科 技 大 学实 验 报 告实验二1、 实验名称:数据的完整性2、 实验学时:43、 实验内容和目的:(1) 实验内容:表结构中的完整性约束条件如下:PK:主键,FK:外键,其它:约束条件系别代码表表名:dep其结构如下:(该表的主键为系代码)字段名称字段类型字段大小/格式是否可为空约束条件系代
9、码depidvarchar8否PK系名depnamevarchar20否Not null 教师表表名:teacher其结构如下:(该表的主键为教师号)字段名称字段类型字段大小/格式是否可为空约束条件教师号tidVarchar8否PK教师名tnameVarchar8否Not null职称titleVarchar10是所属院系编号depidVarchar20是学生表表名:student其结构如下:(该表的主键为学生号)字段名称字段类型字段大小/格式是否可为空约束条件学号sidVarchar11否PK学生名snameVarchar8否Not null性别sexChar2否院系编号depidVarch
10、ar20是FK出生年月birthdDate是邮箱semailVarchar20是家庭地址homeaddrVarchar40是课程表表名:course其结构如下:(该表的主键是课程号)字段名称字段类型字段大小/格式是否可为空约束条件课程号cidvarchar8否PK课程名cnamevarchar30否Not null先修课程号cid_prevarchar8是学分creditsnumeric3(小数位数1)否Not null选课表表名:sc其结构如下:(该表的主键是课程号)字段名称字段类型字段大小/格式是否可为空约束条件学号sidvarchar8否Not null, PK, FK课程号cidvar
11、char8否Not null, PK, FK教师号tidvarchar8否Not null, FK成绩scoreinteger是0<score<100(1) 设置选课表的三个外键约束(学号,课程号,教师号)(2) 设置教师表,学生表中的院系字段(depid)的外键约束(3) 设置学生表中姓名字段为非空字段(必须有数据,不能是空值)(4) 设置选课表中成绩字段的取值范围是0到100(5) 设置学生表中性别字段的取值为男或女(6) 设置学生表电子邮件字段的取值必须包含符号(7)(8) 向系别代码表添加数据,数据如下:(9) 向教师表添加数据,2条(10) 向学生表添加数据, 5条以上(
12、11) 向课程表添加数据, 3条以上(12) 向选课表 添加数据,10条思考:如假定每个同学都选了所有课程, 可有方法用一条SQL语句实现?(2) 实验目的:通过设置表的检查约束、外键约束体会数据库完整性的含义,约束条件下数据修改操作的限制,以及实现修改操作的技巧。4、 实验原理:数据库库的完整性、约束条件、结构化查询语言。5、 实验器材(设备、元器件)笔记本一台操作系统:Windows 10数据库 : MS SQLSERVER6、 实验步骤:1、恢复数据库,将数据库备份stud 恢复到SQLSERVER中2、 执行SQL命令完成实验内容 3、备份数据库7、 实验数据及结果分析:(一)实验代码
13、:(1)恢复数据库RESTORE DATABASE DB2014060107031 FROM DISK='D:DB2014060107031.BAK'(2)执行SQL命令完成实验内容ALTER TABLE sc ADD CONSTRAINT sidforeignkey FOREIGN KEY(sid) REFERENCES student(sid);ALTER TABLE sc ADD CONSTRAINT cidforeignkey FOREIGN KEY(cid) REFERENCES course(cid);ALTER TABLE sc ADD CONSTRAINT ti
14、dforeignkey FOREIGN KEY(tid) REFERENCES teacher(tid);ALTER TABLE teacher ADD CONSTRAINT tdepidforeignkey FOREIGN KEY(depid) REFERENCES dep(depid);ALTER TABLE student ADD CONSTRAINT sdepidforeignkey FOREIGN KEY(depid) REFERENCES dep(depid);ALTER TABLE student ADD CHECK(sname IS NOT NULL);ALTER TABLE
15、sc ADD CONSTRAINT score CHECK(score>0 AND score<100);ALTER TABLE student ADD CONSTRAINT sex CHECK(sex IN ('男','女');ALTER TABLE student ADD CONSTRAINT semail CHECK(semail LIKE '%');insert into DB2014060107031.dbo.depVALUES('601','计算机科学与工程'),('602'
16、,'软件工程'),('603','信息安全'),('1201','翻译'),('1202','日语')insert into DB2014060107031.dbo.teacherVALUES('6012','熊光泽','教授','601'),('6021','刘锦德','教授','602'),('6032','盖茨',
17、9;副教授','603') ('12016','尹艳','讲师','1201'), ('12025','欧阳芊','教授','1202')insert into DB2014060107031.dbo.studentVALUES('2406010101','张三','男','601','1981/8/8',NULL,NULL),('2406010102
18、9;,'张四','男','601','1982/1/1',NULL,NULL),('2406010103','张五','女','601','1983/2/2',NULL,NULL),('2406020101','王三','男','602','1984/12/12',NULL,NULL),('2406020102','王四','男
19、9;,'602','1985/6/6',NULL,NULL),('2406030101','李六','男','603','1986/9/9',NULL,NULL)insert into DB2014060107031.dbo.courseVALUES('1','计算机组成原理',NULL,'4'),('2','数据结构',NULL,'4'),('3','数据库
20、9;,NULL,'2')insert into DB2014060107031.dbo.scVALUES('2406010101','1','6012',55),('2406010102','1','6012','38'),('2406010103','1','6012','95'),('2406020101','1','6012','88'
21、),('2406020102','1','6012','73'),('2406030101','1','6012','62'),('2406010101','2','6021','59'),('2406010102','2','6021','81'),('2406010103','2','6021
22、9;,'92'),('2406020101','2','6021','98'),('2406020102','2','6021','77'),('2406030101','2','6021','45'),('2406010101','3','6032','69'),('2406010102','3
23、9;,'6032','89'),('2406010103','3','6032','91'),('2406020101','3','6032','83'),('2406020102','3','6032','60'),('2406030101','3','6032','52')(3)备份数据库BACKUP DA
24、TABASE DB2014060107031 TODISK='D:DB2014060107031.BAK'WITH INIT;8、 实验结论、心得体会和改进建议:1、 实验结论成功实现了PK和FK设定,并实现了插入数据。2、 心得体会通过本实验,我对数据库库的完整性、约束条件、结构化查询语言有了更深的理解;通过设置表的检查约束、外键约束等实验体会到了数据库完整性的含义、约束条件下数据修改操作的限制,掌握了实现修改操作的技巧。3、 改进建议建议把六个实验合并成一个实验,这样做的时候比较有连接性,思路比较清晰。另,希望好好检查一下实验大纲,题目有些地方不够完整。电 子 科 技 大
25、学实 验 报 告实验三1、 实验名称:数据的修改2、 实验学时:23、 实验内容和目的:实验内容:(1) 将院系中,原院系名IS改为Information (2) 在选课表中,删除计算机科学与工程系学生选修2号课程的记录(3) 在选课表中,删除软件工程系学生选课1号课程的纪录记录(4) 学号为2406010103的同学由原来的计算机科学与工程系转入信息安全系,学号更改为2406030102,在数据库中做出相应修改。实验目的:练习UPDATE、DELETE命令的使用,实现对数据的修改和删除。4、 实验原理:使用结构化查询语言,在满足约束条件的情况下完成数据修改5、 实验器材(设备、元器件)笔记本
26、一台操作系统:Windows 10数据库 : MS SQLSERVER6、 实验步骤:1. 恢复数据库,将数据库备份stud 恢复到SQLSERVER中2. 执行SQL命令完成实验内容3. 备份数据库7、 实验数据及结果分析:(1) 恢复:RESTORE DATABASE DB2014060107031 FROM DISK='D:DB2014060107031.BAK'(2) 实验内容:UPDATE depSET depname='Information'WHERE depname='信息安全'DELETE FROM scWHERE cid=
27、39;2'AND sid IN(SELECT sid FROM student WHERE depid IN(SELECT depid FROM dep WHERE depname='计算机科学与工程')DELETE FROM scWHERE cid='1'AND sid IN(SELECT sid FROM student WHERE depid IN(SELECT depid FROM dep WHERE depname='软件工程')UPDATE studentSET sid='2406030102'WHERE si
28、d='2406010103'UPDATE scSET sid='2406030102'WHERE sid='2406010103'UPDATE studentSET depid='603'WHERE sid='2406030102'(3) 备份:BACKUP DATABASE DB2014060107031 TODISK='D:DB2014060107031.BAK'WITH INIT;八、实验结论、心得体会和改进建议:(1)实验结论:成功实现了对数据的修改。(2)心得体会:本次实验练习UPDATE
29、、DELETE命令的使用从而实现对数据的修改和删除。通过本实验,我掌握了结构化查询语言,并能够在满足约束条件的情况下完成对数据的修改操作。(3) 改进建议:输入数据使用sqlserver的右键菜单编辑表格会更加方便!电 子 科 技 大 学实 验 报 告实验四1、 实验名称:简单查询、多表查询2、 实验学时:23、 实验内容和目的:实验内容:(1) 查询年龄在2022之间的学生姓名(通过出生日期和当前日期计算年龄,方法见第八章)(2) 查询年龄在2022之间的学生姓名、院系和年龄(3) 查询姓张的学生的学号、姓名、邮件地址(4) 查询所有有成绩(成绩不为空)的学生学号和课程号(5) 查询选修了2
30、号课程成绩在60分以下的所有学生 的学号、姓名、学生的邮件地址、课程名、教师姓名和教师的邮件地址及课程成绩(6) 查询既选修了1号课程,又选修了2号课程的学生学号实验目的:练习用SELECT查询语句,设置查询条件,实现单表查询。练习使用SELECT语句从多个表中查询数据,表的内连接、左外连接、右外连接的使用以及设置连接条件,理解连接条件和查询条件的在目的和功能上的区别。4、 实验原理:结构化查询语言、表的连接、关系运算5、 实验器材(设备、元器件)笔记本一台操作系统:Windows 10数据库 : MS SQLSERVER6、 实验步骤:1. 恢复数据库,将数据库备份stud 恢复到SQLSE
31、RVER中(2)执行SQL命令完成实验内容7、 实验数据及结果分析:(1)恢复:RESTORE DATABASE DB2014060107031 FROM DISK='D:DB2014060107031.BAK'(2) 实验内容:1)select snameFROM studentWHEREyear(getdate()-year(birthd) between 20 and 222)select sname,depid,YEAR(GETDATE()-YEAR(birthd) sageFROM studentWHEREyear(getdate()-year(birthd) bet
32、ween 20 and 223)SELECT sid,sname,semailFROM studentWHERE sname LIKE '张%'4)SELECT sid,cidFROM scWHERE score IS NOT NULL5)select student.sid,sname,semail,cname,tname,scorefrom sc,teacher,student,coursewhere score<60 and student.sid=sc.sid and teacher.tid=sc.tid and course.cid=sc.cid6)select
33、 snamefrom sc first , sc second ,studentwhere first.cid='1'and second.cid='2' and first.sid=second.sid and first.sid=student.sid八、实验结论、心得体会和改进建议:(1)实验结论:成功实现简单查询、多表查询。(2)心得体会:通过本次实验,我学会用SELECT查询语句,设置查询条件,实现单表查询。并且能够使用SELECT语句从多个表中查询数据,对表的内连接、左外连接、右外连接的使用以及连接条件的设置有了一定的掌握,同时也理解了连接条件和查询
34、条件在目的和功能上的区别。(3) 改进建议:输入数据使用sqlserver的右键菜单编辑表格会更加方便!电 子 科 技 大 学实 验 报 告实验五1、 实验名称:分组统计查询2、 实验学时:43、 实验内容和目的:实验内容:(1) 查询选修数据库并成绩在分以上的人数(2) 求每个学生的选课的门数,显示学号和选课门数(3) 求每个学生选课的总学分数,显示学号和学分(4) 求每个学生的总成绩,显示学号和总成绩(5) 查询获得数据库课程最高分的学生姓名及成绩(6) 求每门课程的平均成绩,并显示课程名及平均成绩(7) 求每门课程的学生选修人数,并显示课程名及选修人数(8) 求选修了5门以上课程的学生姓
35、名及邮件地址实验目的:练习使用聚集函数count(),max(),min(),avg()等在SQL命令中实现统计功能。使用GROUP BY子句实现分组查询,以及聚集函数在分组查询中的应用。体会分组查询的功能特点。4、 实验原理:结构化查询语言、分组查询、集函数5、 实验器材(设备、元器件)笔记本一台操作系统:Windows 10数据库 : MS SQLSERVER6、 实验步骤:1. 恢复数据库,将数据库备份stud 恢复到SQLSERVER中2. 执行SQL命令完成实验内容7、 实验数据及结果分析:(1) 恢复:RESTORE DATABASE DB2014060107031 FROM DI
36、SK='D:DB2014060107031.BAK'(2) 实验内容:1)select COUNT(sid) as 人数from sc,coursewhere cname='数据库' and sc.cid=course.cid and score>60 2)select student.sid,COUNT(cid) as 选课门数from sc,studentwhere sc.sid=student.sidgroup by student.sid3)select student.sid,SUM(credits)as 总学分from student,cour
37、se,scwhere sc.cid=course.cid and student.sid=sc.sidgroup by student.sid4)select student.sid,SUM(score)as 总成绩from student,scwhere sc.sid=student.sidgroup by student.sid5)select student.sname,mc.scorefrom(select course.cid cid,ame cname,MAX(score) score from sc join course on course.cid=sc.cidgroup by
38、 course.cid,cnamehaving cname like '数据库%') as mcjoin sc on mc.cid=sc.cid and mc.score=sc.scorejoin student on sc.sid=student.sid6)select cname,AVG(score)as 平均成绩from sc join course on sc.cid=course.cidgroup by cname7)select cname,COUNT(sid)as 选修人数from sc join course on sc.cid=course.cidgroup
39、by cname8)select sname,semailfrom sc join student on sc.sid=student.sidgroup by sname,semailhaving COUNT(cid)>58、 实验结论、心得体会和改进建议:(1) 实验结论:成功实现分组统计查询。(2)心得体会:通过本实验我掌握了如何使用聚集函数count(),max(),min(),avg()等在SQL命令中实现统计功能,以及如何使用GROUP BY子句实现分组查询,并且掌握了聚集函数在分组查询中的应用。体会到了分组查询的功能特点。(3)改进建议:输入数据使用sqlserver的右键菜单编辑表格会更加方便!电 子 科 技 大 学实 验 报 告实验六1、 实验名称:集合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解除劳动合同模板标准版3篇
- 二零二四年投资回报对赌合同4篇
- 个体户员工合同完整版
- 挂证人员聘用合同范本有目录
- 2024年度储罐防腐施工安全合同3篇
- 2024年度柑橘购销合同及柑橘购销合同监管要求3篇
- 2024版工程清理合同
- 个人房屋租赁合同范本 2篇
- 红砖砖购销合同版
- 2024年度二手商铺购买合同2篇
- 海底两万里的物理知识
- 2020年度城镇道路工程施工与质量验收规范
- 微生物儿童课件
- 中班音乐《小雨沙沙》原版有声动态课件
- 云南野生余甘子的分布、生境条件及保护利用,植物学论文
- GB/T 3317-1982电力机车通用技术条件
- 人称代词和物主代词优秀课件
- 医务人员压力管理和心理调适课件
- 《新闻采编规范》考试复习题库(含答案)
- 浙江大学硕士论文模板
- 土力学及地基基础教案(完整)
评论
0/150
提交评论