MySQL数据库——视图-介绍及基本语法(创建、查询、修改、删除、演示示例)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL数据库——视图-介绍及基本语法(创建、查询、修改、删除、演示示例)

介绍

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表(称为基表),并且是在使用视图时动态生成的。


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

语法

因为视图是一种虚拟存在的表,所以可以根据之前操作表的方法来操作视图(其中修改视图与修改表不同,修改视图有两种方式)。

创建

CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 
[ WITH [CASCADED | LOCAL ] CHECK OPTION ]

查询

-- 查看创建视图语句:
SHOW CREATE VIEW 视图名称;
 
-- 查看视图数据:
SELECT * FROM 视图名称 ...... ;

修改

-- 方式一:
CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
 
-- 方式二:
ALTER VIEW 视图名称[(列名列表)] AS SELECT语句 
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

删除

DROP VIEW [IF EXISTS] 视图名称 ...

演示示例

-- 创建视图
create or replace view stu_v 
as
select id,name from student
where
id <= 10;
 
-- 查询视图
show create view stu_v;
 
select * from stu_v;
 
select * from stu_v where id < 3;
 
-- 修改视图
create or replace view stu_v 
as 
select id,name,no from student 
where 
id <= 10;
 
alter view stu_v 
as 
select id,name from student 
where 
id <= 10;
 
-- 删除视图
drop view if exists stu_v;

上述我们演示了,视图应该如何创建、查询、修改、删除,那么我们能不能通过视图来插入、更新数据呢?

接下来,做一个测试。

-- 创建视图,设置条件id < 10
create or replace view stu_v 
as 
select id,name from student 
where 
id <= 10 ;
 
-- 插入两条数据,一条id < 10,另一条id > 10
insert into stu_v values(6,'Tom');
 
insert into stu_v values(17,'Tom22');
 
-- 查询视图
select * from stu_v;
 

执行上述的SQL,我们会发现,id为6和17的数据都是可以成功插入的。

但是我们执行查询,查询出来的数据,却没有id为17的记录。



因为我们在创建视图的时候,指定的条件为 id<=10,

id为17的数据,是不符合条件的,所以没有查询出来,

但是这条数据已经成功的插入到了基表中。

如果我们定义视图时指定了条件,然后我们在插入、修改、删除数据时,是否可以做到必须满足条件才能操作,否则不能够操作呢? 答案是可以的,这就需要借助于视图的检查选项了。

下一篇就来了解视图的检查选项这一内容。


END



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
39 9
|
11天前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
37 3
|
14天前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
24 2
|
16天前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
15天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
78 1
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0
|
8天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
22 4
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
19 1
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
61 3
Mysql(4)—数据库索引
|
17天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
59 2