当前位置:文档之家› 数据库实验3实验报告

数据库实验3实验报告

中南大学数据库原理实验三实验报告学生姓名学号专业班级指导教师周芳芳学院信息科学与工程学院完成时间2015年5月目录一、实验目的 (2)二、实验容 (3)(1)用DDL(数据定义语句中的Create database)创建一个新数据库FlightDB,数据库文件的设置都可以使用默认值。

(3)(2)用DDL(数据定义语句中的Create Table)创建三表3(3)用DML(数据操纵语句中的Insert)在hbb表中插入如下数据 (5)(4)对数据库进行一次完整备份,备份名为BackupFull . 6(5)用DML(数据操纵语句中的Insert)在乘客表和售票表中插入如下数据 (7)(6)对数据库进行一次差异备份,备份名为BackupAdd1 . 9(7)用DML(数据操纵语句中的Update)将所有目的地是的航班的原价提高10% (9)(8)用DML(数据操纵语句中的Delete)将“飞”乘客删除,注意同时删除售票记录和乘客基本信息。

(10)(9)尝试使用MS SQL Server的还原功能,还原到上一次差异备份的BackupAdd1处。

(12)(10)在SQL Server中创建一个用户FlightUser。

(12)一、实验目的1.熟悉大型数据库实验环境,以MS SQL SERVER为例。

2.掌握DDL语句,使用DDL语句完成数据表的创建。

3.掌握DML语句,使用DML语句完成数据的插入、修改和删除4.掌握MS SQL SERVER的备份和还原5.掌握MS SQL SERVER的权限分配二、实验容(1)用DDL(数据定义语句中的Create database)创建一个新数据库FlightDB,数据库文件的设置都可以使用默认值。

源代码:/*创建数据库FlightDB,文件参数使用默认值*/create database FlightDBon primary(name='Data',filename='D:\SQL\Data.mdf')log on(name='Data_log',filename='D:\SQL\Data_log.log')(2)用DDL(数据定义语句中的Create Table)创建三表1.航班表(hbb)包括如下字段:航班号(hbh):字符型,6位定长,主码,以CZ、CA、FM开头始发地(sfd):字符型,可变长统一编码字符型20位长,非空目的地(mdd):字符型,可变长统一编码字符型20位长,非空原价(YJ):整型,非空,必须>=02.乘客表(Ckb)包括如下字段:号(sfzh):字符型,20位变长字符串,主码(xm):可变长统一编码字符型,10位长3.售票表(spb)包括如下字段:航班号(hbh):主码号(sfzh):主码起飞日期(qfrq):日期时间型,非空售票日期(sprq):日期时间型,非空,默认值为当前时间实价(sj):整型,非空其中:航班号为引用航班表的外码,号为引用乘客表的外码。

源代码:/*建立三个表*/use FlightDBgocreate table hbb(hbh char(6)primary keycheck(hbh like'ca%'or hbh like'cz%'or hbh like'fm%'),sfd nvarchar(20)not null,mdd nvarchar(20)not null,yj int check(yj>=0)not null)create table ckb(sfzh varchar(20)primary key,xm nvarchar(10))create table spb(hbh char(6)check(hbh like'ca%'or hbh like'cz%'or hbh like'fm%'),sfzh varchar(20),qfrq smalldatetime not null,sprq smalldatetime default getdate()not null,sj int not null,primary key(hbh,sfzh),foreign key(hbh)references hbb(hbh)on delete cascade,foreign key(sfzh)references ckb(sfzh)on delete cascade)(3)用DML(数据操纵语句中的Insert)在hbb表中插入如下数据CZ1301,,,1200CZ1209,,,1300CZ1502,,,1200CA1130,,,1800CA1230,,,1500CA1401,,,1600源代码:/*插入数据*/insert into hbbvalues('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 900CZ1209 91202 2001-12-20 2001-11-20 800CZ1502 91201 2002-5-8 2002-5-2 1000CA1230 91201 2001-12-5 2001-12-4 1100CA1401 91202 2002-4-5 2002-4-4 1200CZ1301 91203 2001-12-20 2001-11-20 900CZ1209 91204 2001-12-20 2001-11-20 800CZ1502 91205 2002-5-8 2002-5-2 1000源代码:insert into ckbvalues('91201','王曼'),('91202','飞'),('91203','羽蕴'),('91204','王若雨'),('91205','蕊')insert into spbvalues('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%源代码:update hbb set yj=1.1*yjwhere mdd=''改动前:改动后:(8)用DML(数据操纵语句中的Delete)将“飞”乘客删除,注意同时删除售票记录和乘客基本信息。

源代码:deletefrom ckbwhere ckb.sfzh=all(select sfzh from spbwhere spb.hbh=all(select hbh from hbb))and xm='飞'改动前:改动后:(9)尝试使用MS SQL Server的还原功能,还原到上一次差异备份的BackupAdd1处。

(10)在SQL Server中创建一个用户FlightUser。

设置FlightUser除和修改记录。

然后用FlightUser登陆SQL Server,对如上权限设置进行验证。

源代码:exec sp_addlogin'FlightUser','123','FlightDB'grant insert,select,update,delete on spb to publicgrant select on hbb to publicgrant select on ckb to public运行select*from ckb select*from hbb select*from spb运行update ckbset sfzh='91207' where xm='飞'。

相关主题