1、1 数据库原理实验报告 题目:实验一 数据库和表的创建与管理 学号 姓名 班级 日期 一. 实验内容、步骤以及结果 1. 利用图形用户界面创建,备份,删除和还原数据库和数据表 (50 分,每小题 5 分) 数据库和表的要求(第四版教材第二章习题 5 要求的数据库) 数据库名:SPJ,其中包含四张表:S 表, P 表, J 表, SPJ 表 图 2.1 S 表(供货商表) 图 2.2 P 表(零件表) 图 2.4 SPJ 表( 供应情况表) 图 2.3 J 表(工程项目表 ) 2 完成以下具体操作: (1) 创建 SPJ 数据库,初始大小为 10MB,最大为 50MB,数据库自动增长,增长方 式
2、是按 5比例增长;日志文件初始为 2MB,最大可增长到 5MB,按 1MB 增长。 数据库的逻辑文件名和物理文件名均采用默认值。 (2) 在 SPJ 数据库中创建如图 2.1-图 2.4 的四张表(只输入一部分数据示意即可)。 (3) 备份数据库 SPJ(第一种方法):备份成一个扩展名为 bak 的文件。(提示:最 好先删除系统默认的备份文件名,然后添加自己指定的备份文件名) (4) 备份数据库 SPJ(第二种方法):将 SPJ 数据库定义时使用的文件(扩展名为 mdf,ldf 的数据文件、日志文件等)复制到其他文件夹进行备份。 (5) 删除已经创建的工程项目表(J 表)。 (6) 删除 SP
3、J 数据库。(可以在系统默认的数据存储文件夹下查看此时 SPJ 数据库 对应的 mdf,ldf 文件是否存在) (7) 利用备份过的 bak 备份文件还原刚才删除的 SPJ 数据库。(还原数据库) (8) 利用备份过的 mdf,ldf 的备份文件还原刚才删除的 SPJ 数据库。(附加) (9) 将 SPJ 数据库的文件大小修改为 100MB。 (10) 修改 S 表,增加一个联系电话的字段 sPhoneNo,数据类型为字符串类型。 实验具体步骤: (1)创建 SPJ 数据库:右击数据库新建数据库填写相应参数点击确定。如下 图: (2)在 SPJ 数据库中创建四张表:单击数据库 SPJ右击表新建
4、表填写参 数确定。如下图: 3 (3)备份数据库 SPJ(第一种方法):右击数据库 SPJ任务备份填参数确 定。如下图: 4 (4)备份数据库 SPJ(第二种方法):找到 SPJ 数据库定义时使用的文件(扩展名为 mdf,ldf 的数据文件、日志文件等)复制到其他文件夹进行备份,如下图: 5 (5)删除已经创建的工程项目表(J 表):单击数据库 SPJ-单击表-右击 J- 选择删除。如下图 6 (6)删除 SPJ 数据库:右击数据库 SPJ-选择删除命令。如下图 7 (7)利用备份过的 bak 备份文件还原刚才删除的 SPJ 数据库:右击数据库-选择 还原数据库命令-填写参数-确定。如下图 (
5、8)利用备份过的 mdf,ldf 的备份文件还原刚才删除的 SPJ 数据库:找到备份右 击数据库-选择还原数据库命令-填写参数- 确定。 (9)将 SPJ 数据库的文件大小修改 100M:右击数据库-右击 SPJ-填写参数- 右击属性-选择页点击文件-修改参数,如下图: 8 (10)修改 S 表,增加一个联系电话的字段 sPhoneNo,数据类型为字符串类型:点 击 SPJ-点击表-点击 s 表-修改参数,如下图: 2. 利用 SQL 语言创建和删除数据库和数据表(50 分,每小题 5 分) 数据库和表的要求 数据库名:Student, 其中包含三个表:S:学生基本信息表;C:课程基本信息 表
6、;SC:学生选课信息表。各表的结构以及数据如下所示: 9 图 2.5 S 表( 学生表) 图 2.7 SC 表(选课表) 图 2.6 C 表(课程表) 完成以下具体操作: (1) 用 SQL 语句创建如图 2.5-图 2.7 要求的数据库 Student, 初始大小为 20MB, 最大为 100MB,数据库自动增长,增长方式是按 10M 兆字节增长;日志文件初 始为 2MB,最大可增长到 5MB,按 1MB 增长。数据库的逻辑文件名和物理文件 名,日志文件名请自定义。 (2) 用 SQL 语句创建上述的三张表,各个字段的数据类型请自己确定,每张表只要 有主键约束即可,不要其他约束。不用输入数据
7、。 (3) 用 SQL 中的 backup 语句将数据库 Student 备份到一个 bak 文件。(提示: backup database student to disk) (4) 用 SQL 语句删除创建的表。 (5) 将 SPJ 数据库定义时使用的文件(扩展名为 mdf,ldf 的数据文件、日志文件等) 复制到其他文件夹进行备份(复制)后,用 SQL 语句删除创建的数据库。 (6) 用 SQL 中的 sp_attache_db 语句完成对数据库 Student 的附加。(通过该方式 完成数据库的恢复时,使用的备份文件是第 5)小题中备份好的数据文件、日 志文件等 ,具体用法:exec s
8、p_attache_db ) (7) 先删除 SPJ 库,再用 SQL 中的 restore 语句还原刚才备份的数据库 Student。 (提示:restore database student from disk) (8) 用 SQL 语言修改数据库 Student,给 Student 数据库添加一个文件组 TestFG1,然后将两个 5 MB 的文件添加到该文件组。(提示:alter database) (9) 修改 S 表,增加一个表示联系电话的字段 sPhoneNo,数据类型为字符串类型。 (10) 利用 SQL Server Management Studio 的生成脚本功能(选中
9、Student 库- 右键菜单“任务”- “生成脚本”),自动生成 S 表的创建脚本,分析自动生 成的脚本和自己写的 SQL 语句的异同点。 具体步骤如下: 10 (1):创建数据库:点击新建查询-输入 SQL 命令- 执行。 CREATE DATABASE Student ON ( NAME=Student_data, FILENAME=D:数据库Student_data.mdf, SIZE=20MB, MAXSIZE=100MB, FILEGROWTH=10MB ) LOG ON ( NAME=Student_log, FILENAME=D:数据库Student_log.ldf, SIZE
10、=2MB, MAXSIZE=5MB, FILEGROWTH=1MB ) GO (2)建表:点击新建查询-输入 SQL 命令- 执行。 CREATE TABLE S ( sno CHAR(10), sname CHAR(10), ssex CHAR(10), sbirth CHAR(10), sdept CHAR(10) ) CREATE TABLE C ( cno CHAR(5), cname CHAR(5), cpnoCHAR(5), ccredit CHAR(5) ) CREATE TABLE SC ( sno CHAR(5), cno CHAR(5), grade char(10) )
11、(3)备份:点击新建查询-输入 SQL 命令- 执行。 11 USE Student GO BACKUP DATABASE Student TO DISK = D:数据库备份数据库backup_Student WITH INIT GO (4)删除创建的表: DROP TABLE S GO DROP TABLE C GO DROP TABLE SC GO (5)删除数据库: USEmaster GO DROP DATABASE Student GO (6)数据库附加: EXEC sp_attach_db dbname=NStudent ,filename1=ND:数据库备份数据库Student_
12、data.mdf, filename2=ND:数据库备份数据库Student_log.ldf GO (7)还原数据库: 用SQL语句删除创建的数据库: USEmaster GO DROP DATABASE SPJ GO 还原数据库: l RESTORE DATABASE Student FROM DISK = G:数据库DB1备份数据库backup_Student WITH REPLACE GO (8)添加文件组: ALTER DATABASE TestFG1 12 ADD FILE ( NAME=TestFG1dat2, FILENAME = D:数据库t1dat1.ndf , SIZE =
13、 5MB ) ALTER DATABASE TestFG1 ADD FILE ( NAME=TestFG1dat2, FILENAME = D:数据库t1dat11.ndf, SIZE = 5MB ) (9)修改 S 表: ALTER TABLE S ADD NICKNAME CHAR(20) (10)利用 SQL Server Management Studio 的生成脚本功能(选中 Student 库-右键菜 单“任务”- “生成脚本”),自动生成 S 表的创建脚本,分析自动生成的脚本和自己 写的 SQL 语句的异同点。 二. 实验中出现的问题以及解决方案(对于未解决问题请将问题列出来) 这是第一次数据库实验,第一次切身体会编使用 SQL sever,第一次写 SQL 语句, 之前一个月对数据库这门课一直没有太大的兴趣,只觉得是无谓的学习,但是在真 正接触 SQL 后便被折服,4 小时的时间不足以完成任务,刚接触时还有些不适应但 后来便越来越得心印手了。 通过这次实验,使我加深了对数据库的兴趣,锻炼了动手操作能力。希望在以 后的实验课上经过努力是自己的数据库知识越来越丰富,能力越来越强。 批阅者: 批阅日期: 实验成绩: 批注: