店铺装修设计公司,厦门谷歌seo公司,程序员做图网站,免费关键词搜索引擎工具一 视图
▶ 介绍 视图view是一个虚拟表#xff0c;非真实存在#xff0c;其本质是根据SQL语句获取动态的数据集#xff0c;并为其命名#xff0c;用户使用时只需使用视图名称即可获取结果集#xff0c;并可以将其当作表来使用。 数据库中存放了视图的定义… 一 视图
▶ 介绍 视图view是一个虚拟表非真实存在其本质是根据SQL语句获取动态的数据集并为其命名用户使用时只需使用视图名称即可获取结果集并可以将其当作表来使用。 数据库中存放了视图的定义而并没有存放视图中的数据。这些数据存放在原来的表中。 使用视图查询数据时数据库系统会从原来的表中取出对应的数据。因此视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变显示在视图中的数据也会发生改变。 ▶ 作用 简化代码可以把重复使用的查询封装成视图重复使用同时可以使复杂的查询易于理 和使用。 安全原因如果一张表中有很多数据很多信息不希望让所有人看到此时可以使用视图视如:社会保险基金表可以用视图只显示姓名地址而不显示社会保险号和工资数等可以对不同的用户设定不同的视图。 二 创建视图
语法 create [or replace] [algorithm {undefine | merge | temptable }] view 视图名 [(视图字段列表)] as 查询语句 [with [cascad | local ] check option] 参数说明 algorithm:可选项表示视图选择的算法 [with [cascad | local ] check option]可选项表示更新视图时要保证在该视图的权限范围之内 数据准备
我们先创建三张表 创建视图 需要注意的是如果原表的数据发生改变那么视图里面显示的数据会随着原表的改变而改变。 三 修改视图 修改视图是指修改数据库中已存在的表的定义。当基本表的某些字段发生改变时可以通过修改视图来保持视图和基本表之间一致。MySQL中通过CREATE OR REPLACE VIEW语句和ALTER VIEW语句来修改视图。 ▶ 格式 alter view 视图名 as select语句 ▶ 演示
-- 修改视图
alter view 视图名 as select语句alter view view1_emp
as
select a.deptno,a.dname,a.loc,b.ename,b.sai from dept a,emp b where a.deptnob.deptno;select * from view1_emp; 四 更新视图 某些视图是可更新的。也就是说可以在UPDATE、DELETE或INSERT等语句中使用它们以更新基表的内容。对于可更新的视图在视图中的行和基表中的行之间必须具有一对一的关系。如果视图包含下述结构中的任何一种那么它就是不可更新的: 聚合函数(SUM(),MIN()MAX(),COUNT()等). DISTINCT GROUP BY HAVING UNION或UNION ALL 位于选择列表中的子查询 JOIN FROM子句中的不可更新视图 WHERE子句中的子查询引用FROM子句中的表。 仅引用文字值(在该情况下没有要更新的基本表) 视图中虽然可以更新数据但是有很多的限制。一般情况下最好将视图作为查询数据的虚拟表而不要通过视图更新数据。因为使用视图更新数据时如果没有全面考虑在视图中更新数据的限制就可能会造成数据更新失败。 执行更新过程 create or replace view view1_emp
as
select ename,job from emp;select * from view1_emp;update view1_emp set ename 周瑜 where ename 张飞;
更新视图前的表 更新视图后的表 这说明更新视图的数据实际上就是对原表的数据进行更新。 五 重命名视图和删除视图 ▶ 重命名视图 rename table 视图名 to 新视图名; ▶ 删除视图 drop view if exists 视图名[,视图名...]; 删除视图时只能删除视图的定义不会删除数据