MySQL数据库(26):视图 view

举报
彭世瑜 发表于 2022/06/10 23:06:01 2022/06/10
【摘要】 视图 view 1、创建视图 视图本质是SQL指令 基本语法 -- 可以是单表数据,也可以是连接查询,联合查询或子查询 create view 视图名字 as select 指令 示例 my...

视图 view

1、创建视图

视图本质是SQL指令

基本语法

-- 可以是单表数据,也可以是连接查询,联合查询或子查询
create view 视图名字 as select 指令

示例

mysql> select * from my_student;
+----+--------+----------+------+--------+
| id | name   | class_id | age  | gender |
+----+--------+----------+------+--------+
|  1 | 刘备   |        1 |   18 |      2 |
|  2 | 李四   |        1 |   19 |      1 |
|  3 | 王五   |     NULL |   20 |      2 |
|  4 | 张飞   |     NULL |   21 |      1 |
|  5 | 关羽   |     NULL |   22 |      2 |
|  6 | 曹操   |        1 |   20 |   NULL |
+----+--------+----------+------+--------+
6 rows in set (0.00 sec)

mysql> select * from my_class;
+----+--------+
| id | name   |
+----+--------+
|  1 | 一班   |
|  3 | 三班   |
+----+--------+
2 rows in set (0.00 sec)

-- 创建视图
create view student_class_view as 
select s.*, c.name class_name from my_student as s 
left join my_class as c
on s.class_id = c.id;

查看视图结构,视图本身是虚拟表,所以关于表的操作都适用于视图

show tables;
show create view <table_name>;
desc <table_name>;

2、使用视图

视图是一张虚拟表,可以直接把视图当做表操作,视图本身没有数据,是临时执行select语句得到对应的结果,视图主要用于查询操作

基本语法

select 字段列表 from 视图名字 [子句];

示例

select * from student_class_view;
+----+--------+----------+------+--------+------------+
| id | name   | class_id | age  | gender | class_name |
+----+--------+----------+------+--------+------------+
|  1 | 刘备   |        1 |   18 |      2 | 一班       |
|  2 | 李四   |        1 |   19 |      1 | 一班       |
|  3 | 王五   |     NULL |   20 |      2 | NULL       |
|  4 | 张飞   |     NULL |   21 |      1 | NULL       |
|  5 | 关羽   |     NULL |   22 |      2 | NULL       |
|  6 | 曹操   |        1 |   20 |   NULL | 一班       |
+----+--------+----------+------+--------+------------+
6 rows in set (0.00 sec)

3、修改视图

本质是修改视图对应的查语句

基本语法

alter view 视图名字 as select 语句;

示例

alter view student_class_view as 
select s.id, s.name, c.name class_name from my_student as s 
left join my_class as c
on s.class_id = c.id;

mysql> select * from student_class_view;
+----+--------+------------+
| id | name   | class_name |
+----+--------+------------+
|  1 | 刘备   | 一班       |
|  2 | 李四   | 一班       |
|  3 | 王五   | NULL       |
|  4 | 张飞   | NULL       |
|  5 | 关羽   | NULL       |
|  6 | 曹操   | 一班       |
+----+--------+------------+

4、删除视图

基本语法

drop view 视图名字;

示例

drop view student_class_view;

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/125215161

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。