首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL数据库:视图View

MySQL数据库:视图View

作者头像
全栈程序员站长
发布于 2021-10-08 07:43:17
发布于 2021-10-08 07:43:17
2.5K0
举报

一、视图的定义:

视图(View)是从一个或者多个表(或视图)导出的表,其内容由查询定义。视图是一个虚拟表,数据库中只存储视图的定义,不存储视图对应的数据,在对视图的数据进行操作时,系统根据视图的定义去操作相应的基本表。

可以说,视图是在基本表之上建立的表,它的结构和内容都来自基本表,依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

二、视图的作用:

1、简化了操作,把经常使用的数据定义为视图:

我们在使用查询时,在很多时候我们要使用聚合函数,同时还要显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,我们可以创建视图,之后只需要使用select * from view就可以了,简化了操作。 

2、安全性,用户只能查询和修改能看到的数据:

视图的安全性可以防止未授权用户查看特定的行或列,使用户只能看到表中特定行列,定制用户的数据,因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以将基表中重要的字段信息,不通过视图给用户。视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图不可以随意的更改和删除,可以保证数据的安全性。 

3、逻辑上的独立性,屏蔽了真实表的结构带来的影响:

视图可以使应用程序和数据库表在一定程度上独立,如果没有视图,应用一定是建立在表上。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

三、视图的缺点:

1、性能差:

数据库必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也要把它变成一个复杂的结合体,需要花费一定的时间。(每次SELECT视图的时候,视图都会重新计算创建它的规则,即sql算法,如果算法复杂,数据量大,那样每次查询就很慢了)

2、修改限制:

当用户试图修改视图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于简单的视图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。

四、视图的相关操作:

对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,多表视图一般用于查询,不改变基本表的数据。

参考链接:http://www.w3school.com.cn/sql/sql_view.asp

1、创建视图:

CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition

注释:视图总是显示最近的数据。每当用户查询视图时,数据库引擎通过使用 SQL 语句来重建数据。

2、查询视图:

seclect column_name(s) from view_name;

3、更新视图:

CREATE OR REPLACE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition

4、删除视图:

Drop View view_name;

五、视图与表的区别:

1、视图不占用物理空间,只是逻辑概念的存在,数据库中只存储视图的定义,不存储视图对应的数据,没有实际的物理记录,是虚表。而表是实际的物理记录,需要占用物理空间。

2、表是内容,视图是窗口。

3、表是内模式,视图是外模式。

4、视图的建立和删除只影响视图本身,不影响对应的基本表。但是,基本表的删除和修改会影响到视图。

5、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,是一些SQL语句执行结果集合的可视化的表。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。

参考文章:https://blog.csdn.net/buhuikanjian/article/details/53105416

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/114633.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL数据库基础知识_Mysql教程
在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库
全栈程序员站长
2022/09/23
9030
Java面试手册:数据库 ④
触发器 触发器是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行。触发器可以查询其他的表,而且可以包含复杂的SQL语句他们主要用于强制服从复杂业务的规则或要求。 触发器是与表相关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据库的完整性。 触发器在数据库中定义了一系列的操作,可以在对指定表进行插入,更新或者删除的同时自动执行这些操作。 例如:西安北站所属办公室----->北
南风
2018/12/13
1.5K0
MySQL数据库之视图
        为了简化复杂SQL语句编写,以及提高数据库安全性,MySQL数据库视图特性。视图是一张虚拟表,不在数据库中以储存的数据值形式存在。在开发中,开发者往往只对某些特定数据和所负责的特定任务感兴趣,只需要看到这一部分数据即可。这时候就可以用到视图来完成。
星哥玩云
2022/08/17
1.7K0
MySQL数据库之视图
sqlserver 视图创建索引_数据库视图可以建立索引吗
视图(View)是从一个或多个表或其它视图导出的,用来导出视图的表称为基表,导出的视图又称为虚表。在数据库中,只存储视图的定义,不存放视图对应的数据,这些数据仍然存放在原来的基表中。 使用视图前,必须先创建视图,创建视图要遵守以下原则: (1)只有在当前数据库中才能创建视图,视图命名必须遵循标识符规则。 (2)不能将规则、默认值或触发器与视图相关联。 (3)不能在视图上建立任何索引。
全栈程序员站长
2022/09/23
3.4K0
sqlserver 视图创建索引_数据库视图可以建立索引吗
MySQL数据库笔记(三)
MySQL视图 本质上是一种虚拟表,其内容和真实的表像是。 包含了带有名称的列和行数据。
全栈程序员站长
2022/06/30
2780
MySQL-索引;视图「建议收藏」
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
全栈程序员站长
2022/09/16
1.5K0
MySQL-索引;视图「建议收藏」
【数据库设计和SQL基础语法】--SQL语言概述--SQL的基本结构和语法规则(二)
数据控制语言(DCL)是SQL的一个子集,用于控制数据库中的数据访问和权限。GRANT语句是DCL中的一种,用于向用户或角色授予特定的数据库操作权限。以下是GRANT语句的基本语法:
喵叔
2023/12/04
8180
MySQL数据库编程基础入门2
描述:学习MySQL除了一些基本的SQL语句以外,我们还需要学习MySQL扩展部分的知识;通过前面的学习我们知道SQL类型大致分为四类,在后面的学习采用这四类来入门了解使用MySQL 8.0;
全栈工程师修炼指南
2022/09/29
1.6K0
MySQL数据库编程基础入门2
数据库常用sql语句总结「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说数据库常用sql语句总结「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/07/06
23.6K0
数据库常用sql语句总结「建议收藏」
如何创建、更新和删除SQL 视图
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
用户4988376
2021/07/16
2K0
MySQL学习笔记:SQL分类
SQL(Structured Query Language)是一种用于管理和操作关系型数据库的强大语言。它涵盖了多个方面,包括数据查询、定义和修改数据库结构、操纵数据以及事务处理。在本文中,我们将深入探讨 SQL 的分类及其各自的作用。
孟斯特
2024/02/29
4160
MySQL学习笔记:SQL分类
关系型数据库 MySQL 表索引和视图详解
经过一个周末,对前面的 MySQL 基础知识以及 MySQL 的体系结构和 InnoDB 体系结构有所了解,感兴趣的可查看历史记录或者戳此了解[关系型数据库 MySQL 之 InnoDB 体系结构],今天来一起学习一下 MySQL 表索引和视图的相关知识。
JiekeXu之路
2019/06/20
2.3K0
Mysql数据库-视图
3. Mysql数据库-视图 3.1 视图概述 3.1.1 视图介绍 # 视图介绍 1). 视图(View)是一种虚拟存在的表。 2). 视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。(视图只保存sql的逻辑,不保存表数据) 3). 通俗的讲,视图就是一条SELECT语句执行后返回的结果集。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 # 举个例子 普通班级: 张三 李四 王五 马六... 表
Devops海洋的渔夫
2022/01/17
1.7K0
Mysql数据库-视图
MySQL操作之视图
视图是从一个表或者多个表导出来的表,它是一种虚拟存在的表,并且表的结构和数据都依赖于基本表。通过视图不仅可以看到存放在基本表中的数据,并且还可以像操作基本表一样,对视图中的数据进行查询、修改和删除。
ha_lydms
2023/08/09
3760
MySQL操作之视图
MySQL技能完整学习列表8、触发器、视图和事务——1、触发器(Triggers)的使用——2、视图(Views)的创建和使用——3、事务(Transactions)的管理
MySQL的触发器(Triggers)是一种特殊类型的存储过程,它会在数据表上的特定操作(插入、更新或删除)发生时自动执行。触发器可以帮助我们实现数据的自动处理、验证和维护等任务。下面将详细说明MySQL触发器的使用方法,并提供具体的示例。
红目香薰
2023/12/01
8460
什么是MySQL 视图
视图是一种虚拟表,是一个逻辑表,本身并不包含数据,通过select语句去基本表上动态生成数据。
Eulogy
2025/07/23
1090
数据库中的视图简介
我们在从数据库中查询某些数据时通常是使用 select * from TableName where condition,例如从公告表中查询2018年5月6号发布的公告信息并且只想让用户看到公告的标题、公告的内容、公告的发布日期,我们通常查询的SQL语句为select AnnounceTitle, AnnounceContent, PublishDate from Announce where PublishDate = '2018-05-06',查询结果如下
用户3880999
2023/04/13
8680
数据库中的视图简介
sql 语言
静默虚空
2018/01/05
1.4K0
【愚公系列】软考高级-架构设计师 061-SQL语言
SQL,全称为Structured Query Language(结构化查询语言),是一种专门用来管理和操作关系型数据库系统的语言。SQL的主要功能是执行对数据库的查询和更新操作,包括数据的插入、修改、删除以及查询。
愚公搬代码
2024/07/06
2100
0 基础MYSQL自学之路
SQL(Structured Query Language)是结构化查询语言的缩写,用于管理和操作关系型数据库。它是一种标准化的语言,通过使用语句描述数据库中数据的定义、操作和控制。
疯狂的KK
2023/06/26
3680
0 基础MYSQL自学之路
推荐阅读
相关推荐
MySQL数据库基础知识_Mysql教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档