数据库实验3实验报告.docx
- 文档编号:12198553
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:10
- 大小:358.92KB
数据库实验3实验报告.docx
《数据库实验3实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验3实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
数据库实验3实验报告
中南大学
数据库原理
实验三
实验报告
学生姓名
学号
专业班级
指导教师周芳芳
学院信息科学与工程学院
完成时间2015年5月
一、实验目的
1.熟悉大型数据库实验环境,以MSSQLSERVER为例。
2.掌握DDL语句,使用DDL语句完成数据表的创建。
3.掌握DML语句,使用DML语句完成数据的插入、修改和删除
4.掌握MSSQLSERVER的备份和还原
5.掌握MSSQLSERVER的权限分配
二、实验内容
(1)用DDL(数据定义语句中的Createdatabase)创建一个新数据库FlightDB,数据库文件的设置都可以使用默认值。
源代码:
/*创建数据库FlightDB,文件参数使用默认值*/
createdatabaseFlightDB
onprimary
(
name='Data',
filename='D:
\SQL\Data.mdf'
)
logon
(
name='Data_log',
filename='D:
\SQL\Data_log.log'
)
(2)用DDL(数据定义语句中的CreateTable)创建三张表
1.航班表(hbb)包括如下字段:
航班号(hbh):
字符型,6位定长,主码,以CZ、CA、FM开头
始发地(sfd):
字符型,可变长统一编码字符型20位长,非空
目的地(mdd):
字符型,可变长统一编码字符型20位长,非空
原价(YJ):
整型,非空,必须>=0
2.乘客表(Ckb)包括如下字段:
身份证号(sfzh):
字符型,20位变长字符串,主码
姓名(xm):
可变长统一编码字符型,10位长
3.售票表(spb)包括如下字段:
航班号(hbh):
主码
身份证号(sfzh):
主码
起飞日期(qfrq):
日期时间型,非空
售票日期(sprq):
日期时间型,非空,默认值为当前时间
实价(sj):
整型,非空
其中:
航班号为引用航班表的外码,身份证号为引用乘客表的外码。
源代码:
/*建立三个表*/
useFlightDB
go
createtablehbb
(hbhchar(6)primarykey
check(hbhlike'ca%'orhbhlike'cz%'orhbhlike'fm%'),
sfdnvarchar(20)notnull,
mddnvarchar(20)notnull,
yjintcheck(yj>=0)notnull
)
createtableckb
(sfzhvarchar(20)primarykey,
xmnvarchar(10)
)
createtablespb
(hbhchar(6)
check(hbhlike'ca%'orhbhlike'cz%'orhbhlike'fm%'),
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','上海','北京','1200'),
('CA1130','成都','北京','1800'),
('CA1230','拉萨','广州','1500'),
('CA1401','广州','南京','1600')
(4)对数据库进行一次完整备份,备份名为BackupFull
(5)用DML(数据操纵语句中的Insert)在乘客表和售票表中插入如下数据
代码
乘客
91201
王曼
91202
张飞
91203
刘羽蕴
91204
王若雨
91205
张蕊
航班号
乘客
起飞
售票
实价
CZ1301
91201
2001-12-20
2001-11-20
900
CZ1209
91202
2001-12-20
2001-11-20
800
CZ1502
91201
2002-5-8
2002-5-2
1000
CA1230
91201
2001-12-5
2001-12-4
1100
CA1401
91202
2002-4-5
2002-4-4
1200
CZ1301
91203
2001-12-20
2001-11-20
900
CZ1209
91204
2001-12-20
2001-11-20
800
CZ1502
91205
2002-5-8
2002-5-2
1000
源代码:
insertintockb
values('91201','王曼'),
('91202','张飞'),
('91203','刘羽蕴'),
('91204','王若雨'),
('91205','张蕊')
insertintospb
values('CZ1301','91201','2001-12-20','2001-11-20','900'),
('CZ1209','91202','2001-12-20','2001-11-20','800'),
('CZ1502','91201','2002-5-8','2002-5-2','1000'),
('CA1230','91201','2001-12-5','2001-12-4','1100'),
('CA1401','91202','2002-4-5','2002-4-4','1200'),
('CZ1301','91203','2001-12-20','2001-11-20','900'),
('CZ1209','91204','2001-12-20','2001-11-20','800'),
('CZ1502','91205','2002-5-8','2002-5-2','1000')
(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='张飞'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告