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,

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

相关推荐
看山还是山,看水还是。30 分钟前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec36 分钟前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa1 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke1 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D1 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
小宇成长录1 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份
团儿.2 小时前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
程序猿小D2 小时前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa
权^3 小时前
MySQL--聚合查询、联合查询、子查询、合并查询(上万字超详解!!!)
大数据·数据库·学习·mysql
Code成立4 小时前
1、深入理解Redis线程模型
数据库·redis·bootstrap