数据库实验报告 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告题目:数据库实验上机实验报告

专业班级:计算机科学与技术1210班

学号:U201215079

姓名:候宝峰

指导教师:

报告日期:2015-06-04

计算机科学与技术学院

目录

一、基本SQL操作(部分选做) (1)

1)数据定义 (1)

2)数据更新 (3)

3)用SQL语句完成下述查询需求: (4)

二、DBMS综合运用(部分选做) (8)

1)学习sqlserver的两种完全备份方式:数据和日志文件的脱机备份、系统的备份功能(选做)。 (8)

2)学习系统的身份、权限配置操作 (9)

3)了解SQLSERVER的存储过程、触发器、函数实现过程 (14)

三、实验总结 (17)

1)实验问题及解决 (17)

2)实验心得 (18)

一、基本SQL操作(部分选做)

1)数据定义

参照下面的内容建立自己实验所需的关系数据

创建三个关系:

商品表【商品名称、商品类型】

GOODS【GNAME char(20),GTYPE char(10)】

主关键字为(商品名称)。商品类型为(电器、文具、服装。。。)

商场【商场名称,所在地区】

PLAZA【PNAME char(20),PAREA c har(20)】

主关键字为商场名称。所在地区为(洪山、汉口、汉阳、武昌。。。)

销售价格表【商品名称、商场名称、当前销售价格、目前举办活动类型】

SALE【GNAME char(20),PNAME char(20),PRICE FLOAT,ATYPE c har(10)】

主关键字为(商品名称、商场名称)。举办活动类型为(送券、打折),也可为空值,表示当前未举办任何活动。表中记录如(‘哈森皮靴’,‘亚贸广场’,200,‘打折’),同一商场针对不同的商品可能采取不同的促销活动。

create table goods(gname char(20) primary key,gtype char(10));

create table plaza(pname char(20) primary key,parea char(20));

create table sale

(gname char(20),

pname char(20),

price FLOAT,

atype char(10)check (atype in('送券','打折','')),

primary key(gname,pname),

foreign key(gname)references goods(gname),

foreign key(pname)references plaza(pname));

图1 goods表

图2 plaza表

图3 sale表

2)数据更新

(1)向上述表格中用sql语句完成增、删、个、改的操作;

增加记录:insert into goods(gname,gtype)values(’anta’,’服装’);

删除记录:delete from goods where gname=’南孚’and gtype=’电池’;

更新记录:update goods set gtype=’电器’ where gname=’飞科’;

(2)编写一个触发器,并测试该触发器;

当插入一个“anta”货物时不能把它售价低于350 ,如果低于350 就修改成350

create trigger [dbo].[Chang_Update_sale] on [dbo].[sale]

after insert as

if(select count(*)from sale,inserted where sale.gname='anta'and sale.price<350)=1 begin

update sale set sale.price=350

where sale.gname='anta'and sale.pname='家乐福'

end

图4 触发器执行图

如图,将原有的记录删掉后插入一条新纪录,应该是俩行受影响,由于触发器修改最小值,则会显示三行受影响,查表知,是触发器有效执行了。

(3)将SALE表中的打折记录插入到新表SALE_CHEAP中,并基于SALE_CHEAP表创建一个统计每个商场各自打折商品平均价格的视图。

create view SALE_CHEAP as

select sale.pname,sale.gname,sale.price

from sale where atype='打折';

select pname,avg(price) avg

from SALE_CHEAP

group by(pname)

图5 视图

3)用SQL语句完成下述查询需求:

(1)查询所有以“打折”方式销售的商品的当前销售情况,并按照价格的降序排列;select GNAME,PNAME,PRICE

from sale

where ATYPE='打折'

order by price desc;

图6 查询1

2)查询所有没有任何活动的商品及其所在的商场,结果按照商品排序;

select GNAME,PNAME

from sale

where ATYPE is null

order by gname;

相关文档
最新文档