sql:视图

视图和表的唯一区别在于是否保存了实际的数据。使用视图时并不会将数据保存到存储设备之中,而且也不会将数据保存到其他任何地方。视图仅仅保存的是select语句。

视图会在内部执行该select语句,并创建出一张临时表。

视图的优点:1.视图由于不用保存数据,因此可以节省存储设备的容量。

                      2.可以将频繁使用的select语句保存成视图,就不用每次书写了。 

                         创建好视图后,只需在select语句中进行调用,就可以得到结果。

                         而且,视图中的数据会随原表的变化自动更新。

可以使用:

create view

来创建视图。

例:

create view ProductSum(product_type, cnt_product)
as 
select product_type, count(*)
from Product
group by product_type;

在as后面接入select语句。

创建好的视图可以直接使用:

select product_type, cnt_product
from Productsum;

结果:

还可以以原有的视图为基础,创建视图叫多重视图:

create view ProductSumJim (product_type, cnt_product)
as
select product_type, cnt_product
from ProductSum
where product_type = '办公用品';
select product_type, cnt_product
from ProductSumJim;

结果:

视图的限制:1.定义视图时不能使用order by子句。视图和表是一样的,数据行都是没有顺序的。

                      2.对视图进行更新。当视图满足以下条件时,才可被更新:

                                                                                                                1.select子句中未使用distinct

                                                                                                                2.from子句中只有一张表

                                                                                                                3.未使用group by子句

                                                                                                                4.未使用having子句

                         如果视图发生了改变,而原表没有进行相应的更新的话,就无法保证数据的一致性了。

可以更新的视图:将所有项与原表一一对应,且没有使用聚合语句。

create view ProductJim (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
as
select *
from Product
where product_type = '办公用品';

添加行:

insert into ProductJim values ('0009', '印章', '办公用品', 95, 10, '2009-11-30');

结果:

同样的,原表也会添加这一行:

删除视图:使用drop view语句删除视图

drop view ProductSum;

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值