数据库实验3实验报告.docx

上传人:b****2 文档编号:2437350 上传时间:2023-05-03 格式:DOCX 页数:10 大小:358.92KB
下载 相关 举报
数据库实验3实验报告.docx_第1页
第1页 / 共10页
数据库实验3实验报告.docx_第2页
第2页 / 共10页
数据库实验3实验报告.docx_第3页
第3页 / 共10页
数据库实验3实验报告.docx_第4页
第4页 / 共10页
数据库实验3实验报告.docx_第5页
第5页 / 共10页
数据库实验3实验报告.docx_第6页
第6页 / 共10页
数据库实验3实验报告.docx_第7页
第7页 / 共10页
数据库实验3实验报告.docx_第8页
第8页 / 共10页
数据库实验3实验报告.docx_第9页
第9页 / 共10页
数据库实验3实验报告.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库实验3实验报告.docx

《数据库实验3实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验3实验报告.docx(10页珍藏版)》请在冰点文库上搜索。

数据库实验3实验报告.docx

数据库实验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='张飞'

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2