mysql:视图(view)

6 篇文章 0 订阅

视图

/*
	含义:一种虚拟存在的虚拟表和普通表一样使用。是通过表动态生成的数据
	应用场景:
		多个地方用到同样的查询结果
		该查询结果使用的sql语句比较复杂。
		保护数据,提高数据的安全性。		
*/

创建视图

/*
	例句:
		create view 视图名称
		as
		查询sql语句。
*/
create view v1
as
select name,id from `user`;

select * from v1 where name like "胡%";

视图的修改

/*
方式一:	 create or replace:  视图名称存在就修改,不存在再创建。
	create or replace view 视图名称
	as
	查询sql语句;
*/
create or replace view v1
as
select name,id,sex,`date` from `user`;


/*
方式二:
	alter view 视图名称
	as
	查询sql语句
*/
alter view v1
as
select name,id,sex,`date`,type from `user`;

视图的删除

/*
	drop view 视图名称,视图名称,视图名称,.....;
*/
drop view v1,v2,v3,...;

视图的查看

/*
方式一: 	建议在客户端使用
	desc 视图名称;
*/
desc v1;	#	视图的表结构
/*
方式二:	建议在CMD使用
	show create view 视图名称;
*/
show create view v1; 	#	详细的视图创建过程

视图的更新(更新视图中的数据)

create table book( 
	id int , #编号 
	bName varchar(20), #图书名 
	price double, #价格 
	authorId int, #作者编号
	publishDate datetime #出版日期 
)
/*
	insert into 视图名称 values();
*/
create view bookview_1
as 
select id,bName,price from book;
insert into bookview_1 values(1,"《修炼》",10.85);	#成功	会在原始表和视图中插入这几个字段数据,其他字段为null

create view bookview_2 
as 
select id,bName,price*2 from book;
insert into bookview_2 values(1,"《修炼》",10.85);	#失败	原因是视图中price字段做了计算


/*
	update 视图名称 set 视图中的字段名 = 值 where 条件;
*/
create view bookview
as 
select id,bName,price from book;
update bookview set bName = "《坏蛋》" where id = 1;	#成功	会在原始表和视图中修改这个字段数据。


/*
	delete from 视图名称 where 条件;
*/
create view bookview
as 
select id,bName,price from book;
delete from bookview where id = 1;	#成功	会在原始表和视图中删除这条数据。

视图不允许更新的条件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vCGWXI68-1609926959070)(D:\Desktop\学习\mysql\Mysql复习.assets\image-20201203145050099.png)]

/*
	from一个不能更新的视图。
*/
create view v2
as 
select * from v1;	#	这个的情况是不能更新	v2	的

视图和表的对比

/*
		创建语法关键字			是否实际占用物理空间			使用
视图		create view			只是保存了sql逻辑			CURD 一般不轻易CURD
表		create table		保存了数据					CURD
*/

----------当你发现自己的才华撑不起野心时,就请安静下来学习吧!----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值