华南理工数据库实验报告_第1页
华南理工数据库实验报告_第2页
华南理工数据库实验报告_第3页
华南理工数据库实验报告_第4页
华南理工数据库实验报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统实验报告姓名: 班级: 学号: 日期: 课时一实验1 数据库【实验目的】掌握交互式和脚本执行下列数据库操作: 创建数据库 分离数据库 数据库文件备份 附加数据库 删除数据库【实验内容】1.1 创建数据库1、 交互式创建数据库:数据库名称为jxsk;并查看数据库属性;修改数据库参数;把数据库jxsk文件增长参数设置为4MB,文件最大大小参数设置为100MB。2、 使用SQL指定参数创建数据库,查看数据库属性,要求如下:1) 创建数据库,其名称为testbase1,其中包括: 数据文件名为testbase1_dat.mdf,存储在“D:MyDatabase”文件夹; 事务日志文件名为te

2、stbase1_log.ldf,存储在“D:MyDatabase”文件夹。2) 创建数据库,其名称为testbase2,其中包括: 数据文件:主文件组PRIMARY包括文件testbase2_prim_sub1_dat、testbase2_prim_sub2_dat;次文件组Grouptest1包括文件testbase2_group1_sub1_dat、testbase2_group1_sub2_dat;次文件组Grouptest2包括文件testbase2_group2_sub1_dat、testbase2_group2_sub2_dat;所有数据文件都存储在“D:MyDatabase”文件

3、夹。 事务日志:事务日志文件名为testbase2_log.ldf,存储在“D:MyDatabase”文件夹,文件大小初始为20MB,增长量20MB,最大500MB。1.2 分离数据库1、 交互式分离数据库testbase1。2、 使用系统存储过程分离数据库testbase2。1.3 附加数据库将分离的数据库testbase1和testbase2附加到SQL Server 2005中,方法如下:1) 使用交互式方法附加testbase1。2) 使用系统存储过程附加testbase2。1.4 数据库文件备份复制数据库testbase1和testbase2物理文件到U盘或其他文件夹,方法如下:1)

4、 分离数据库testbase1,再复制其物理文件。2) 停止“SQL Server 2005服务”,再复制数据库testbase2物理文件。实验2 数据库表【实验目的】 掌握交互式创建数据库表的方法。 掌握使用SQL命令创建数据库表的方法。 掌握向数据库表中录入数据的方法。【实验内容】2.1 创建数据库表在数据库jxsk中,创建如下数据库表。其中表T、表S使用交互式方法创建,其余表使用SQL创建。表2-1 教师表T字段名数据类型长度/B是否可NULL中文描述TNOchar2否教师号TNchar8否教师姓名SEXchar2是性别AGEtinyint1是年龄PROFchar10是职称SALsmal

5、lint2是工资COMMsmallint2是岗位津贴DEPTchar10是系名表2-2 学生表S字段名数据类型长度/B是否可NULL中文描述SNOchar2否学生号SNchar8否学生姓名SEXchar2是性别AGEtinyint1是年龄DEPTchar10是系名表2-3 课程表C字段名数据类型长度/B是否可NULL中文描述CNOchar2否课程号CNchar10否课程名CTtinyint1是课时数表2-4选课表SC字段名数据类型长度/B是否可NULL中文描述SNOchar2否学号CNOchar2否课程号SCOREtinyint1是成绩表2-5 授课表TC字段名数据类型长度/B是否可NULL中

6、文描述TNOchar2否教师号CNOchar2否课程号Evaluationchar20是评价2.2 修改数据库表结构1、 向表S中追加学籍列追加的列定义如下:字段名数据类型长度/B是否可NULL中文描述NATIVEchar40否学籍1、 修改表S中的列定义把表S中的NATIVE列定义修改成下列定义:字段名数据类型长度/B是否可NULL中文描述NATIVEchar16是学籍2、 删除表S中的NATIVE列3、 用SQL实现14、 用SQL实现22.3 删除数据库表1、 交互式删除表TC2、 用SQL删除表T实验3 数据操作【实验目的】 掌握各种录入数据至数据库表的方法。 掌握修改数据库表中数据的

7、方法。 掌握删除数据库表中数据的方法。 掌握复制数据库表的方法。【实验内容】3.1 录入数据至数据库表1、 把一个Excel工作表中的数据导入数据库表S中。此Excel工作表的文件名为S_EXCEL.xls,其数据格式内容如图3-1所示,满足导入到SQL Server数据库表中的要求。2、 交互式录入数据至数据库表T中,数据如图3-2所示。3、 使用INSERT INTO语句插入数据至数据库表C,数据如图3-3所示。3.2 修改数据1、 用SQL语句修改数据库表S中的数据。要求:把学生“周武”的系别DEPT改为“信息”。3.3 删除数据1、 用SQL语句删除数据库表T中的数据。要求:删除教师“

8、王平”的记录数据。3.4 复制数据表1、 用SQL复制数据库表S生成一张新的数据库表test1。2、 用SQL复制数据库表T中的“男”同学记录生成一张新的数据库表test2。课时二实验4 实体完整性约束(若无特别说明,实验4及以后的实验全部用SQL完成)【实验目的】 认识完整性约束对数据库的重要性。 掌握实体完整性的创建、修改、维护。 掌握域完整性的创建、修改、维护。 掌握参照完整性的创建、修改、维护。 掌握用户定义的完整性的创建、修改、维护。【实验内容】4.1 实体完整性约束1、 为现有表T在TNO列上创建PRIMARY KEY约束。2、 创建数据库表TEST_C,并以列约束形式创建PRIM

9、ARY KEY约束,TEST_C表的结构定义如下:表名:TEST_C。包含的列如下:课程号:CNO CHAR(2);课程名:CN CHAR(10);课时:CT TINYINT;主键:CNO主键约束名:PK_TEST_C。3、 创建数据库表TEST_TC,并以表约束形式创建PRIMARY KEY约束,TEST_TC表的结构定义如下:表名:TEST_TC。包含的列如下:教师号:TNO CHAR(2);课程号:CNO CHAR(2);主键:(TNO, CNO);主键约束名:PK_TEST_TC。4、 为表C中的CN列创建“UNIQUE”约束UNIQUE_C。5、 为表TEST_TC增加新列ID_TC

10、,并创建此列属性为IDENTITY。6、 删除表C中CN列的UNIQUE约束UNIQUE_C。4.2 域完整性约束1、 为表S创建CHECK约束。要求本科生的年龄限制在14 40岁之间,此约束对表S中已有数据做检查。2、 创建数据库表TEST_S,包含DEFAULT和CHECK约束,表TEST_S的结构定义如表4-1所示。表4-1 表TEST_S的结构定义列名数据类型和长度DEFAULT是否可NULLCHECK表达式约束名SNOchar(2)否SNchar(8)否SEXchar(2)男是男OR女DEFAULT_SEXCHECK_SEXAGEint18是= 14 AND = 40DEFAULT_

11、AGECHECK_AGE3、 删除表TEST_S中列SEX的DEFAULT约束及列AGE的CHECK约束。4.3 参照完整性约束1、 用SQL创建表T与表TC之间的参照关系。表T与表TC通过外键TNO实现参照完整性约束FK_T_TC:字表TC中TNO的取值要参照主表T中TNO的取值。要求取消“创建中检查现有数据”,选择“级联删除相关记录”。2、 删除表C和表TC之间的参照关系。实验5 索引【实验目的】 掌握创建、修改、删除索引的方法。 掌握索引的管理和维护。【实验内容】1、 交互式为表SC在列SNO和列CNO上创建PRIMARY KEY,系统自动在此PRIMARY KEY上按升序创建聚簇索引P

12、K_SC_1。2、 交互式为表T在TN列上按升序和在AGE列上按降序创建非聚簇索引IND_TN_AGE。3、 为表T在TNO列上按降序创建聚簇索引IND_TNO。4、 为表C在CN列上按升序创建唯一索引IND_CN。5、 删除以上索引。课时三实验6 视图【实验目的】 掌握创建、更新、删除视图的方法。【实验内容】1、 交互式创建视图View_S,其数据来源于一个基本表S,包含的数据有SNO、SN、SEX、DEPT。2、 交互式创建成绩表视图View_SCORETABLE,其数据来源于两个基本表C和CS,以及一个已有的视图View_S,包含的数据有来自视图View_S的字段SN、来自表C的字段CN

13、、来自表SC的字段SCORE。3、 使用SQL创建课程表视图View_CTABLE,其数据来源于两个基本表T和C,包含的数据有来自表T的字段TN、表C的字段CN。4、 交互式删除视图View_S中的字段SNO。5、 用SQL给视图View_CTABLE增加一个课时字段CT。6、 交互式修改视图View_S中的数据来实现对其基本表S中数据的修改。7、 修改View_S的定义,使其包含基本表S的主键字段SNO,再对View_S执行插入操作。8、 修改View_S的定义,使其包含基本表S的主键字段SNO,再对View_S执行插入操作。9、 用SQL对视图View_S执行DELETE操作,查看此视图的

14、基本表S中数据的变化。10、 用SQL删除视图View_S和View_CTABLE。实验7 数据查询【实验目的】 掌握从简单到复杂的各种数据查询,包括单表查询、多表连接查询、嵌套查询、集合查询。 掌握用条件表达式表示检索条件。 掌握用聚合函数计算统计检索结果。【实验内容】7.1 单表查询1、 指定列或全部列查询1) 查询S表中全体学生的详细记录。2) 查询所有学生的姓名及其出生年份。2、 按条件查询及模糊查询1) 查询考试成绩有不及格的学生的学号。2) 查询年龄在20 23岁之间的学生的姓名、系名和年龄。3) 查询姓李的学生的姓名、学号和性别。4) 查询名字中第二个字为“明”字的男学生的姓名和

15、系名。3、 对查询结果排序1) 查询信息系、计算机系学生的姓名、系名,结果按系名升序,按姓名降序排序。2) 查询所有有课程号C2成绩的学生的学号、课程号和成绩,并按成绩降序排序。4、 使用聚集函数的查询1) 查询计算机系学生总人数。2) 查询选修了微机原理课程的学生人数、平均成绩和最高成绩。5、 分组统计查询1) 查询各个课程号及相应的选择人数。2) 查询选修了两门以上课程的学生姓名和平均成绩。7.2 连接查询1、 连接查询1) 查询所有选课学生的学号、姓名、选课名称及成绩。2) 查询每门课程的课程号、任课教师姓名及其选课人数。2、 自身连接1) 查询所有比“刘伟”工资高的教师的姓名、工资以及

16、刘伟的工资。2) 查询同时选修了“程序设计”和“微机原理”的学生的姓名、课程名。3、 外连接查询所有学生的学号、姓名、选课名称及成绩(没有选课的学生的选课信息显示为空)。7.3 嵌套查询1、 返回一个值的子查询查询与“刘伟”教师职称相同的教师号、姓名和职称。2、 返回一组值的子查询1) 使用ANY谓词查询讲授课程号为C5的教师姓名。2) 使用IN谓词查询讲授课程号为C5的教师姓名。3) 使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师的姓名、工资和所在系。4) 使用EXISTS谓词查询没有讲授课程号为C5的课程的教师姓名、所在系。5) 使用NOT EXISTS谓词查询至少选修了学生S

17、2选修的全部课程的学生的学号。7.4 集合查询1、 查询年龄不大于19岁或者属于计算机系的学生。(使用UNION)课时四实验8 存储过程【实验目的】 通过实验掌握存储过程的概念、功能。 掌握用户自定义存储过程的创建、修改、删除和执行。【实验内容】1、 交互式创建并执行一存储过程Pro_Qsinf:通过学生学号来查询学生的姓名、年龄、系名。默认学号是S2。2、 用SQL创建并执行一存储过程Pro_Qscore:通过学生姓名和课程名查询该生该课程的成绩。3、 用SQL修改存储过程Pro_Qsinf:将存储过程的定义修改为根据学号查询姓名、性别、系名,设置默认学号为S1。4、 用SQL删除存储过程Pro_Qsinf。实验9 触发器【实验目的】 掌握触发器的创建、修改、删除及其使用方法。 掌握触发器的功能。【实验内容】1、 交互式为表S创建并执行一级联更新触发器TRIGGER_S,要求若修改S表中一学生的学号,则SC表中与该学生相关的学号自动修改。2、 交互式为表SC创建一限制更新触发器TRIGGER_SC,要求若修改SC表中一记录的学号,则要检查表S中是否存在于该学号相同的记录,若存在则不允许修改,若不存在则可修改。3、 用SQL为表SC创建一触发器Score_SC_TR1,要求当插入一个记录或修改成绩时,确保

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论