数据库实验指导书.docx
《数据库实验指导书.docx》由会员分享,可在线阅读,更多相关《数据库实验指导书.docx(21页珍藏版)》请在冰豆网上搜索。
数据库实验指导书
数据库原理
实验指导书
2008年1月
实验一、数据库的创建与管理
一、实验目的
掌握运用sqlserver2000中企业管理器和Transact_SQL语句创建、删除、修改数据库。
二、实验要求
1.使用企业管理器创建、修改、删除一个学生数据库或物资数据库。
2.编写SQL程序创建、修改、删除一个学生数据库或物资数据库,并给出相应的程序注释
三、实验步骤
1.确保安装了SQLServer2000;
2.确保数据库服务器启动;
3.使用企业管理器创建、修改和删除数据库;
4.编写Transact_SQL语句创建、修改和删除数据库;
四、参考操作和源代码
1.使用企业管理器直接创建数据库
(1)打开企业管理器,在左窗格中双击要建立数据库的服务器节点,将该节点展开。
双击“数据库”节点,然后在右窗格中击空白区域,从弹出的快捷菜单中选择“新建数据库”命令,会弹出如图1-1所示的对话框。
图1-1新建数据库
(2)在“名称”文本框中输入正确的数据库名称,然后单击“数据库文件”选项卡,如图1-2所示。
在“文件名”栏中可以输入文件名,SQLServer2000在默认情况下自动在用户输入的文件名后增加上_Data字样。
图1-2“数据文件”选项卡
(3)在“文件组”栏中,输入文件所属的文件组名称。
(4)在“文件属性”选项组里,选中“文件自动增长”复选框,当数据文件的空间不够用时,SQLServer2000可以自动增加容量。
SQLServer2000提供了两种方式来实现数据文件的自动增加。
一种是以“按兆字节”的方式递增,一次增加1MB;另外一种方式是以“按百分比”的方式递增,一次递增原数据库文件容量的10%。
(5)单击“位置”栏中的按钮,弹出图1-3所示对话框,可以选择存放数据文件的位置。
图1-3“查找数据库文件”对话框
(6)单击“确定”按钮,返回“数据库属性”对话框,单击“事务日志”选项卡,输入日志文件的名称、位置、大小,在日志需要更多空间时可以在“文件属性”选项组中设置日志文件自动增长和最大值选项,方法与设置数据文件类似,如图1-4所示。
图1-4“事务日志”选项卡
(7)双击数据库,即可查看、修改其属性
2.使用Transact-SQL语句创建、查看、修改、删除数据库
(1)打开查询分析器。
(2)在查询分析器里编写创建、查看、修改、删除数据库的Transact-SQL语句。
参考源代码:
--创建学生数据库
CREATEDATABASEstudent
ONPRIMARY
(NAME=student1_dat,
FILENAME='e:
\学习\student1_dat.mdf',
SIZE=10,MAXSIZE=50,FILEGROWTH=15%),
(NAME=student2_dat,
FILENAME='e:
\学习\student2_dat.Ndf',
SIZE=10,MAXSIZE=50,FILEGROWTH=15%),
FILEGROUPstudentGroup1
(NAME=student1Fi1_dat,
FILENAME='e:
\学习\student1Fi1_dat.ndf',
SIZE=10,MAXSIZE=50,FILEGROWTH=5),
(NAME=student1Fi2_dat,
FILENAME='e:
\学习\student1Fi2_dat.ndf',
SIZE=10,MAXSIZE=50,FILEGROWTH=5),
FILEGROUPstudentGroup2
(NAME=student2Fi1_dat,
FILENAME='e:
\学习\student2Fi1_dat.ndf',
SIZE=10,MAXSIZE=50,FILEGROWTH=5),
(NAME=student2Fi2_dat,
FILENAME='e:
\学习\student2Fi2_dat.ndf',
SIZE=10,MAXSIZE=50,FILEGROWTH=5)
LOGON
(NAME=student_log,
FILENAME='e:
\学习\studentlog.ldf',
SIZE=5,MAXSIZE=25,FILEGROWTH=5)
--查看数据库属性
--主要通过sp_dboption来完成查看操作,语法如下
sp_dboption[[@dbname=]’database’]
[,[@optname=]’option_name’]
[,[@optvalue=]’option_value’]
--修改日志文件的最大值为150MB
USEstudent
GO
ALTERDATABASEstudentMODIFY
FILE(NAME=student1_log,MAXSIZE=150MB)
GO
--修改日志文件的初始值为20MB
USEstudent
GO
ALTERDATABASEstudentMODIFY
FILE(NAME=student1_log,SIZE=20MB)
GO
--查看数据库信息(验证数据库是否已经修改成功)
sp_helpdbstudent
--更改数据库(语法)
ALTERDATABASE
{--向指定的文件组里增加新的数据文件
ADDFILE[1…n][TOFILEGROUPfilegroup_name]
--增加新的日志文件
|ADDLOGFILE[1…n]
--删除某一个操作系统文件
|REMOVEFILElogical_file_name
--增加一个文件组
|ADDFILEGROUPfilegroup_name
--删除某一个文件组
|REMOVEFILEGROUPFILEGROUPfilegroup_name
--修改某操作系统文件属性
|MODIFYFILE
--修改某文件组的属性,其中包括READONLY(只读)、READWRITE(可读,--可写)、DEFAULT(设置该文件组为默认文件组)
|MODIFYFILEGROUPfilegroup_namefilegroup_property
}
:
:
=
(NAME=logical_file_name
[,FILENAME=’os_file_name’]
[,SIZE=size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=growth_increment])
--删除数据库
USEstudent
DROPDATABASEstudent
--缩小数据库(语法)
BDCCSHRINKDATABASE
(database_name[,target_percent]
--arget_percent:
当数据库被缩小后还剩下的自由空间。
[,{NOTRUNCATE|TRUNCATEONLY}]
--NOTRUNCATE:
被释放的空间将不被操作系统回收,仍保持在数据库文件内。
--TRUNCATEONLY:
将所有未使用的数据库空间释放并让操作系统回收,将忽--略arget_percent
)
--缩小某一个操作系统文件的长度(语法)
DBCCSHRINKFILE
(file_name
{[,target_size]--将文件缩小到指定长度
|[,{EMPTYFILE|NOTRUNCATE|TRUNCATEONLY}]
--EMPTYFILE:
将指定文件上的数据全部转移到本文件组内其他文件上,以后--的操作将不会再在该文件上增加数据。
}
)
实验二、SQL定义、删除、修改表实验
一、实验目的
掌握运用sqlserver中Transact_SQL语句创建、删除、修改表。
二、实验要求
1.创建学生或物资数据库的表。
2.给出相应的程序注释。
三、实验步骤
1.确保安装了SQLServer2000;
2.确保数据库服务器启动;
3.使用Transact_SQL语句创建、修改和删除表
4.编译并执行Transact_SQL语句。
四、参考源代码
1.创建学生表
--创建名为Student的学生表
CREATETABLEStudent
--学号列,类型:
固定长度为5的字符串
(SnoCHAR(5),
--姓名,最大长度为20的可变字符串
SnameVARCHAR(20)unique,
--性别,固定长度为2的字符串
SsexCHAR
(2),
--年龄,整型
SageINT,
--所在系别,最大长度为15的可变字符串
SdeptCHAR(15)
--设置学号列为主码
PRIMARYKEY(Sno));
2.创建课程表
--创建名为Course的课程表
CREATETABLECourse(
--课程号列,类型:
固定长度为3的字符串
CnoCHAR(3),
--课程名,最大长度为20的可变字符串
CnameVARCHAR(20),
--先行课号,类型:
固定长度为3的字符串
CpnoCHAR(3),
--学分,整型
CcreditINT,
--设置课程号列为主码
Primarykey(Cno),
--设置先行课号为外码(参照本表)
Foreignkey(Cpno)REFERENCESCourse);
3.创建选课表
--创建名为SC的选课表
CREATETABLESC(
--学号列,类型:
固定长度为5的字符串
SnoCHAR(5),
--课程号列,类型:
固定长度为3的字符串
CnoCHAR(3),
--成绩列,整型
Gradeint,
--用户自定义完整性,成绩列必须[0,100]
CHECK(Grade>=0andGrade<=100),
--设置(学号、课程号)为主码
Primarykey(Sno,Cno),
--设置学号为外码(参照Student表)
Foreignkey(Sno)REFERENCESStudent,
--设置课程号为外码(参照Course表)
Foreignkey(Cno)REFERENCESCourse);
4.向学生表加“入学时间”列
ALTERTABLEStudentADDScomeDATETIME;
5.删除学生表中的Sage列,然后再增加该列
ALTERTABLEStudentDROPCOLUMNSage;
ALTERTABLEStudentADDSageINT;
6.删除学生表中的唯一约束
ALTERTABLEstudentDROPUQ__Student__145C0A3F;
7.将学生年龄Sage的数据类型改为半字长整数
ALTERTABLEStudentALTERCOLUMNSagesmallint;
8.为学生-课程数据库中的Student,Course,SC三个表建立唯一索引
--在Student表中按Sno升序建立名为Stusno的索引
CREATEUNIQUEINDEXStusnoONStudent(Sno);
--在Course表中按Cno升序建立名为Coucno的索引
CREATEUNIQUEINDEXC