数据库系统及应用实验与课程设计指导实验报告文档格式.docx
- 文档编号:22059713
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:72
- 大小:2.87MB
数据库系统及应用实验与课程设计指导实验报告文档格式.docx
《数据库系统及应用实验与课程设计指导实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据库系统及应用实验与课程设计指导实验报告文档格式.docx(72页珍藏版)》请在冰豆网上搜索。
12325345'
select*fromsys.partitions
select*fromsys.allocation_units
select*fromsys.allocation_unitsu,sys.partitionsp
whereu.typein(1,3)andu.container_id=p.hobt_idandp.object_id='
33'
unionall
whereu.type=2andu.container_id=p.partition_idandp.object_id='
select*fromsys.dm_db_partition_stats
select*fromsys.index_columns
11'
select*fromsys.database_principals
select*fromsys.types
实验二数据库的创建和管理
要求学生熟练的使用SQL创建和管理数据库,并学会使用SQL查询分析器接受和运行结果分析。
创建数据库,查看和修改数据库的属性,修改数据库名称,删除数据库.
--数据库的创建
createdatabaseeduc
onprimary
name=student_data,
filename='
C:
\ProgramFiles\MicrosoftSQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\student_data.mdf'
size=10MB,
maxsize=50MB,
filegrowth=1MB
logon
name=student_log,
filename='
\ProgramFiles\MicrosoftSQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\student_log.ldf'
size=2MB,
maxsize=5MB,
filegrowth=1%
useeduc
go
selectdatabase_id,is_read_only,collation_name,compatibility_level
fromsys.databaseswherename='
educ'
selectdatabasepropertyex('
'
isautoshrink'
usejxgl
selectobject_name(id)as'
数据表名'
fromsysobjects
wherextype='
u'
andobjectproperty(id,'
ismsshipped'
)=0
go
execsp_spaceused
alterdatabasejxgl
addfile
name=xs_data,
\ProgramFiles\MicrosoftSQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\jxglsys\xs_data.ndf'
size=3MB,
maxsize=10MB
go
addlogfile
name=xs_log,
'
filegrowth=10%
alterdatabaseeduc
removefilexs_log
modifyname=xjgl
execsp_renamedb'
xjgl'
实验三数据表的创建和管理
//Dept_info数据表的创建
createtableDept_info
dnochar(4)primarykey,
dnamechar(16)notnull,
d_chairchar(8),
d_addressvarchar(50),
telchar(12)
GO
//class_info数据表的创建
createtableclass_info
classnochar(4)primarykey,
monitorchar(8),
instructorchar(8),
telchar(12),
dnochar(4),
foreignkey(dno)referencesDept_info(dno)
//student_info数据表的创建
createtableStudent_info
snochar(8)primarykey,
snamechar(8)notnull,
sexchar
(2),
s_nativevarchar(50),
birthdaysmalldatetime,
classnochar(4),
entimesmalldatetime,
homevarchar(50),
foreignkey(dno)referencesDept_info(dno),
foreignkey(classno)referencesclass_info(classno),
insertintoclass_info(classno,dname,monitor,instructor,tel)
values('
S13'
王小明'
王大明'
大的'
123456789123'
insertintosc(sno,cno,garde)values('
s13'
c12'
88)
insertintsc(sno,cno)values('
ss3'
d9'
createtables
snochar(9)primarykey,
snamechar(8),
agesmallint,
sdeptvarchar(50)
实验四数据库约束实验
1.理解数据库完整性约束的概念
2.掌握SQL的完整性约束实验技术
3.了解SQL的违反完整性约束的处理措施
1.理解域完整性,实体完整性,参照完整性和用户定义完整性的意义
2.定义和管理主键约束,外键约束,唯一性约束.
3.定义和管理检查约束,默认值约束,允许空值约束.
)--X*Y
selectidentity(int,1,1)as#id,*into#tmpfroms
--SELECTIDENTITY(int,1,1)asPID,empID*1asempID,empNameINTO#TFROMs
select*from#tmp
go--X*Y
altertables
withnocheckaddconstraintck_s_dept
check(sdeptin('
cs'
ma'
is'
)),
constraintck_s_agecheck(age>
=15andage<
=30)
altertableswithnocheck
addconstraintck_s_age_sdept
)andage>
addconstraintck_s_age_dept
check((sdept='
andsdept>
=15)or(sdept='
andsdept<
=30)or(sdept='
))
--外键的定义X*Y
createtablesc1
(snochar(9)notnull,--字号字段,非空字段约束
cnochar(4)notnull,--课程编号字段,非空约束
scorerealnull,--成绩字段
primarykey(sno,cno),--主键约束
foreignkey(sno)referencesstudent(s),--外键约束
foreignkey(cno)referencescourse(c)--外键约束
--增加外键约束X*Y
begintransaction
altertablesc1addconstraintFK_student_sno
foreignkey(sno)
referencesstudent(sno)
committransaction
--删除外键X*Y
begintransaction
altertablesc1dropconstraintfk_student_sno
commit
实验五SELECT数据查询
要求能熟练使用语句进行数据查询,掌握SELECT语句的基本结构和多表连接查询,子查询,分组查询,查询结果的排序等操作.
1.利用SELECT查询语句进行单表,多表查询设计
2.利用SELECT语句进行子查询和外连接查询
3.设计ORDERBY查询语句以及带有GROUPBY的查询子句。
三实验指导
--select语句数据查询
--查询计算机系的学生及年龄不大于岁的学生X*Y
--select*
--fromstudent
--wheresdept='
--union
fromstudent
wheresage>
=28;
--查询选修了课程或者课程的学生
selectsno
fromsc
wherecno='
1'
union
2'
;
--查询选修了课程或者课程的学生X*Y7
wherec='
01'
02'
--查询计算机系的学生与年龄不大于岁的学生的交集
wheressex='
男'
intersect--except此时是求的差集X*Y
=19;
实验六游标操作
使学生加深对游标概念的理解,掌握游标的定义,使用方法,以及使用游标查询,修改和删除数据的方法。
1.利用游标逐行显示所查询的数据块的内容
2.利用游标显示指定行的数据内容
3.利用游标修改和删除指定的数据元组
--实验游标操作
--6.1逐条显示
declarecs_cursorscrollcursor
for
selects,sname,sage,ssex
--forreadonly
opencs_cursor
fetchfromcs_cursor
--显示指定行数据
selects,sname,sage,ssex
wheres='
fetchfirstfromcs_cursor
fetchlastfromcs_cursor
fetchpriorfromcs_cursor
--显示从游标开始的第二条记录
fetchabsolute2fromcs_cursor
--关闭游标
closecs_cursor
deallocatecs_cursor
--用游标修改数据X*Y
selectsname,ssex
forupdateofsname
updatestudent
setsname='
玩玩吧'
wherecurrentofcs_cursor
--用游标删除数据X*Y
fromstudent
deletefromstudentwherecurrentofcs_cursor
--用游标遍历数据
selectstudent.s,sname,sagefromstudent,scwherestudent.s=sc.s
declare@schar(9)
declare@snamechar(8)
declare@sageint
fetchnextfromcs_cursorinto@s,@sname,@sage
while@@fetch_status=0
begin
print@s+'
+str(@sage)
fetchnextfromcs_cursorinto@s,@sname,@sage
end
--用游标备份数据库
declare@namevarchar(50)--数据库名
declare@pathvarchar(256)--文件备份路径
declare@fileNamevarchar(256)--备份文件名
declare@fileDatevarchar(20)--用户数据文件
set@path='
\ProgramFiles\MicrosoftSQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATAD:
\educ'
select@fileDate=convert(varchar(20),getdate(),112)
declaredb_cursorcursorfor
selectname
fromeduc.dbo.sysdatebases
wherenamenotin('
master'
model'
msdb'
tempdb'
opendb_cursorinto@name
set@filename=@path+@name+'
_'
+@fileDate+'
.bak'
backupdatebase@nametodisk=@fileName
fetchnextfromcs_cursorinto@name
实验七存储过程的创建与应用
使学生理解存储过程的概念,掌握存储过程的创建和执行,并掌握存储过程的查看,修改和删除.
a)创建存储过程.
b)修改存储过程.
c)调用存储过程
d)删除存储过程.
--实验七存储过程的创建与应用
--7.1创建存储过程
createprocedures_age
as
selectstudent.s,sname,ssex,sage
fromstudentjoinsconstudent.s=sc.sjoincourseonsc.s=course.c
--调用存储过程
execs_age
--7.2创建存储过程,要求输入名字,能从SC表中查到该学生的平均成绩
createprocedureproc_exp@s_namechar(20)
selectavg(score)as'
平均成绩'
fromstudentjoinsconstudent.s=sc.sandsname=@s_name
--调用存储过程,求“钱电”平均成绩
execproc_exp'
钱电'
--四,存储过程的删除
dropprocedureproc_add
--7.7
dropprocedureproc_exp
--7.3
--createatablenameiss_info,intothename,outputthecoursesandavg
createprocedures_info@s_namechar(8)
declare@s_countint
declare@s_avgreal
select@s_count=count(c),@s_avg=avg(score)
print@s_name+'
thestudentallhave'
+str(@s_count)+'
courses.Andtheaverageis:
+str(@s_avg)
--7.6存储过程的调用
execprocedure_name<
参数>
--1添加信息X*Y
useeduc
createprocedureproc_add(@svarchar(10),@cvarchar(10),@scoreint)
insertintosc
values(@s,@c,@score)
--调用proc_add
execproc_add'
84
78
--调用存储过程s-info
execs_info'
--7.4--查看数据表的索引信息--创建
createproctable_info@tablevarchar(30)
selecttable_name=sysobjects.name,
index_name
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 应用 实验 课程设计 指导 报告