数据库实验指导书zaWord格式.docx
- 文档编号:17329939
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:48
- 大小:1.01MB
数据库实验指导书zaWord格式.docx
《数据库实验指导书zaWord格式.docx》由会员分享,可在线阅读,更多相关《数据库实验指导书zaWord格式.docx(48页珍藏版)》请在冰豆网上搜索。
参考源代码:
--创建学生数据库
CREATEDATABASEstudent
ONPRIMARY
(NAME=student1_dat,
FILENAME='
e:
\学习\student1_dat.mdf'
SIZE=10,MAXSIZE=50,FILEGROWTH=15%),
(NAME=student2_dat,
\学习\student2_dat.Ndf'
FILEGROUPstudentGroup1
(NAME=student1Fi1_dat,
\学习\student1Fi1_dat.ndf'
SIZE=10,MAXSIZE=50,FILEGROWTH=5),
(NAME=student1Fi2_dat,
\学习\student1Fi2_dat.ndf'
FILEGROUPstudentGroup2
(NAME=student2Fi1_dat,
\学习\student2Fi1_dat.ndf'
(NAME=student2Fi2_dat,
\学习\student2Fi2_dat.ndf'
SIZE=10,MAXSIZE=50,FILEGROWTH=5)
LOGON
(NAME=student_log,
\学习\student-log.ldf'
SIZE=5,MAXSIZE=25,FILEGROWTH=5)
--查看数据库属性
--主要通过sp_helpdb来完成查看操作,语法如下
sp_helpdb[[@dbname=]’database’]
[,[@optname=]’option_name’]
[,[@optvalue=]’option_value’]
--修改日志文件的最大值为150MB
USEstudent
GO
ALTERDATABASEstudentMODIFY
FILE(NAME=student1_log,MAXSIZE=150MB)
--修改日志文件的初始值为20MB
FILE(NAME=student1_log,SIZE=20MB)
--查看数据库信息(验证数据库是否已经修改成功)
sp_helpdbstudent
--更改数据库(语法)
ALTERDATABASE
{--向指定的文件组里增加新的数据文件
ADDFILE<
filespec>
[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])
--删除数据库
DROPDATABASEstudent
--缩小数据库(语法)
BDCCSHRINKDATABASE
(database_name[,target_percent]
--arget_percent:
当数据库被缩小后还剩下的自由空间。
[,{NOTRUNCATE|TRUNCATEONLY}]
--NOTRUNCATE:
被释放的空间将不被操作系统回收,仍保持在数据库文件内。
--TRUNCATEONLY:
将所有未使用的数据库空间释放并让操作系统回收,将忽--略arget_percent
)
--缩小某一个操作系统文件的长度(语法)
DBCCSHRINKFILE
(file_name
{[,target_size]--将文件缩小到指定长度
|[,{EMPTYFILE|NOTRUNCATE|TRUNCATEONLY}]
--EMPTYFILE:
将指定文件上的数据全部转移到本文件组内其他文件上,以后--的操作将不会再在该文件上增加数据。
)
实验一、2.SQL定义、删除、修改表实验
一、实验目的
掌握运用sqlserver中Transact_SQL语句创建、删除、修改表。
二、实验要求
1.创建学生或物资数据库的表。
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(
SnoCHAR(5),
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.增加学生表中的唯一约束
ALTERTABLEstudentaddunique(sno);
7.将学生年龄Sage的数据类型改为半字长整数
ALTERTABLEStudentALTERCOLUMNSagesmallint;
8.为学生-课程数据库中的Student,Course,SC三个表建立唯一索引
--在Student表中按Sno升序建立名为Stusno的索引
CREATEUNIQUEINDEXStusnoONStudent(Sno);
--在Course表中按Cno升序建立名为Coucno的索引
CREATEUNIQUEINDEXCoucnoONCourse(Cno);
--在SC表中按Sno升序、Cno降序建立名为SCno的索引
CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);
9.删除Course表的Coucno索引
DROPINDEXCourse.Coucno;
实验二、1.单表查询列实验
1.了解单表查询的概念和方法。
2.掌握SELECT语句在单表查询列中的应用。
3.掌握各种查询列的使用方法。
1.编写Transact_SQL语句实现各种列查询方式——单表。
3.编写Transact_SQL语句针对学生或物资数据库中的表进行列查询;
--1查询全体学生的学号与姓名
SELECTSno,Sname
FROMStudent;
--2查询全体学生的姓名、学号、所在系。
SELECTSname,Sno,Sdept
--3查询全体学生的详细记录。
SELECTSno,Sname,Ssex,Sage,Sdept
或
SELECT*
--4查全体学生的姓名及其出生年份
SELECTSname,2005-Sagebirth
--5查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。
SELECTSname,'
YearofBirth:
'
2005-Sage,LOWER(Sdept)
--6使用列别名(字符)改变查询结果的列标题
SELECTSnameNAME,'
BIRTH,2005-SageBIRTHDAY,LOWER(Sdept)DEPARTMENT
--7使用列别名(汉字)改变查询结果的列标题
SELECTCno'
课程号'
Cname'
课程名'
Ccredit'
学分'
FROMCourse;
实验二、2.单表查询行实验
2.掌握SELECT语句在单表查询行中的应用。
3.掌握各种查询行的使用方法。
1.编写Transact_SQL语句实现各种行查询方式——单表。
--1查询所有选修了课程的学号
SELECTDISTINCTSno
FROMSC;
--2查询学分在2-4之间的课程信息
FROMCourse
WHERECcredit>
=2ANDCcredit<
=4;
--或
WHERECcreditBETWEEN2AND4;
--3查询课程号为1、4、7的课程信息
WHERECnoIN('
1'
'
4'
7'
);
--4查询姓‘刘’的学生学号和姓名
FROMStudent
WHERESnameLIKE'
刘%'
;
--5查询课程名以‘DB_’开头倒数第2个字为g的课程信息
WHERECnameLIKE'
DB\_%g_'
ESCAPE'
\'
--6查询出学分大于3的课程信息,并按学分升序进行排列
WHERECredit>
3
ORDERBYCcreditASC;
--7查询选修了课程的学生及其对应的平均成绩
SELECTSno,AVG(Grade)
FROMSC
GROUPBYSno;
实验二、3.多表连接查询
1.了解多表连接查询的概念和方法。
2.掌握复杂查询的使用方法。
3.掌握多表连结的方法。
4.掌握SELECT语句在多表连接查询中的应用。
1.编写Transact_SQL语句实现多表连接查询。
3.编写Transact_SQL语句针对学生或物资数据库中的表进行各种连接查询;
--1查询每个学生及其选修课情况
SELECTStudent.*,SC.*
FROMStudent,SC
WHEREStudent.Sno=SC.Sno;
--消除上例结果的重复列
SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
--2以Student表为主体列出每个学生的基本情况及其选课情况,如果学生没有选课,只输出
--其基本情况。
WHEREStudent.sno*=SC.Sno;
--3查询每门课的间接先行课
SELECTFirst.Cno,Second.Cpno
FROMCourseFirst,CourseSecond
WHEREFirst.Cpno=Second.Cno;
--4查询选修2号课程且成绩在80分以上的所有学生信息
SELECTStudent.Sno,Sname,Grade
FROMStudent,SC
WHEREStudent.Sno=SC.SnoANDSC.Grade>
80;
--5查询每个学生的学号、姓名、选修的课程名及成绩
SELECTStudent.Sno,Sname,Cname,Grade
FROMStudent,SC,Course
WHEREStudent.Sno=SC.SnoANDSC.Cno=Course.Cno;
--6查询姓陈的,全名为3个字的学生选课信息
SELECTSC.*
FROMSC,Student
WHERESC.Sno=Student.SnoANDSnameLIKE‘陈____’;
实验三、SQL定义、删除、修改视图实验
掌握运用sqlserver中Transact_SQL语句创建、删除、修改视图。
1.按要求创建一些视图,通过视图更新数据。
3.使用Transact_SQL语句创建视图,通过视图更新数据;
--1创建计算机系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有计算机系--的学生
CREATEVIEWCS_Student
AS
SELECTSno,Sname,Sage,Sdept
WHERESdept='
CS'
--在修改和插入操作时,保证该视图只有计算机系的学生
WITHCHECKOPTION
--2建立计算机系选修了2号课程的学生视图
CREATEVIEWCS_SC(Sno,Sname,Grade)
ANDStudent.Sno=SC.SnoANDSC.Cno='
--3建立计算机系选修了2号课程且成绩在80分以上的学生的视图
CREATEVIEWCS_SC1
SELECTSno,Sname,Grade
FROMCS_SC
WHEREGrade>
=80
--4建立一个反映学生出生年份的视图
CREATEVIEWBT_S(Sno,Sname,Sbirth)
SELECTSno,Sname,2005-Sage
--5将选修了课程的学生学号及相应的平均成绩建立成一个视图
CREATEVIEWS_AG(Sno,Gavg)
SELECTSno,AVG(Grade)
GROUPBYSno
--6删除视图CS_SC1
DROPVIEWCS_SC1;
--7在S_AG视图中查询平均成绩在80分以上的学生学号和平均成绩
FROMS_AG
WHEREGavg>
=80;
--8向计算机系学生视图CS_Student中插入一个新的学生记录(03033,'
黄琴,20,'
cs'
INSERT
INTOCS_Student
VALUES('
03033'
黄琴'
20,'
--9将计算机系学生视图CS_Student中学号为03031的学生年龄改为23岁
UPDATECS_Student
SETSage=23
WHERESno='
03031'
--10删除计算机系学生视图CS_Student中学号为03032的记录
DELETE
FROMCS_Student
03032'
实验四数据库备份和恢复
备份和恢复数据库
1.掌握使用企业管理器和Transact-SQL语句备份数据库的方法
2.掌握使用企业管理器和Transact-SQL语句恢复数据库的方法
1.确保安装了SQLServer2000;
2.确保数据库服务器启动;
3.使用SQLServer企业管理器管理备份、恢复数据库
4.使用Transact-SQL命令备份、恢复数据库
a)创建与管理备份设备
在进行备份前首先必须创建备份设备。
备份设备是用来存储数据库事务日志或文件和文件组的存储介质,其可以是硬盘、磁带或管道等。
A.使用企业管理器创建备份设备
(1)展开服务器组及相关的服务器,选择【管理】节点,右击【备份】,如图4.1所示,然后在快捷菜单中单击【新建备份设备】命令,弹出如图4.2所示的【备份设备属性】对话框。
图4.1通过快捷菜单新建备份设备
图4.2创建备份设备属性
(2)在【备份设备属性】对话框的【名称】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 指导书 za