視圖的定義和使用(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 藥品總銷量)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章