uv推广平台,学校网站怎么做优化,网站建设公司在哪里,互联网技术的概念文章目录 一、前言二、定义三、为什么使用视图四、基本使用#xff08;—#xff09;创建视图#xff08;二#xff09;案例1.修改了视图#xff0c;对基表数据有影响2.修改了基表#xff0c;对视图有影响3.删除视图 五、视图规则和限制 一、前言
通过视图#xff0c;可… 文章目录 一、前言二、定义三、为什么使用视图四、基本使用—创建视图二案例1.修改了视图对基表数据有影响2.修改了基表对视图有影响3.删除视图 五、视图规则和限制 一、前言
通过视图可以展现基表(用来创建视图的表)的部分数据视图数据来自定义视图的查询中使用的表使用视图动态生成。 视图子查询是从一个或多个表导出的虚拟的表其内容由查询定义。具有普通表的结构但是不实现数据存储。 对视图的修改单表视图一般用于查询和修改会改变基本表的数据多表视图一般用于查询不会改变基本表的数据。
二、定义
视图是一个虚拟表其内容由查询定义。同真实的表一样视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表基表的数据变化也会影响到视图。
三、为什么使用视图
1简单使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件对用户来说已经是过滤好的复合条件的结果集。
2安全使用视图的用户只能访问他们被允许查询的结果集对表的权限管理并不能限制到某个行某个列但是通过视图就可以简单的实现。
3数据独立一旦视图的结构确定了可以屏蔽表结构变化对用户的影响源表增加列对视图没有影响源表修改列名则可以通过修改视图来解决不会造成对访问者的影响。
总而言之使用视图的大部分情况是为了保障数据安全性提高查询效率。
四、基本使用
—创建视图
create view 视图名 as select语句对于创建视图中的 SELECT 语句的指定存在以下限制
用户除了拥有 CREATE VIEW 权限外还具有操作中涉及的基础表和其他视图的相关权限。SELECT 语句不能引用系统或用户变量。SELECT 语句不能包含 FROM 子句中的子查询。SELECT 语句不能引用预处理语句参数。
二案例
select * from v_ename_dname order by dname;1.修改了视图对基表数据有影响
select emp.ename,dept.dname,dept.deptno from emp,dept where
emp.deptnodept.deptno order by dname;
update v_ename_dname set enameTEST where enameCLARK;
select * from EMP where enameCLARK;
select * from EMP where enameTEST;2.修改了基表对视图有影响
mysql update EMP set deptno10 where enameJAMES; -- 修改基表
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql select * from v_ename_dname where enameJAMES;
-----------------
| ename | dname |
-----------------
| JAMES | RESEARCH | 视图中的数据也发生了变化
-----------------3.删除视图
drop view 视图名五、视图规则和限制
与表一样必须唯一命名不能出现同名视图或表名创建视图数目无限制但要考虑复杂查询创建为视图之后的性能影响视图不能添加索引也不能有关联的触发器或者默认值视图可以提高安全性必须具有足够的访问权限 -order by 可以用在视图中但是如果从该视图检索数据 select 中也含有 order by ,那么该视图 中的 order by 将被覆盖视图可以和表一起使用