MySQL—进阶—视图(概念、基本语法和操作)

目录

一、引言

[(0)这篇博客涉及的表 student 结构和数据](#(0)这篇博客涉及的表 student 结构和数据)

(1)介绍视图

(2)创建

(3)注意

二、实操

(1)创建视图

(2)查询视图

1、查看创建视图的语句

2、查看视图当中的数据(可以当作一张表去查询...因为视图就是一张虚拟存在的表,所以我们可以像操作表一样操作数据)

3、开始操作

(3)修改视图

1、第一种方式(发现创建视图和修改视图这个语法一样)。

[2、第二种通过 ALTER VIEW + ... 这种方式进行修改。](#2、第二种通过 ALTER VIEW + ... 这种方式进行修改。)

3、开始操作

(4)删除视图

[1、删除就一个语法:DROP VIEW +...](#1、删除就一个语法:DROP VIEW +...)

2、开始操作


一、引言

之前博客学习了多表查询。


现在这一小节博客主要讲到的是视图(还有存储过程、触发器,还有一个存储关联的存储函数)这一类都被称为MySQL数据库当中的存储对象。

接下来首先学习------视图。

(0)这篇博客涉及的表 student 结构和数据
(1)介绍视图

视图(View)是一种虚拟存在的表。视图中我们所看到的数据并不在数据库当中实际存在。我们所看到的视图中的行和列的数据,都是来自------定义视图的时候查询中所使用的表。

(我们把这个叫基表)并且视图当中的数据是我们在使用视图的过程当中是动态生成的。

简而言之,视图不保存数据。视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

(2)创建

CREATE [ OR REPLACE ] VIEW 视图名称 [ ( 列名列表 ) ] AS SELECT 语句 [ WITH

[ CASCADED | LOCAL ] CHECK OPTION ]

(3)注意

1、语法就是CREATE [ OR REPLACE ] (replace:更换) VIEW ...

(or replace 可以省略)

如果我们要去替换某一个视图,就可以加上 or replaceVIEW 后面跟上视图名称,可以自由定义。

2、AS 关键字。视图是一张虚拟表,最终的数据是来自后面的 SELECT 语句。SELECT 语句当中,我们需要指定从哪一张表当中查询数据。SELECT 语句当中所查询的表就是这个视图所关联的基表(基础表)。

这是创建时的涉及的语法和注意与补充。

下面来演示如何创建一个视图。使用工具 DataGrip进行操作。

二、实操

首先创建一个查询控制台,操作的是数据库是 itcast

(1)创建视图

1、CREATE OR REPLACE VIEW + ...

(创建或者是替换一个视图) 视图的名称可以自由定义。

2、AS + ... 后面跟的是这个视图的来源。所以跟 SELECT 语句,也就是这个视图所封装的数据是什么,也就是封装的是 SELECT查询返回的数据。

3、这里我们演示的是展示表 student 中的 name 字段和 id 字段,而字段 no不想去展示。

4、创建成功后:

sql 复制代码
CREATE OR REPLACE VIEW stu_v_1 AS SELECT id,name FROM student WHERE id<=10;

5、我们发现在数据库 itcast会有一个视图,这个视图叫 stu_v_1 ,视图有两个字段。

(2)查询视图

查询视图有两种操作方式。

1、查看创建视图的语句
2、查看视图当中的数据(可以当作一张表去查询...因为视图就是一张虚拟存在的表,所以我们可以像操作表一样操作数据)
3、开始操作

首先先查询看看之前创建视图的操作。

(这里面包含在创建视图时,有之前没有去设定的一些默认参数,查询会查出来)

sql 复制代码
SHOW CREATE VIEW stu_v_1;

再看看视图中的数据(就和操作表一样)

sql 复制代码
SELECT * FROM stu_v_1;

当然还可以加上WHERE条件

sql 复制代码
SELECT * FROM stu_v_1 WHERE id<3;
(3)修改视图

有两种方式。

1、第一种方式(发现创建视图和修改视图这个语法一样)。

但是注意:创建视图的时候 OR REPLACE 可以不加,但是修改视图主要在这。

2、第二种通过 ALTER VIEW + ... 这种方式进行修改。
3、开始操作
sql 复制代码
CREATE OR REPLACE VIEW stu_v_1 AS SELECT id,name,no FROM student WHERE id<=10;

此时也可以通过另外一种语法进行修改操作。

sql 复制代码
ALTER VIEW stu_v_1 AS SELECT id,name FROM student;
(4)删除视图
1、删除就一个语法:DROP VIEW +...

(可以跟上可选项:如果视图存在(IF EXISTS)再进行删除这个视图的操作)

2、开始操作
sql 复制代码
DROP VIEW IF EXISTS stu_v_1;

以上就是这篇博客的内容。


其中讲到了关于视图操作的四种语法:创建、查询、修改与删除。

当然我们也发现在我们创建视图或者修改视图发现后面有一些可选项:WITH CHECK OPTION,

这个的含义下一篇博客进行学习。

相关推荐
wqq_99225027731 分钟前
springboot基于微信小程序的食堂预约点餐系统
数据库·微信小程序·小程序
爱上口袋的天空32 分钟前
09 - Clickhouse的SQL操作
数据库·sql·clickhouse
Oak Zhang1 小时前
sharding-jdbc自定义分片算法,表对应关系存储在mysql中,缓存到redis或者本地
redis·mysql·缓存
聂 可 以2 小时前
Windows环境安装MongoDB
数据库·mongodb
web前端神器2 小时前
mongodb多表查询,五个表查询
数据库·mongodb
门牙咬脆骨2 小时前
【Redis】redis缓存击穿,缓存雪崩,缓存穿透
数据库·redis·缓存
门牙咬脆骨2 小时前
【Redis】GEO数据结构
数据库·redis·缓存
wusong9992 小时前
mongoDB回顾笔记(一)
数据库·笔记·mongodb
代码小鑫2 小时前
A043-基于Spring Boot的秒杀系统设计与实现
java·开发语言·数据库·spring boot·后端·spring·毕业设计
changuncle3 小时前
MongoDB数据备份与恢复(内含工具下载、数据处理以及常见问题解决方法)
数据库·mongodb