当前位置:   article > 正文

MySQL | 视图_mysql 创建视图

mysql 创建视图

目录

一、创建视图

1.1 在单表上创建视图

1.2 在多表上创建视图

二、查看视图

2.1 使用DESCRIBE语句查看视图基本信息

2.2 使用SHOW TABLE STATUS语句查看视图基本信息

2.3 使用SHOW CREATE VIEW语句查看视图详细信息

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

三、修改视图

3.1 使用CREATE OR REPLACE VIEW语句修改视图

3.2 使用ALTER语句修改视图

四、更新视图

五、删除视图


数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据来自由定义视图查询所引用的表,并且在引用视图时动态生成。

一、创建视图

1.1 在单表上创建视图

MySQL可以在单个数据表上创建视图。

CREATE VIEW view_t AS SELECT quantity,price,quantity*price FROM t;

默认情况下创建的视图和基本表的字段是一样的,也可以通过指定视图字段的名称来创建视图。

CREATE VIEW view_t2 (qty,price,total) AS SELECT quantity,price,quantity*price FROM t;

1.2 在多表上创建视图

MySQL也可以在两个或者两个以上的表上创建视图,可以使用CREATE VIEW语句实现。

  1. CREATE VIEW stu_glass (id,name,glass) AS SELECT student.s_id,student.name,stu_info.glass
  2. FROM student,stu_infp WHERE student.s_id=stu_info.s_id;

二、查看视图

查看视图是查看数据库中已存在的视图的定义。查看视图必须要有SHOW VIEW的权限,MySQL数据库下的user表中保存着这个信息。查看视图的方法有DESCRIBE、SHOW TABLE STATUS和SHOW CREATE VIEW。

2.1 使用DESCRIBE语句查看视图基本信息

DESCRIBE(DESC)可以用来查看视图,具体的语法如下:

DESCRIBE/DESC 视图名;

2.2 使用SHOW TABLE STATUS语句查看视图基本信息

查看视图的信息可以通过SHOW TABLE STATUS的方法完成,具体的语法如下:

SHOW TABLE STATUS LIKE '视图名';

例:

SHOW TABLE STATUS LIKE 'view_t' \G

2.3 使用SHOW CREATE VIEW语句查看视图详细信息

使用SHOW CREATE VIEW语句可以查看视图详细定义,语法如下:

SHOW CREATE VIEW 视图名;

例:

SHOW CREATE VIEW view_t \G

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

在MySQL中,information_schema数据库下的views表中存储了所有视图的定义。通过对views表的查询,可以查看数据库中所有视图的详细信息,查询语句如下:

SELECT * FROM information_schema.views;

例:

SELECT * FROM information_schema.views \G

三、修改视图

修改视图是指修改数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性。MySQL中通过CREATE OR REPLACE VIEW语句和ALTER语句来修改视图。

3.1 使用CREATE OR REPLACE VIEW语句修改视图

例:修改视图view_t,代码如下:

CREATE OR REPLACE VIEW view_t AS SELECT * FROM t;

3.2 使用ALTER语句修改视图

例:使用ALTER语句修改视图view_t,代码如下:

ALTER VIEW view_t AS SELECT quantity FROM t;

四、更新视图

更新视图是指通过视图来插入、更新、删除表中的数据,因为视图是一个虚拟表,其中没有数据。通过视图更新的时候都是转到基本表上进行更新的,如果对视图增加或者删除记录,实际上是对基本表增加或者删除记录。

视图更新有3种方法:INSERT、UPDATE和DELETE。

例:使用UPDATE语句更新视图view_t,代码如下:

UPDATE view_t SET quantity=5;

对视图view_t更新后,基本表t的内容也会更新,同样当对基本表t更新后,另外一个视图view_t2中的内容也会更新。

例:使用DELETE语句删除视图view_t2中的一条记录,代码如下:

DELETE FROM view_t2 WHERE price=5;

当视图包含有如下内容时,视图的更新操作将不能被执行:
(1)视图中不包含基本表被定义为非空的列。

(2)在定义视图的SELECT语句后的字段列表中使用了数学表达式。

(3)在定义视图的SELECT语句后的字段列表中使用了聚合函数。

(4)在定义视图的SELECT语句中使用了DISTINCT、UNION、TOP、GROUP BY或HAVING子句。

五、删除视图

当视图不再需要时,可以将其删除。删除一个或多个视图可以使用DROP VIEW语句。

删除视图必须拥有DROP权限。

例:删除stu_glass视图,代码如下:

DROP VIEW IF EXISTS stu_glass;
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/380797
推荐阅读
相关标签
  

闽ICP备14008679号