【MySQL基础篇】十二、视图的概念与操作

Ⅰ. 视图的概念​ 在 MySQL 中,"视图"是一种 虚拟表,它是基于一个或多个数据库表的查询结果。视图 并不实际存储数据,而是存储了一个查询的定义(即 select 语句),每当查询视图时,实际的数据都是从基础表中获取的。

​ 创建视图的主要目的是简化复杂的查询操作和隐藏基础表的结构,从而提供更简洁、易于理解的数据接口。通过使用视图,可以将复杂的查询逻辑抽象为一个命名的实体,使得查询和数据操作更加方便和有效。

​ 同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。

Ⅱ. 视图的操作1、创建视图代码语言:javascript复制create view 视图名 as

select语句;2、删除视图代码语言:javascript复制drop view 视图名;3、查看视图代码语言:javascript复制select 列名 from 视图名 [order by ...];案例代码语言:javascript复制-- 根据之前的雇员表创建视图

mysql> create view my_view as select ename, dname from emp inner join dept on emp.deptno<=>dept.deptno;

Query OK, 0 rows affected (0.00 sec)

-- 可以看到多了一张my_view表结构

mysql> show tables;

+-----------------+

| Tables_in_scott |

+-----------------+

| dept |

| emp |

| my_view |

| salgrade |

+-----------------+

4 rows in set (0.00 sec)

-- 查看my_view表结构

mysql> select * from my_view;

+--------+------------+

| ename | dname |

+--------+------------+

| SMITH | RESEARCH |

| ALLEN | SALES |

| WARD | SALES |

| JONES | RESEARCH |

| MARTIN | SALES |

| BLAKE | SALES |

| CLARK | ACCOUNTING |

| SCOTT | RESEARCH |

| KING | ACCOUNTING |

| TURNER | SALES |

| ADAMS | RESEARCH |

| JAMES | SALES |

| FORD | RESEARCH |

| MILLER | ACCOUNTING |

+--------+------------+

14 rows in set (0.00 sec)💥注意事项与表一样,视图必须唯一命名(不能出现同名视图或表名)创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响视图不能添加索引,也不能有关联的触发器或者默认值视图可以提高安全性,必须具有足够的访问权限order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by,那么 该视图中的 order by 将被覆盖视图可以和表一起使用视图的数据变化会影响到基表,基表的数据变化也会影响到视图。实战OJ针对actor表创建视图actor_name_view


我国最冤16所“野鸡大学”!盘点那些奇葩到上天的院校“简称”!
冰尼之战:揭秘冰岛对决尼日利亚的精彩比分揭晓