视图的操作

本文详细介绍了SQL视图的概念及其在数据库中的应用。包括视图的创建、使用、更新及删除等操作,同时还讨论了视图的限制条件以及如何合理利用视图来提高查询效率。
#######################
#视图
################
--   视图保存的是select语句,大大节省空间 
--   视图的数据会随着原表的变化自动更新,
--   建议将经常使用的select语句做成视图 create view...as...
#################1.创建视图
create or replace view ProductSum(product_type,cnt_product)
as -- as不可以省略 
select product_type,count(*)
from Product
group by product_type;

################2. 使用视图(和表的操作类似)/查看视图  
show create view productsum;

select product_type,cnt_product
from ProductSum;


-- 多重视图 在视图的基础上再创建视图 
--    不要常使用,多重视图会降低sql的性能 

################3.修改视图
alter view productsum as
select product_type as '类型',count(*) as '合计'
from product group by product_type; 

################ 4.视图的限制  
#1.定义视图的时候不能使用order by 
#2.视图的更新 视图和表需要同时更新,因此通过汇总得到的视图无法进行更新
--     1:select语句有distinct,group by,having,order by,union,聚合函数
--     2:from子句包含多张表  
--     3:select语句中引用不可更新的视图

-- 上面的productsum视图就不能更新 因为视图和表无法同步(有group by)
-- 下面的视图可以更新
CREATE VIEW ProductJim (product_id, product_name, product_type, sale_price, purchase_price, regist_date) 
AS 
SELECT *  FROM Product WHERE product_type = '办公用品';
###############5.更新视图 此时product表也同步更新了
INSERT INTO ProductJim
VALUES ('0009', '印章', '办公用品', 95, 10, '2009-11-30'); 

update productjim set product_name = 'new' where product_id = '0001';



select * from ProductJim;
select * from Product;
delete from Product where product_id='0009';

###############6.删除视图  
drop view ProductSum;

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值