现在的位置: 首页 > 综合 > 正文

MySQL的一些简单语法(5)-视图

2018年04月16日 ⁄ 综合 ⁄ 共 2239字 ⁄ 字号 评论关闭

视图

视图是从一个或多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以不用看到整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。

视图还可以从已经存在的视图的基础上定义,数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中,使用视图查询数据时,数据库系统会从原来的表中取出相对应的数据,因此视图中的数据时依赖于原来的表中的数据的。一旦表中的数据发生改变时,显示在视图中的数据也会发生改变。

视图是在原来的表或者视图的基础上重新定义的虚拟表,这可以从原有的表上选取对用户有用的信息。

创建视图:是指在已经存在的数据库表上建立视图,视图可以建立在一张表上面也可以建立在多张表上。

创建视图的语法形式:

CREATE   VIEW 是SQL的语句,在MySQL中使用:

CREATE    [ ALGORITHM={UNDEFINED |   MERGE    |TEMPTABLE}   ]   VIEW  视图名  [(属性清单)]   AS SELECT 语句 [ WITH    |CASCADED   |LOCAL]  CHECK  OPTION];

1.在单表上建立视图:

CREATE  VIEW  department_view1

AS  SELECT * FROM department;

代码执行如下:

mysql> CREATE  VIEW  department_view1

-> AS  SELECT * FROM department;

Query OK, 0 rows affected (0.03 sec)

2.再多表上建立视图:MySQL中也可以在两个或两个以上的表上创建视图,也是使用CREATE VIEW语句实现的。

CREATE  ALGORITHM=MERGE  VIEW   worker_view1 ( name, department,sex, age,address )  AS  SELECT  name, department.d_name, sex, 2009-birthday, address FROM  worker , department  WHERE  worker.d_id= department.d_id  WITH  LOCAL  CHECK  OPTION;

 3.查看视图查看视图是指查看数据库中已存在的视图的定义。查看视图必须要有SHOW VIEW的权限。mysql数据库下的user表中保存着这个信息。

查看视图的语句有DESCRIBE语句,SHOW TABLE STATUS 语句,SHOW CREATE VIEW 语句和查询information——schema数据库下的views表等。

3.1DESCRIBE 语句查看视图基本信息:视图也是一张表。只是这张表比较特殊,是一张虚拟的表。因此,同样可以使用DESCRIBE语句可以用来查看视图的基本定义

 DESCRIBE 视图名;

3.2   SHOW TABLE STATUS 语句查看视图的基本信息

使用SHOW TABLE STATUS 语句来查看视图的信息

SHOW  TABLE  STATUS LIKE ‘视图名’;

LIKE 后面匹配的是字符串,视图名参数指要查看的视图的名称,粗腰使用单引号‘’起作用

3.3SHOW CREATE VIEW 语句查看视图详细信息

SHOW CREATE VIEW  视图名

3.4在views表中查看视图详细信息

MySQL中所有视图的定义都存在information_schema数据库下的views表中,查询views表,可以查看到数据库中所有视图的详细信息。

查询的语句如下:

SELECT * FROM information_schema.views;  

其中*表示查询所有的列的信息;

information_schema.views 表示information_schema数据库下面的views表。

4.修改视图:修改视图是指修改数据库中已存在的表的定义。

MySQL中通过CREATE OR REPLACE VIEW 语句和ALTER语句来修改视图。

4.1 CREATE OR REPLACE VIEW 语句来修改视图

CREATE OR REPLACE VIEW 语句可以用来修改视图。在视图已经存在的情况下,对视图进行修改,如果视图不存在时,则可以创建视图。

CREATE OR REPLACE [ ALGORITHM = {   UNDEFINED | MERGE | TEMPTABLE  } ]   VIEW  视图名[ ( 属性清单) ]   AS  SELECT语句   [ WITH  [ CASCADED | LOCAL ]  CHECK  OPTION];

4.2使用ALTER语句来进行修改视图

ALTER语句可以修改表的定义,可以创建索引。

ALTER  [ ALGORITHM = { UNDEFINED | MERGE |
TEMPTABLE } ]   VIEW  视图名[ ( 属性清单) ]   AS  SELECT语句   [ WITH  [ CASCADED | LOCAL ]  CHECK  OPTION  ];

5.更新视图

更新视图是指通过视图来插入(INSERT )、更新(UPDATE)和删除(DELETE)表中的数据。

 5.1删除视图:删除视图是指删除数据库中已存在的视图。删除视图时=,只能删除视图的定义,不会删除数据。

对需要删除的视图,使用DROP VIEW 语句进行删除。基本形式如下:

  DROP  VIEW  [ IF EXISTS]   视图名列表 [  RESTRICT  |  CASCADE   ];

抱歉!评论已关闭.