1、数据库系统实验报告广东工业大学数据库系统实验报告学 院 计算机学院 专 业 计算机科学与技术 班 级 级 班 学 号 姓 名 指导教师 ( 2016 年 12 月) 实验_一_题目 数据库及基本表的建立 实验_二_题目 查询数据库_ 实验_三_题目 创建和使用视图、索引、存储过程 实验_四 _题目 小型数据库规划设计 实验平台:SQL Sever 2005实验题目 实验一 数据库及基本表的建立 一、实验目的1、掌握SQL SERVER的查询分析器和企业管理器的使用;2、掌握创建数据库和表的操作;二、实验容和要求1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库
2、;2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表;三、实验主要仪器设备和材料1计算机及操作系统:PC机,Windows 2000/xp;2数据库管理系统:SQL sever 2000/2003/2005;四、实验方法、步骤及结果测试创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。1
3、、创建数据库:确定数据库名称;数据库用于学生管理,命名为SC确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;实现代码及截图:SQL语句CREATE DATABASE SC_3114006159ON PRIMARY(NAME=SC_3114006159_DATA,FILENAME=E:3114006159SC_3
4、114006159.mdf,SIZE=30,FILEGROWTH=20%)LOG ON(NAME=SC_3114006159_LOG,FILENAME=E:3114006159SC_3114006159.ldf,SIZE=3,FILEGROWTH=1)查询分析器执行情况:SQL语句及执行结果截图显示2、创建基本表利用查询分析器,使用SQL语句方式创建方式将下面各表建立到教学管理数据库中。(1)创建student表字段名代码类型约束学号s_nochar(8)主键snamechar(8)非空性别sexchar(2) 出生日期sbirthdaySmalldatetime学生所在院系编号dnochar
5、(6) 外键专业代码spnochar(8)外键班级编码class_nochar(4) (2)创建Course表字段名代码类型约束课程编号cnochar(10)主键课程名称cnamechar(20)非空专业代码spnochar(8)外键课程类型编号ctnotinyint理论学时lecturetinyint实验学时experimenttinyint开课学期semestertinyint课程学分credittinyint(3)创建student _course表字段名代码类型约束学号s_nochar(8)主键,与student表中s_no 外键关联,级联删除上课编号tcidsmallint主键学生成
6、绩score tinyint (4)创建teacher表 字段名代码类型约束教师编号t_nochar(8)主键教师t_namechar(8)非空性别t_sexchar(2)出生日期t_birthdaysmalldatetime教师所在院系编号dnochar(6) 外键职称tech_titlechar(10)(5)创建系部表(department) 字段名代码类型约束院系编号dnochar(6)主键院系名称dept_namechar(20)非空院系负责人headerchar(8) (6)创建专业信息表(speciality) 字段名代码类型约束专业代码spnochar(8)主键院系编号dnoch
7、ar(6)外键,非空专业名称spnamechar(20)非空(7)创建teacher_course表字段名代码类型约束上课编号tcidsmallint主键教师编号t_nochar(8)外键专业代码spnochar(8)外键班级编码class_nochar(4)课程编号cnochar(10)非空,外键学期semesterChar(6)学年schoolyear Char(10) (8)创建班级表(class) 字段名代码类型约束专业代码spnochar(8)主键,与 speciality 表中spno 外键关联,班级编码class_nochar(4)主键,班负责人headerchar(8)3、查看
8、各数据表之间的关系,生成数据库关系图。生成数据库关系图截图显示4、创建各表的实现代码及截图:SQL语句USE SC_3114006159GOCREATE TABLE student_3114006159 (s_no char(8)PRIMARY KEY, sname char(8) NOT NULL, sex char(2), sbirthday smalldatetime, dno char(6), spno char(8), class_no char(4);CREATE TABLE course_3114006159 (cno char(10) PRIMARY KEY, ame char
9、(20) NOT NULL, spno char(8), ctno tinyint, lecture tinyint, experiment tinyint, semester tinyint, credit tinyint);CREATE TABLE student_course_3114006159 (s_no char(8), tcid smallint, score tinyint, PRIMARY KEY(s_no,tcid);CREATE TABLE teacher_3114006159 (t_no char(8) PRIMARY KEY, t_name char(8) NOT N
10、ULL, t_sex char(2), t_birthday smalldatetime, dno char(6), tech_title char(10);CREATE TABLE deparment_3114006159 (dno char(6) PRIMARY KEY, dept_name char(20) NOT NULL, header char(8);CREATE TABLE speciality_3114006159 (spno char(8) PRIMARY KEY, dno char(6) NOT NULL, spname char(20) NOT NULL);CREATE
11、TABLE teacher_course_3114006159 (tcid smallint PRIMARY KEY, t_no char(8), spno char(8), class_no char(4), o char(10) NOT NULL, semester char(6), schoolyear char(10);CREATE TABLE class_3114006159 (spno char(8), class_no char(4), header char(8), PRIMARY KEY(spno,class_no);ALTER TABLE student_311400615
12、9 ADD FOREIGN KEY (dno) REFERENCES deparment_3114006159(dno);ALTER TABLE student_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_3114006159(spno);ALTER TABLE course_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_3114006159(spno);ALTER TABLE student_course_3114006159 ADD FOREIGN KEY
13、(s_no) REFERENCES student_3114006159(s_no);ALTER TABLE teacher_3114006159 ADD FOREIGN KEY (dno) REFERENCES deparment_3114006159(dno);ALTER TABLE speciality_3114006159 ADD FOREIGN KEY (dno) REFERENCES deparment_3114006159 (dno);ALTER TABLE teacher_course_3114006159 ADD FOREIGN KEY (t_no) REFERENCES t
14、eacher_3114006159(t_no);ALTER TABLE teacher_course_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_3114006159(spno);ALTER TABLE teacher_course_3114006159 ADD FOREIGN KEY (cno) REFERENCES course_3114006159(cno);ALTER TABLE class_3114006159 ADD FOREIGN KEY (spno) REFERENCES speciality_31140061
15、59(spno);查询分析器执行情况:SQL语句及执行结果截图显示5、利用查询分析器修改上述各表。(1)、用INSERT语句向各个表中插入数据录入5 条记录。录入时注意体会外键约束。实现代码及截图:查询分析器执行情况:SQL语句及执行结果显示insert into deparment_3114006159values(659801,计算机,周杰伦);insert into deparment_3114006159values(659802,机电,奕迅);insert into deparment_3114006159values(659803,外国语,章子怡);insert into depa
16、rment_3114006159values(659804,土木,梁朝伟);insert into deparment_3114006159values(659805,环境,国荣);insert into teacher_3114006159values(65980101,德华,男,1975-03-25,659801,高级);insert into teacher_3114006159values(65980201,周润发,男,1964-09-24,659802,高级);insert into teacher_3114006159values(65980301,学友,男,1956-06-15,
17、659803,高级);insert into teacher_3114006159values(65980401,曼玉,女,1965-04-21,659804,高级);insert into teacher_3114006159values(65980501,坤,男,1988-03-02,659805,高级);insert into speciality_3114006159values(65980110,659801,计算机科学与技术);insert into speciality_3114006159values(65980210,659802,自动化);insert into speci
18、ality_3114006159values(65980310,659803,商务英语);insert into speciality_3114006159values(65980410,659804,土木工程);insert into speciality_3114006159values(65980510,659805,环境工程);insert into class_3114006159values(65980110,1401,德华);insert into class_3114006159values(65980210,1402,周润发);insert into class_311400
19、6159values(65980310,1403,学友);insert into class_3114006159values(65980410,1404,曼玉);insert into class_3114006159values(65980510,1405,坤);insert into course_3114006159values(6598011001,数据库,65980110,1,48,12,1,2);insert into course_3114006159values(6598021001,制图,65980210,2,56,6,2,2);insert into course_311
20、4006159values(6598031001,口语,65980310,3,48,0,1,4);insert into course_3114006159values(6598041001,建筑学,65980410,4,48,12,1,2);insert into course_3114006159values(6598051001,基础化学,65980510,5,48,12,1,2);insert into teacher_course_3114006159values(1,65980101,65980110,1401,6598011001,一学期,第二学年);insert into te
21、acher_course_3114006159values(2,65980201,65980210,1402,6598021001,一学期,第二学年);insert into teacher_course_3114006159values(3,65980301,65980310,1403,6598031001,一学期,第二学年);insert into teacher_course_3114006159values(4,65980401,65980410,1404,6598041001,一学期,第二学年);insert into teacher_course_3114006159values(
22、5,65980501,65980510,1405,6598051001,一学期,第二学年);insert into student_3114006159values(31140001,王小波,男,1997-01-03,659801,65980110,1401);insert into student_3114006159values(31140002,寒,男,1992-03-23,659802,65980210,1402);insert into student_3114006159values(31140003,莫言,男,1997-06-15,659803,65980310,1403);in
23、sert into student_3114006159values(31140004,三毛,女,1994-05-30,659804,65980410,1404);insert into student_3114006159values(31140005,郭敬明,男,1995-12-03,659805,65980510,1405);insert into student_course_3114006159values(31140001,1,96);insert into student_course_3114006159values(31140002,3,67);insert into stu
24、dent_course_3114006159values(31140003,2,91);insert into student_course_3114006159values(31140004,4,89);insert into student_course_3114006159values(31140005,5,96);实验结果截图显示(插入数据的表格)共8组(共8个表)(2)、用UPDATE语句更改student表中数据;实现代码:use SC_3114006159update student_3114006159set sname=村上春树where sname=莫言student表更改
25、前的容截图显示查询分析student表更改后的容截图显示(3)、用DELETE语句删除student表中数据;实现代码:use SC_3114006159delete from student_course_3114006159where s_no in (select s_no from student_3114006159 where sname=郭敬明);deletefrom student_3114006159 where sname=郭敬明student表更改前的容截图显示查询分析student表更改后的容截图显示五、实验中出现的问题及解决方案在插入数据时没注意外键约束,结果导致插入
26、失败,于是根据数据表关系图先插入没有外键约束的表,再根据外键约束关系按照一定顺序插入表。在删除student的元组时,因为其主键被student_course表外键所参照,所以无法删除,于是先删除student_course表中的元组,再删除student中的元组。六、思考题1、说明数据库中的表和数据文件的关系。答:表存储于数据文件中,一个数据文件可以存储多个表。2、数据库中的日志文件能否单独修改?不能,SQL Server数据库都有log日志文件,log日志文件记录用户对数据库修改的操作,只有数据库发生更改时,日志文件才会发生更改,不能单独更改。3、附加练习题.(代码以及运行结果采用截图显示
27、)(1) 将计算机专业所有学生的数据库原理的成绩增加10分代码以及运行结果: (2) 删除计算机专业所有学生的数据库原理的选修信息代码以及运行结果:(3) 为speciality的spname添加唯一约束代码以及运行结果:(4) 为student_course的score设置检查约束代码以及运行结果:实验题目 实验二 查询数据库 一、实验目的熟悉SQL语句的基本使用方法,学习如何编写SQL语句来实现查询1、掌握基本的SELECT查询及其相关子句的使用;2、掌握复杂的SELECT查询,如多表查询、子查询、连接查询和嵌套查询。二、实验容和要求使用SQL查询分析器查询数据,练习查询语句的使用,掌握S
28、ELECT 语句的完整结构,包括简单查询、嵌套查询、连接查询等基本实现方法,掌握存储查询结果的方法,体会各种查询的异同及相互之间的转换,体会各种查询的执行过程,为简单综合应用打下良好的基础。三、实验主要仪器设备和材料1计算机及操作系统:PC机,Windows 2000/xp;2数据库管理系统:SQL sever 2000/2003/2005;四、实验方法、步骤及结果测试要求用SELECT完成以下查询, 1、对实验立的数据库表进行查询简单查询:(1)、查询全部学生的学号、性别和日。实现代码及查询结果截图:格式如下查询分析器执行情况:SQL语句及执行结果显示use SC_3114006159select s_no,sname,sex,sbirthdayfrom student_3114006159查询结果截图显示(2)、查询全体学
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1