视图是一张虚表,和真实的表一样。视图包含一系列带有名称的行和列数据。视图是从一个或多个表中导出来的,我们可以通过insert,update,delete来操作视图。当通过视图看到的数据被修改时,相应的原表的数据也会变化。同时原表发生变化,则这种变化也可以自动反映到视图中。
视图的优点:
- 简单化:看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化操作。经常被使用的查询可以制作成一个视图
- 安全性:通过视图用户只能查询和修改所能见到的数据,数据库中其他的数据既看不见也取不到。数据库授权命令可以让每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定的行,列上。
- 逻辑数据独立性:视图可帮助用户屏蔽真实表结构变化带来的影响
创建视图:
创建视图是指在已经存在的数据库上建立视图。视图可建立在一张表或多张表中。
单表视图:
Create table 表名(字段1,字段2,……)
Insert into 表名 value(数据1,数据2,……)
Create view 视图名 as select 输入值
创建视图需注意:
定义视图的表必须存在
Select语句不能引用系统或用户变量
多表视图:
需提前创建两个数据表如(两个表需有两个一样的字段,用与下面整合):
往表中插入数据:
将两个表合并
查看视图的基本信息describe视图名
desc 视图名
查看视图的基本信息
Show table status like ‘视图名’\G
查看视图的详细信息
1show create view 视图名
2show create view 视图名\G
查看数据库中所有视图的详细信息
Select * form information_schema.views\G
修改视图
1 create or replace view 视图名 as select * from 表名
2 alter view 视图名 as select quantity from 表名
更新视图
1 update
Update 视图名 set 字段=更改的数值 where 字段=原数值
2 insert
Insert into 表名 values(添加的值)
3 delete、
delete from 视图名 where 字段=需要删除字段的值
删除视图
Drop vie if exists 视图名
扩展 MySQL中视图和表的区别以及联系是什么?
1、两者的区别:
(1)视图是已经编译好的SQL语句,是基 于SQL语句的结果集的可视化的表。而表不是。
(2)视图没有实际的物理记录,而表有。
(3)表是内容,视 图窗口
(4)表和视图虽然都占用物理空间,但是视图只是逻辑概念存在,而表可以及时对数据进行修改,但 是视图只能用创建语句来修改
(5)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据, 只是一些SQL 语句的集合。从安全角度来说,视图可以防止用户接触数据表,因而不知道表结构
(6)表属于 全局模式中的表,是实表。而视图属于局部模式的表,是虚表
(7)视图的建立和删除只影响视图本身,而不 影响对应表的基本表
2、两者的联系 视图是在基本表之上建立的表,它的结构和内容都来自于基本表,它依赖基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本的抽象和逻辑意义上建立的关系