一:基本语法
1.创建视图的语法
--create view 视图名称
--as
--查询语句
如图:
--1.1查询商品表中类别编号为1的商品的编号和商品的名称作为视图的内容
create view v_product
as
select ProductId,ProductName from Product where CategoryID=1
go --批处理的结束标识
--1.2查询视图和表的查询语法一样
select * from v_product
--1.3查询视图中名称包含1的商品信息
select * from v_product3 where ProductName like '%1%'
go
--2 修改视图
--alter view 待修改的视图名称
--as
--新的查询语句
--2.1对于视图v_product,增加查询一列商品的价格
alter view v_product
as
select ProductId,ProductName,ProductPrice from Product where CategoryID=1
go
select * from v_product
--3.删除视图
--drop view 视图名称
--3.1删除视图
drop view v_product
go
二:案例
1.案例1:(如图)
2.案例2
(1)创建一个视图,视图名称v_orderinfo,内容是查询客户名称是zs购买的商品的数量
--多表连接查询
create view v_orderinfo
as
select count(*) as
商品数量 from [Order],OrderDetails
where [Order].OrderId=OrderDetails.OrderId
and CustomerId=
(select CustomerID from Customer where CustomerName='zs')
go
--(1)先根据客户的名称找到客户编号
select * from Customer where CustomerName='zs'
--(2)订单表和订单详情表多表连接指定客户编号的信息
select count(*) from[Order],OrderDetails
where
[Order].OrderId=OrderDetails.OrderId
and CustomerId=(select * from Customer where CustomerName='zs')
go
--(2)修改上面视图,内容变为,查询客户名称是zs的购买的商品数量和订购的总件数alter view v_orderinfo
as
select count(*) as 商品数量,sum(Quantity) as 订购总件数 from [Order],OrderDetails
where [Order].OrderId=OrderDetails.OrderId and CustomerId=(select CustomerID from Customer
where CustomerName='zs')
go
--(3)查询视图信息
select * from v_orderinfo
--(4)删除该视图
drop view v_orderinfo
三:小结
1.通过视图向表中插入数据 ,本质上还是向真是表插入数据--视图是一张虚表
2.通过一张或多张表查询出来的--视图中不存储数据的 ,真实表中才存储数据