数据库实验3实验报告Word文档下载推荐.docx
《数据库实验3实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库实验3实验报告Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
源代码:
/*创建数据库FlightDB,文件参数使用默认值*/
createdatabaseFlightDB
onprimary
(
name='
Data'
='
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='