视图

创建视图:

create view view_name as select id, name from table_name;


视图其实只保存了一个sql语句,每次执行视图操作,都会执行该sql语句。

select * from (select id, name from table_name) as tmp_table;


视图的好处是用来1.隐藏数据 2. 将复杂连接语句替换为view


创建完之后,会将table_name的表中得id,name字段作为一个表的形式存在。类似连接,这样就可以将一个表中不想让其他权限的人操作的部分作为一个视图创建。


创建完视图后,虽然可以通过视图像表中插入数据,但是不推荐。

因为如果表中包含不能为空得字段,而视图中没有,视图中插入记录时,该字段为NULL。若该字段不准为NULL,则无法通过视图进行插入数据。最好只将视图用于查询。


以下修改视图的命令,跟表类似。

drop view [if exists] v_name;

alter view v_name as select id, name, new_col_name from table_name;

alter view v_name (col_1, col2) as select id, name from tb_name;


多表联合

create view v_new (v_col1, v_col2) as select col1, col2 from tb1 join tb2 using(id); 


视图的内部构建算法,mysql会根据实际情况进行选择。

1.merge

每当执行view的时候,将外部的sql语句,与构建view的sql语句合并后,执行。也就是说每次都会执行一个很长的sql语句。

create view view_name as select id, name from table_name; //紫色的为构建sql语句

select * from view_name; // 这个我们成为外部的sql语句。


2.tamptable

每当查询的时候,将视图的select语句构建一个临时表,然后在表中执行外部的sql语句。


<完>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值