数据库实验3实验报告文档格式.docx
《数据库实验3实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实验3实验报告文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
![数据库实验3实验报告文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/26/20e6598f-16d2-476f-a6a8-5b7f7187a4d5/20e6598f-16d2-476f-a6a8-5b7f7187a4d51.gif)
源代码:
/*创建数据库FlightDB,文件参数使用默认值*/
createdatabaseFlightDB
onprimary
(
name='
Data'
filename='
D:
\SQL\Data.mdf'
)
logon
(
Data_log'
\SQL\Data_log.log'
)
(2)用DDL(数据定义语句中的CreateTable)创建三表
1.航班表(hbb)包括如下字段:
航班号(hbh):
字符型,6位定长,主码,以CZ、CA、FM开头
始发地(sfd):
字符型,可变长统一编码字符型20位长,非空
目的地(mdd):
原价(YJ):
整型,非空,必须>
=0
2.乘客表(Ckb)包括如下字段:
号(sfzh):
字符型,20位变长字符串,主码
(xm):
可变长统一编码字符型,10位长
3.售票表(spb)包括如下字段:
主码
主码
起飞日期(qfrq):
日期时间型,非空
售票日期(sprq):
日期时间型,非空,默认值为当前时间
实价(sj):
整型,非空
其中:
航班号为引用航班表的外码,号为引用乘客表的外码。
/*建立三个表*/
useFlightDB
go
createtablehbb
(hbhchar(6)primarykey
check(hbhlike'
ca%'
orhbhlike'
cz%'
fm%'
),
sfdnvarchar(20)notnull,
mddnvarchar(20)notnull,
yjintcheck(yj>
=0)notnull
createtableckb
(sfzhvarchar(20)primarykey,
xmnvarchar(10)
createtablespb
(hbhchar(6)
sfzhvarchar(20),
qfrqsmalldatetimenotnull,
sprqsmalldatetimedefaultgetdate()notnull,
sjintnotnull,
primarykey(hbh,sfzh),
foreignkey(hbh)referenceshbb(hbh)
ondeletecascade,
foreignkey(sfzh)referencesckb(sfzh)
ondeletecascade
(3)用DML(数据操纵语句中的Insert)在hbb表中插入如下数据
CZ1301,,,1200
CZ1209,,,1300
CZ1502,,,1200
CA1130,,,1800
CA1230,,,1500
CA1401,,,1600
/*插入数据*/
insertintohbb
values('
CZ1301'
'
'
1200'
('
CZ1209'
1300'
CZ1502'
CA1130'
1800'
CA1230'
1500'
CA1401'
1600'
(4)对数据库进行一次完整备份,备份名为BackupFull
(5)用DML(数据操纵语句中的Insert)在乘客表和售票表中插入如下数据
代码
乘客
91201
王曼
91202
飞
91203
羽蕴
91204
王若雨
91205
蕊
航班号
起飞
售票
实价
CZ1301
2001-12-20
2001-11-20
900
CZ1209
800
CZ1502
2002-5-8
2002-5-2
1000
CA1230
2001-12-5
2001-12-4
1100
CA1401
2002-4-5
2002-4-4
1200
insertintockb
91201'
'
王曼'
('
91202'
飞'
91203'
羽蕴'
91204'
王若雨'
91205'
蕊'
insertintospb
2001-12-20'
2001-11-20'
900'
800'
2002-5-8'
2002-5-2'
1000'
2001-12-5'
2001-12-4'
1100'
2002-4-5'
2002-4-4'
(6)对数据库进行一次差异备份,备份名为BackupAdd1
(7)用DML(数据操纵语句中的Update)将所有目的地是的航班的原价提高10%
updatehbbsetyj=1.1*yj
wheremdd='
改动前:
改动后:
(8)用DML(数据操纵语句中的Delete)将“飞”乘客删除,注意同时删除售票记录和乘客基本信息。
delete
fromckb
whereckb.sfzh=all(selectsfzhfromspb
wherespb.hbh=all(selecthbhfromhbb))
andxm='
改动前:
(9)尝试使用MSSQLServer的还原功能,还原到上一次差异备份的BackupAdd1处。
(10)在SQLServer中创建一个用户FlightUser。
设置FlightUser用户对三表都有查询权,但是该用户不能对乘客表和航班表进行增加、删除和修改记录,该用户对售票表能增加、删除和修改记录。
然后用FlightUser登陆SQLServer,对如上权限设置进行验证。
execsp_addlogin'
FlightUser'
123'
FlightDB'
grantinsert,select,update,deleteonspbtopublic
grantselectonhbbtopublic
grantselectonckbtopublic
运行
select*fromckb
select*fromhbb
select*fromspb
updateckb
setsfzh='
91207'
wherexm='