合肥工业大学数据库实验报告 - 图文

更新时间:2023-09-25 21:59:01 阅读量: 综合文库 文档下载

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

计算机与信息学院 数据库系统概论实验报告

专 业 班 级 学生姓名及学号 课程教学班号 任 课 教 师 实验指导教师 实

四号实验楼第四机房

2013 ~2014 学年 第二学期

实验1 使用向导创建和删除数据库

一、 实验目的

1. 熟悉SQL Server 2008中SQL Server Management Studio的环境; 2. 理解数据库的逻辑结构和物理结构; 3. 掌握使用向导创建和删除数据库的方法; 二、 实验要求

1. 熟练使用SSMS进行数据库的创建和删除; 2.完成实验报告(实验报告的格式见附录); 三、 实验内容

设有一学籍管理系统,其数据库名为“EDUC”。

初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长; 日志文件初始为2MB,最大可增长到5MB,按1MB增长。

数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为

“E:\\sql_data”。

日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\\sql_data”。

1、使用SQL Server Management Studio(简称SSMS)创建数据库;

2、修改数据库EDUC1的相关属性值,如数据文件和日志文件的名字、大小、增长方式、 存储路径等;

3、数据库的备份与恢复;

4、使用向导删除上面建立的数据库; 四、实验步骤

1.使用SQL Server Management Studio(简称SSMS)创建数据库。 (1)启动SSMS

在开始菜单中:所有程序-Microsoft SQL Server 2008 -SQL Server Management Studio ,如下图所示:

(2)建立数据库

在“对象资源管理器”窗口中,建立上述数据库EDUC。在数据库节点上,右击选择新建数据库,按实验内容的要求,对数据文件和日志文件进行设置。如下所示,点击确定。

(3)用同样的方法建立一个同样属性的数据库,数据库名为EDUC1。

2、修改数据库EDUC1的相关属性值,如数据文件和日志文件的名字、大小、增长方式、存储路径等;选择数据库节点EDUC1,右击-属性-文件,根据自己的需要,对相应的属性值进行相应的调整,点击确定。如下图所示:

3、数据库的备份与恢复:SQL Server提供了“分离/附加”数据库、“备份/还原”数据库、复制数据库等多种数据库的备份与恢复的方法,这里熟悉使用“分离/附加”的方法。

(1)数据库的分离选择数据库节点EDUC,右击-任务-分离,进入如下图所示的界面,选择更新统计消息下的复选框,单击确定,完成数据库的分离,此时可以将分离后的数据库的数据文件和日志文件拷贝到U盘里

(2)数据库的附加

在对象资源管理器中,选择数据库节点,右击-附加-添加,在文件件E:\\sql_data中选择数据文件student_data.mdf,单击确定,如下图所示,再单击确定,完成数据库的附加。

4. 使用向导删除上面建立的数据库。用SSMS删除建立的数据库EDUC。在对象资源管理其中,选中数据库EDUC节点,右击-删除即可。

五、实验总结

1、身份验证时,出现过失败现象,后来解决了验证问题。

2、如果分离前没有关闭所有窗口,可导致分离失败。

实验2 使用SQL语句删除和创建数据库

一、实验目的

1. 了解SQL Server 2005/2008数据库的逻辑结构和物理结构。 2. 掌握使用SQL 语句创建和删除数据库。 二、实验要求

1. 熟练使用Microsoft SQL Server Management Studio进行数据库的创建和删除操作。 2. 完成实验报告。 三、实验内容

使用SQL语句创建数据库userdb1。 四、实验步骤

1.创建数据库userdb1的SQL语句,注意各个参数的意义:

create database userdb1

on

(name=userdb1_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='e:\\sql_data\%userdb1.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on

( name=userdb1_log,

filename='e:\\sql_data\%userdb1.ldf ' , size=2 , maxsize=5 , filegrowth=1) 具体如下图所示:

2. 根据步骤1的sql语句,写出创建实验1中数据库EDUC的sql语句,建立数据库EDUC。

3. 用SQL语句删除步骤1建立的数据库userdb1。

5、对于student表,将所有班级号为‘CS01’的,并且年龄不大于20岁的学生的班级号改为‘CS02’,

检查更改后的student表。

6、对于student表,删掉所有年龄不小于20岁,并且班级号为‘CS02’的学生的记录。

(1)、在SC表上定义级联删除。(2)、执行删除操作

7、对于student表,插入一条新记录,它的具体信息为,

学号:20071101、姓名:张三、性别:男、年龄:19、班级编号:‘CS01’、身高:1.78、 地址:下关50#;

对于class表,插入一条记录,具体信息为,

班级号:GL01,班级名称:地理一班,辅导员:葛格,专业:地理

8、对于student表,将年龄最小的学生的家庭地址去掉。

9、对于student表,将平均年龄最小的一个班级编号改为‘GL01’。

五、实验总结

1、在处理上要小心谨慎,在插入时各项应该一一对应,否则会出现错误。

2、使用select语句查询时,应该以选中执行的方式检查,否则插入语句执行两次会报错。 3、当在学生表上删除该生时,也应删除其相应的选课记录,所以要在sc表上定义级联。 4、对于任务9,对班级平均成绩进行从小到大排序,且选择删除第一个(top)会更简单。

实验5 创建和删除索引

一、实验目的

1. 了解索引的类型和应用。

2. 学会用SQL语句对表创建和删除索引。 二、实验要求

1. 了解索引类型并比较各类索引的不同之处。 2.完成索引的创建和删除,并提交实验报告。 三、实验内容

1. 分别建立以下索引(如果不能成功建立,请分析原因)

(1) 在student表的sname列上建立普通降序索引,以下两种方法任选一个。

方法一:利用向导创建;

展开student表节点,索引-新建索引,如下图,点击添加按钮,选择sname,点击 确定,再点击确定。

方法二:使用语句创建索引;

(2) 在course表的cname列上建立唯一索引。

(3) 在sc表的sno列上建立聚集索引,将出现错误,如下图,请分析原因并完成该操作。 (4) 在sc表的sno(升序), cno(升序)和grade(降序)三列上建立一个普通索引。 2. 删除索引

将student表的sname列上的聚集索引删掉。

四、实验步骤

1、 分别建立以下索引(如果不能成功建立,请分析原因)

(1) 在student表的sname列上建立普通降序索引,以下两种方法任选一个。

方法一:利用向导创建;

展开student表节点,索引-新建索引,如下图,点击添加按钮,选择sname,点击确定,再点击确定。

方法二:使用语句创建索引;

(2) 在course表的cname列上建立唯一索引。

(3) 在sc表的sno列上建立聚集索引,将出现错误,如下图,请分析原因并完成该操作。

在弹出的如下窗口中输入相应的内容,如下所示,单击确定

2、创建用户

1)用此方法建立用户后,已经将用户映射到相应的登录名,后面的with default_schema也可以省略,默认的结构仍然是dbo

2) 用户p没有一些操作的权限,要用创建的登录账号进入进行验证,如下:

3、创建一个新角色。用语句创建角色,有三种方法 方法一:调用存储过程进行创建:

方法二:用create语句进行创建:

方法三:用向导创建:数据库——EDUC——安全性——角色——右击新建角色

4、给角色授权:将角色授权给用户,将角色所拥有的权限授予用户p。

6、验证授权操作:用cxp3登录账号登录后,进行验证。

实验体会:

经过三次上机实验,学到了很多东西,包括建表,导入数据,查询,插入。最重要的是我们有机会用电脑自己进行实践,没接触的时候总是觉得它比较深奥或是不可接近的新型语言,心理上有些陌生感。

总得来说第一次上机让我们熟悉了Microsoft SOL Server的运行环境,以及基本的建表输入数据,在第二次上机中,我们进行大量的SQL语句练习,从中对于SQL语句有了基本的认识,也为自己知识的漏洞查缺补漏。如:对于COUNT()这样的函数不能在where语句后出现等。

当然,还有很多不懂的地方,今后还需要自己再做更多的练习才行。

2)查询原有记录

3)插入一条学生记录,具体信息,学号:20090105,姓名:王丽,性别:女,班号:CS01,地址:下关路70#,年龄:17,身高:1.79,然后查询class表

4. 创建DELETE触发器t_dele_stu:在学生表(student)中删除一名学生,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动减1,并验证。请自行完成一次性删除多条记录的操作。 1)创建触发器t_dele_stu

2)查询删除前class表的记录;

3)删除上一步中插入的记录,即学号为20090105的学生记录,并查询class表的值

5. 创建UPDATE触发器t_update_stu,并验证。

五、实验总结

1、触发器的作用:当用户对某一个表进行修改操作时,激发相应的触发器起作用,由数据库服务器自动执行事先编写的SQL语句,来实现对其他表的修改。

2、一定要弄明白在什么表上才可以创建触发器。

实验十 存储过程的创建与使用

一、实验目的

本实验的目的是使学生进一步掌握SQL Server存储过程的创建及的使用方法,加深对SQL存储过程的理解。通过对存储过程的调用体会其作用。 二、实验要求

1. 在实验之前做好准备

2. 实验后提交实验报告,并验收实验结果 三、实验内容

1、创建一个不带参数的存储过程p_stu_info1,实现对学生基本信息以及相关课程成绩的查询。

2. 建立带有参数的存储过程p_stu_info2(根据传递的参数只显示与指定学号的学生同龄的所有同学)。 3. 创建一个带有参数的存储过程p_stu_info3,根据传递的编号,查询某学生的基本信息。 4. 创建一个存储过程p_stu_info4,根据输入的学生编号,返回其选课及其成绩。

四、实验步骤

1、创建一个不带参数的存储过程p_stu_info1,实现对学生基本信息以及相关课程成绩的查询。

2. 建立带有参数的存储过程p_stu_info2(根据传递的参数只显示与指定学号的学生同龄的所有同学)。

3. 创建一个带有参数的存储过程p_stu_info3,根据传递的编号,查询某学生的基本信息。

4. 创建一个存储过程p_stu_info4,根据输入的学生编号,返回其选课及其成绩。

实验十一 用户管理操作

一、实验目的

本实验的目的是使学生进一步掌握SQL Server用户角色及权限的使用方法,加深SQL用户管理的理解。SQL Server的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问该数据库数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。 二、实验要求

1. 通过SQL Server企业管理器,实现对SQL Server的用户和角色管理

2. 分别通过SQL Server企业管理器和SQL的数据控制功能,设置和管理数据操作权限 三、实验步骤 1、创建登录帐号

方法一:用语句创建: <1> 使用sp_addlogin 创建。

<2> 使用create login 创建

方法二:用向导创建:安全性-新建-登录

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

Top