mysql学习六:视图
视图:
- 是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
- 数据库中,只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
- 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
视图的作用:
- 使操作简化
- 增加数据的安全性
- 提高表的逻辑独立性
一、创建视图:
create [algorithm={undefiend|merge|temptable}] view 视图名
[(属性清单)] as select 语句 [with [cascaded|local] check option];
algorithm:可选参数,表示视图选择的算法
- undefined选项:表示mysql将自动选择所要使用的算法;
- merge选项:表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;
- temptable选项:表示将视图的结果存入临时表,然后使用临时表执行语句;
属性清单:可选参数,指定了视图中各种属性的名词。默认情况下与select语句中查询的属性相同
select语句:是一个完整的查询语句,标识从某个表查出某此满足条件的记录,将这些记录导入视图中
with check option:可选参数,表似乎更新视图时要保证在该视图的权限范围之内
- cascaded:可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数是默认值
- local:表示更新视图时,要满足该视图本身的定义条件即可
创建视图:
create view v1 as select * from book; create view v2 as select bookName,price from book; create view v3 as select bookName, bookTypeName from book, booktype where book.bookTypeId=booktype.id;
查看视图表的基本信息:
show table status like 'v5';
show table status like 'book';
查看视图表的基本信息:
desc v3;
查看视图表的详情信息:
show create view v3;
查询视图表的数据:
select * from v3;
二、修改视图
1.create or replace view 语句修改视图:
create or replace [algorithm={undefined|merge|temptable|] view 视图名 [(属性清单)] as select 语句 [with [cascaded|local] check option];
select * from v1; create or replace view v1 (bookName, price) as select bookName,price from book; select * from v1;
2.alter 语句修改视图:
alter [algorithm={undefined|merge|temptable|] view 视图名 [(属性清单)] as select 语句 [with [cascaded|local] check option];
select * from v1; alter view v1 as select * from book; select * from v1;
三、更新视图:是对基本表的操作
更新视图:是指通过视图来插入、更新和删除表中的数据。因为视图是一个虚拟的表,其中没有数据。因此通过视图更新数据时,都是转换基本表来更新,即将更新基本表。更新视图时,只能更新权限范围内的数据;超出了范围,就不能更新。
1.insert插入:
insert into v1 values(null, 'java good', 120, 'feng', 1); select * from book;
2.update更新:
update v1 set bookName='java very good',price=200 where id=6; select * from book;
3.delete删除:
delete from v1 where id=6; select * from book;
四、删除视图
删除视图:是指删除数据库中已存在的视图。删除视图时,只会删除视图的定义,不会删除数据;
drop view [if exists] 视图名列表 [restrict | cascade];
drop view if exists v2;
posted on 2018-09-15 23:56 myworldworld 阅读(111) 评论(0) 收藏 举报