Mysql数据库视图操作

       视图是从一个或多个表中导出来的表,是一种虚拟存在的表。就像一个窗口,通过这个窗口可以看到系统专门提供的数据。

        这样不用查看整个数据库中的数据,值查看自己想看到的部分,方便操作,且保证数据安全。
        数据库中只存放视图的定义,并没有存放视图中的数据,这些数据存放在原来的表中,使用视图时,数据库系统从原来的表中取出对应的数据。
语法规则:
create  [ algorithm = {undefined|merge|temptable}]   view  视图名 [(属性清单)]   as  select语句   [ with check option];

在单表上建视图:
create  view  my_view1 as  select  *  from  mytable1;
或:create  view  myview2 (id,name,fuction)  as  select  d_id ,d_name,fuction  from  mytable2;

在多表上创建视图:
create  view   work_view1 (name,dep,sex,age,address)
            as  select  name,department.name,sex,birthday,address  from  work , department  where  worker.id = departmeng.id  with local check option;

查看视图:
(1)    show  talbe  status  like  '视图名';  或    show  talbe  status  like  '视图名'\G
显示关键信息:comment:view

(2)    show  create   view  视图名;  或者  show  create  view  视图名\G

(3)    在views表中查看视图详细信息
select   *   from   information_schema.views;或 select   *   from   information_schema.views\G

修改视图:
create  or  replace 语句修改视图
create or replace   view  视图名   [(属性清单)]   as  select语句  [ with  check  option];
与新建视图一样,如果视图存在就修改视图,如果视图不存在,则创建视图。

alter 语句修改视图:
alter   view  视图名 [ (属性清单) ]  as  select语句    [ with check option];


更新视图:
使用update更新视图,和更新表的数据一样
update   my_view1  set  name='keyan',fuction='chuangxin',address='2lou3hao';

删除视图:
删除视图时,只能删除视图的定义,不会删除数据。使用drop  view  来删除视图。
drop  view  [ if exists]  视图名列表 [restrict|cascade]
其中if  exists判断视图是否存在,存在执行,不存在不执行;多个视图之间用逗号分隔。

drop  view   [if   exists ] my_view1 , my_view2;

 

你可能感兴趣的:(mysql,技术,视图)