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)    收藏  举报

导航