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