《数据库原理》实验

更新时间:2024-05-12 01:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

合肥师范学院

实验报告册

2014 / 2015 学年 第1 学期

系 别 实验课程 专 业 班 级 姓 名 学 号 指导教师

计算机学院 数据库原理

实验名称 实验(一)——数据库基本操作 课时 实验报告成绩 2 6 4 4 实验(二)——SQL语句 实验(三)——数据库完整性与安全性实验 实验(四)——数据库编程 备注:

《数据库原理》实验 班级: 学号: 姓名: 实验一 ——数据库基本操作

一、实验目的

1. 熟悉MS SQL SERVER运行界面,掌握服务器的基本操作。 2. 掌握界面操作方法完成用户数据库建立、备份和还原。

3. 建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。

二、实验预习内容

在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1. 熟悉SQL SERVER 2000 的运行环境,练习服务器基本操作:打开、停止、关闭。

2. 使用SQL SERVER 2000 中的企业管理器完成以下任务。

数据库名称:STC

表:STU(sno char(9), sname varchar(50), ssex char(2) , sage int, sdept char(2) ); COUTSES( cno char(3), cname varchar(50), cpno char(3), credit int ); SC(sno char(9), cno char(3), grade int );

说明:以上为表结构,以sno char(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。

1) 建立数据库STC,分别建立以上三张表,并完成数据录入。(表结构及数据参见教材) 2) 分析并建立各表的主码,用下划线在上面表结构中标出主码。 3) 建立各表之间的关联,请简述操作步骤。

右击要设置外码的表,“设计表”,选中要设的列,右击“关系”,“新建”选择相应的主键表,外键表以及列。

4) 参考实验指导书的【第5章 数据库的备份和还原】,使用企业管理器对数据库STC

进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

备份:右击要备份的数据库,“所有任务”,“备份数据库”,在“目的”中点击添加,

3. 在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下任务。

参考实验指导书《数据库系统实验指导教程》【实验1.1 数据定义】,建立数据库SCHOOL,分别建立students、teachers、courses、choices四张表,表结构见实验指导书P236 【附录A】。

1) 用SQL语言创建数据库、建表。建表时为各表建立关键字、设置外码,数据暂不录

入,请写出对应的SQL命令。

create database school; create table students

1

《数据库原理》实验 班级: 学号: 姓名: (sid char(10) primary key, sname char(30) not null, email char(30), grade int ); create table teachers

(tid char(10) primary key, tname char(30) not null, email char(30), salary int ); create table courses

(cid char(10) primary key, cname char(30) not null, hour int );

create table choices (no int primary key, sid char(10) not null, tid char(10), cid char(10) not null, score int,

constraint fksid foreign key (sid) references students(sid), constraint fktid foreign key (tid) references teachers(tid), constraint fkcid foreign key (cid) references courses(cid), );

2) 为students表、courses建立按主键増序排列的索引,请写出相应的SQL命令。

create index stusid on students(sid asc); create index coucid on courses(cid asc);

3) 删除course上的索引,请写出相应的SQL命令。

drop index courses.coucid;

4) 在SCHOOL数据库中的students表中增加一个“出生日期”字段,类型为日期时间

型,请写出对应的SQL命令。

alter table students

add 出生日期 datetime;

2

《数据库原理》实验 班级: 学号: 姓名:

5) 删除students中的“出生日期”字段,请写出对应的SQL命令。 alter table students

drop column 出生日期;

6) 删除SCHOOL数据库中的students表,请写出对应的SQL命令。 alter table choices drop constraint fksid; drop table students;

4. 使用企业管理器创建数据库SCHOOL,实现内容与实验预习内容3完全相同。

5. 使用企业管理器,将SCHOOL数据库分离出MS SQL SERVER,请简述步骤。 分离school数据库:

1. 右击需要进行分离的数据库 2. 选择所有任务中的分离数据库 3. 点击确定 分离完成

6. 使用企业管理器,使用【数据库/所有任务/附加数据库】将SCHOOL数据库添加进SQL

SERVER,并查看数据。

1. 右击需要进行附加的数据库 2. 选择所有任务中的附加数据库 3. 选择分离出来的数据库的mdf文件并点击确定

7. 使用查询分析器,删除数据库STC,请写出对应的SQL命令。

drop database stc;

8. 结束本次实验

三、实验课后训练

1. 使用企业管理器练习数据的导入导出。

1) 将SCHOOL数据库students表中的数据导出到STC数据库对应的stu表中; 2) 向STC数据库courses表导入SCHOOL数据库courses表中的数据;

3) 自行练习实验指导书【实验5.3 SQL SERVER数据库的导入与导出】部分; 2. 自行练习实验指导书【实验1.1数据定义】部分。

3

《数据库原理》实验 班级: 学号: 姓名: 四、实验报告

1. 简述本次实验所用到的SQL命令及其功能。

2. 在MS SQL SERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?

3. 实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

4

《数据库原理》实验 班级: 学号: 姓名: 实验二——SQL语句

一、实验目的

1. 熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询

和统计查询,能理解空值的处理;

2. 熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操

作;

3. 熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;

4. 了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;

二、实验预习内容

在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1. 使用SCHOOL数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操

作。请在空白处填写相应的SQL命令。

1) 查询年级为2001的所有学生的名称,按编号顺序排列;

2) 查询所有课程名称中含有data的课程编号;

3) 统计所有老师的平均工资;

4) 查询至少选了3门课的学生编号;

5) 查询学号为80009026的学生的姓名、所选课名及成绩;

6) 查询没有学生选的课程编号;

5

《数据库原理》实验 班级: 学号: 姓名: 7) 查询既选了C++又选了Java课程的学生编号;

8) 查询选了C++但没选Java课程的学生编号;

9) 向STUDENTS表中插入“LiMing”的个人信息(编号:700045678,名字:LiMing,

Email:LX@cdemg.com,年级:1992);

10) 将“LiMing”的年级改为2002;

11) 删除所有选了Java课程的学生选课记录;

12) 求出每门课的课程号、选课人数,结果存入数据库表T1中。

13) 查询所有选课记录的成绩并换算为五分制(注意NULL的情况);

6

《数据库原理》实验 班级: 学号: 姓名: 14) 查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结

果中NULL的情况);

15) 按成绩顺序排序显示CHOICES表中所有记录。(使用ORDER BY排序,注意NULL的情况);

16) 创建视图V1,显示学生姓名、所选课名称、任课教师名;

17) 取消V1视图;

2. 使用STC数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操作。请在空白处填写相应的SQL命令或其它内容。 1) 创建视图V2,显示计算机(CS)系学生信息;(结合下面的b)小题,V2视图创建2

次,分别使用/不使用WITH CHECK OPTION选项) (1)不加WITH CHECK OPTION (2)加WITH CHECK OPTION

7

《数据库原理》实验 班级: 学号: 姓名: 2) 插入元组(99999,张三,20岁,男,PH)到V2中,运行结果如何?(观察WITH CHECK

OPTION对结果的影响); (1)不加WITH CHECK OPTION的结果 (2)加WITH CHECK OPTION的结果 3) 在V2基础上,查询所有计算机系女生信息;

3. 结束本次实验

三、实验课后训练

1. 掌握SQL SERVER中流控制语句及其它常用编程语句;

1) 使用查询分析器,编写代码,输出乘法口诀表。

2. 自行练习实验指导书P24【实验1.2 数据查询】1.2.5自我实践部分; 3. 自行练习实验指导书P30【实验1.3 数据更新】1.3.5自我实践部分; 4. 自行练习实验指导书P36【实验1.4 视图】1.4.5自我实践部分;

5. 自行练习实验指导书P49【实验1.6 空值和空集的处理】1.6.5自我实践部分;

8

《数据库原理》实验 班级: 学号: 姓名: 四、实验报告

1. SQL SERVER中变量声明的命令是什么?输出命令是什么?

2. SQL SERVER中实现分支和循环的语句分别是什么?

3. 在SQL SERVER里使用ORDER BY排序时,NULL值如何处理?使用GROUP BY分组

时,NULL值又如何处理的?

4. 实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

9

《数据库原理》实验 班级: 学号: 姓名: 实验三——数据库完整性与安全性

一、实验目的

1. 理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了

解违反完整性的结果;

2. 掌握MS SQL SERVER中的有关用户登录认证及管理方法,熟练使用自主存取控制进行权

限管理;

二、实验预习内容

在认真阅读教材及实验指导书【2.1 实体完整性】、【2.2 参照完整性】、【2.3 用户自定义完整性】、【2.4 触发器】、【2.5 综合案例】和【3.1 用户标识与鉴别】、【3.2 自主存取控制】、【3.3 视图机制在自主存取控制上的应用】、【3.4 Public角色在安全性中的应用】、【3.8 综合案例】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1. 使用SCHOOL数据库

1) 创建一张新表CLASS,包括Class_id(varchar(4)),Name(varchar(10)),Department

(varchar(20))三个属性列,其中Class_id为主码;

2) 执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;

2. 使用SQL命令创建一张学生互助表,要求:包括学生编号、学生姓名、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。

10

《数据库原理》实验 班级: 学号: 姓名: 3. 使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作

过程:

1) 当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;

2) 当更新、删除STU表中记录时,若SC表中有此学生的记录,则自动更新或删除;

4. 使用SQL命令完成以下任务:

1) 创建Worker表(表结构见指导书P73)

2) 定义约束U1、U2,其中U1规定Name字段取值唯一,U2规定sage字段上限是28;

3) 插入一条合法记录;

4) 插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;

11

《数据库原理》实验 班级: 学号: 姓名: 5) 去除U1约束;

6) 修改约束U2,令sage的值大于等于0;

7) 创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;

8) 插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。

5. 使用查询分析器创建触发器并测试,请写出相应的语句: 1) 为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于

0;

2) 为Worker表创建触发器T2,禁止删除编号为00001的记录;

12

《数据库原理》实验 班级: 学号: 姓名: 3) 为Worker表创建触发器T3,要求更新一个记录时,表中记录的sage要比老记录的

sage的值大。

6. 分别用企业管理器和查询分析器实现用户的标识并测试,请写出相应的操作过程或对应

的语句:

1) 设置SQL SERVER的安全认证模式;

2) 建立名为“LiYong”的登录用户、数据库用户,默认访问SCHOOL数据库,密码为

“abcd”;

3) 取消“LiYong”用户;

7. 先以sa帐号登录,要实现如下表的权限管理,请按先后顺序写出相应的SQL语句(假设所有用户尚未定义,其密码均为123),并加以必要的说明。 编号 授权用户名 被授权用户名 1 2 3 4 5 6 7 8

数据库对象名 Students Students Choices Students Students Students Choices Students.sname 13

允许的操作类型 SELECT ALL SELECT SELECT SELECT SELECT INSERT UPDATE 能否转授权 不能 不能 不能 能 能 不能 能 不能 SA SA SA SA U3 U4 SA SA U1 U2 PUBLIC U3 U4 U5 U6 U7

《数据库原理》实验 班级: 学号: 姓名:

14

《数据库原理》实验 班级: 学号: 姓名: 8. 创建在SCHOOL数据库中choices上的视图CS_View,授权给计算机系讲授课程号

为’10010’的数据库用户“LiYong”,让其具有视图上的SELECT权限;

9. 对视图CS_View上的score属性列的UPDATE权限授予用户“LiYong”,可以修改学生成绩,但不能修改其它属性列的值;

10. 假设SCHOOL数据库中,每个学生的登录名都为自己在STUDENTS表中的sid,实现每

个学生只能查询自己选课信息,不能查询别人的成绩,也不能修改自己的成绩。

11. 结束本次实验

三、实验课后训练

1. 自行练习实验指导书P81【实验2.5 综合案例】综合案例1; 2. 自行练习实验指导书P122【实验3.8 综合案例】综合案例;

15

《数据库原理》实验 班级: 学号: 姓名: 四、实验报告

1. 授权给public与授权给指定用户有什么区别?实际应用中,哪个更安全些?

2. SQL SERVER中的角色有什么作用?

3. 实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

16

《数据库原理》实验 班级: 学号: 姓名: 实验四——数据库编程

一、实验目的

1. 掌握ODBC的配置;

2. 能编写简单的存储过程和函数,并调用;

二、实验预习内容

上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1. 配置ODBC,使用VFP中的表单,查询SCHOOL数据库中STUDENTS表中所有记录。

2. 编写存储过程并调用,请写出相应命令;

1) 在查询分析器中,编写存储过程usp_get_stuinfo ,使用一个名为@xm能够传送进存储过

程的参数。允许以学生的姓名查询该生的基本信息;

2) 在查询分析器中调用存储过程查询“赵飞”同学的基本信息的语句;

3. 编写函数并调用,请写出相应命令;

1) 在查询分析器中,定义内联表值函数Fun,用于返回各职称的教师基本信息;

17

《数据库原理》实验 班级: 学号: 姓名: 2) 在查询分析器中,使用Fun进行选择以获得“教授”职称的教师基本信息;

3) 在查询分析器中,编写标量函数Func,用于返回两个整数中的最大值;

4) 在查询分析器中,调用此函数,输出两个数中的最大值;

5) 在SQL SERVER中定义函数FUNS,返回指定参数的平方,配置好ODBC后,在VFP中

调用FUNS并输出结果;

4. 结束本次实验

三、实验课后训练

1. 自行学习实验指导书P130【实验4.1 SQL SERVER事务的定义】; 2. 自行学习实验指导书P137【实验4.2 SQL SERVER 2005事务与锁】; 3. 自行练习实验指导书P165【实验4.6 游标及游标并发】;(P167 4.6.3 实验内容要完成)

18

《数据库原理》实验 班级: 学号: 姓名: 四、实验报告

1. 什么是ODBC?

2. 内联表值函数、标量函数、存储过程有什么区别?

3. 实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

19

《数据库原理》实验 班级: 学号: 姓名: 四、实验报告

1. 什么是ODBC?

2. 内联表值函数、标量函数、存储过程有什么区别?

3. 实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

19

本文来源:https://www.bwwdw.com/article/gm6g.html

Top