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,

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

相关推荐
奶糖趣多多40 分钟前
Redis知识点
数据库·redis·缓存
CoderIsArt2 小时前
Redis的三种模式:主从模式,哨兵与集群模式
数据库·redis·缓存
师太,答应老衲吧4 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
Yaml45 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍
Channing Lewis5 小时前
salesforce case可以新建一个roll up 字段,统计出这个case下的email数量吗
数据库·salesforce
追风林5 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
毕业设计制作和分享6 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
ketil276 小时前
Redis - String 字符串
数据库·redis·缓存
Hsu_kk7 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
编程学无止境7 小时前
第02章 MySQL环境搭建
数据库·mysql