视图的定义和使用(SQL SERVER 2008)

一、 实验题目:视图的定义和使用
二 、实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作
题目六:
药品(编号,名称,价格,厂商)
处方(药品编号,数量,医生编号)
医生 (编号,姓名,科室,职称)
1 根据上面基本表的信息定义视图显示每种药品的品名、销售金额
2 观察基本表数据变化时,视图中数据的变化。
3利用视图,查询最畅销的药品。

所测试的数据:

INSERT INTO 医生
(编号,姓名,科室,职称)
VALUES
('1001','张三','外科','主刀医师'),
('1002','李四','内科','主任医师'),
('1003','王五','小儿科','主治医师'),
('1004','王二','眼科','主任医师'),
('1005','赵六','妇科','主刀医师'),
('1006','张力','内科','副主任医师'),
('1007','张力','骨科','主刀医师');
select * from 医生

INSERT INTO 药品
(编号,名称,价格,厂商)
VALUES
('2001','板蓝根','28.00','云南制药'),
('2002','益气养血口服液','29.00','北方制药'),
('2003','小儿感冒颗粒','35.00','三九药业'),
('2004','999感冒灵','14.00','三九药业'),
('2005','维C银翘片','25.00','北方制药'),
('2006','珍珠明目滴眼液','19.00','三九药业'),
('2007','青霉素','5.00','北方制药'),
('2008','秦霉素','10.00','北方制药');

select * from 药品

INSERT INTO 处方
(药品编号,数量,医生编号)
VALUES
('2001','2','1002'),
('2001','2','1006'),
('2005','2','1006'),
('2006','2','1004'),
('2002','2','1005'),
('2003','2','1003'),
('2007','3','1002'),
('2007','5','1003'),
('2008','7','1006'),
('2001','3','1001');
select * from 处方

在这里插入图片描述
第一题:

--建立视图
create view 药品销售情况(品名,销售金额)
as
select 药品.名称,convert(decimal(18,2),(SUM(处方.数量)*avg(药品.价格)))
from 药品 left outer join 处方 on (药品.编号=处方.药品编号)
group by 药品.名称

--查询视图
select *
from 药品销售情况

在这里插入图片描述
小提示:
应该先建立好视图再查询,否则会报错~

第二题:

--向初始数据中新添加数据:
insert into
药品(编号,名称,价格,厂商)
values
('2009','神夫草','18.50','东方医药')
insert into
医生(编号,姓名,科室,职称)
values 
('1008','钱七','皮肤科','主治医师')
insert into 
处方(药品编号,数量,医生编号)
values 
(2009,6,1008)

在这里插入图片描述

--观察视图的变化
select *
from 药品销售情况

在这里插入图片描述
第三题:

--创建视图:
create view 药品总销量(药品,总销量)
as
select 药品.名称,sum(处方.数量)'药品总销量'
from 药品,处方
where 药品.编号=处方.药品编号
group by 药品.名称

--查询视图:
select *
from 药品总销量

在这里插入图片描述

--根据视图查询最畅销的药品:
select 药品'最畅销药品'
from 药品总销量
where 总销量 in
(select MAX(总销量)
from 药品总销量)

在这里插入图片描述

发布了42 篇原创文章 · 获赞 30 · 访问量 7193

猜你喜欢

转载自blog.csdn.net/Mr____Cheng/article/details/103761729