探索MySQL视图的无限可能:优化查询、增强数据安全与简化数据访问

news2024/11/18 9:48:59
  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-CSDN博客

目录

前言:

正文:

1.视图的定义:

2.视图的优点:

简单化:

安全性:

逻辑数据独立性:

3.创建单表视图

创表:

插入数据:

创建视图:

查看视图:

4.创建多表视图

创建表:

插入数据:

创建视图:

查看视图的基本信息:

查看视图的详细信息:

5.查看mysql中所有视图

6.修改视图

7.更新视图

8.删除视图内容

9.删除视图

10.视图和表的区别

11.两者的联系

12.视图的优缺点

优点:

缺点:


前言:

在数据驱动的时代,数据库作为信息的核心仓库,其性能、安全性和易用性对于任何组织或项目而言都至关重要。MySQL,作为世界上最流行的开源关系型数据库管理系统之一,凭借其强大的功能、灵活的配置和广泛的社区支持,成为了众多企业和开发者的首选。而在MySQL的众多特性中,视图(View)以其独特的方式,为数据库的设计、管理和访问带来了革命性的变化。

视图,简而言之,是存储在数据库中的一条SQL查询语句,它表现为一个虚拟的表。与物理表不同,视图并不包含数据本身,而是根据定义它的SQL语句动态生成数据。这种特性使得视图在优化查询性能、增强数据安全、简化数据访问以及实现复杂业务逻辑等方面展现出了巨大的优势。

首先,通过合理使用视图,我们可以将复杂的查询逻辑封装起来,使得最终用户或应用程序在访问数据时无需关心底层的复杂性和细节,从而大大简化了数据访问的过程。这对于提高开发效率、降低维护成本具有重要意义。

其次,视图在数据安全方面发挥着不可替代的作用。通过创建视图,我们可以限制用户对数据库中某些数据的直接访问,只展示他们需要的或有权访问的信息。这种基于视图的访问控制机制,为数据库的安全防护提供了一道有力的屏障。

再者,视图还是优化查询性能的有效手段之一。通过预先计算并存储复杂的查询结果,视图可以减少数据库的负载,提高查询的响应速度。尤其是在处理大量数据和复杂查询时,视图的这种优势更加明显。

最后,视图还为实现复杂的业务逻辑提供了可能。通过组合多个表中的数据,我们可以创建出符合特定业务需求的视图,从而满足多样化的数据分析和报告需求。


正文:

1.视图的定义:

一张虚表,和真实的表一样。视图包含一系列带有名称的行和列数据。

视图是从一个或多个基表中导出来的,可以通过insert,update,delete来操作视图


2.视图的优点:

简单化:

看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化操作。经常被使用的查询可以制作成一个视图

安全性:

通过视图用户只能查询和修改所能见到的数据,数据库中其他的数据既看不见也取不到。数据库授权命令可以让每个用户对数据库的检索限制到特定的数据库对象上,但不能授权到数据库特定的行,列上。

逻辑数据独立性:

视图可帮助用户屏蔽真实表结构变化带来的影响


3.创建单表视图

创表:

CREATE TABLE t(quantity INT, price INT);

插入数据:

INSERT INTO t VALUES(3,50);

创建视图:

CREATE VIEW view_t AS SELECT quantity,price,quantity*price FROM t;

查看视图:

SELECT * FROM view_t;


4.创建多表视图

创建表:

create table student( s_id int(3) primary key,s_name varchar(30),s_age int(3),s_sex varchar(8));

create table stu_info(s_id int(3),class varchar(50),addr varchar(100)) default charset utf8mb4 collate utf8mb4_bin;

插入数据:

insert into student values (1,'z3',20,'m'),(2,'L4',30,'m'),(3,'w5',40,'f');

insert into stu_info (s_id,class,addr) values(1,'二班','安徽'),(2,'三班','重庆'),(3,'一班','山东');

创建视图:

CREATE VIEW stu_class(id,name,class)

AS

SELECT student.s_id,student.s_name,stu_info.class from student,stu_info WHERE student.s_id=stu_info.s_id;

查看视图的基本信息:

SHOW TABLE STATUS LIKE 'stu_class'\G

查看视图的详细信息:

show create view stu_class;


5.查看mysql中所有视图

select * from information_schema.views\G


6.修改视图

CREATE OR REPLACE VIEW view_t AS SELECT * FROM t;

ALTER VIEW view_t AS SELECT quantity FROM t ;

7.更新视图

UPDATE view_t SET quantity=5;

8.删除视图内容

DELETE FROM view_t WHERE quantity=5;

9.删除视图

DROP VIEW stu_class;


10.视图和表的区别

(1)视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化的表。而表不是。

(2)视图没有实际的物理记录,而表有。

(3)表是内容,视图窗口

(4)表和视图虽然都占用物理空间,但是视图只是逻辑概念存在,而表可以及时对数据进行修改,但是视图只能用创建语句来修改

(5)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL 语句的集合。从安全角度来说,视图可以防止用户接触数据表,因而不知道表结构

(6)表属于全局模式中的表,是实表。而视图属于局部模式的表,是虚表

(7)视图的建立和删除只影响视图本身,而不影响对应表的基本表

11.两者的联系

视图是在基本表之上建立的表,它的结构和内容都来自于基本表,它依赖基本表存在而存在。

一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本的抽象和逻辑意义上建立的关系。

12.视图的优缺点

优点:

简化查询,把复杂的单表或多表查询语句,简单化。

提供安全层,可以针对特定用户限制访问某些基表的特殊列。

缺点:

视图嵌套,影响查询效率。

视图与基表有依赖关系,频繁修改基表会比较繁琐。


期待您的关注~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2133080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenAI发布o1预览模型:推理能力更强可达理科博士生水准

近日OpenAI宣布推出了新一代 AI 模型系列 OpenAI o1,按照官方技术博客说法,o1 在推理能力上代表了人工智能最强的水平。 那究竟是怎么一回事呢? OpenAI CEO Sam Altman 表示:o1 系列的推出代表了 AI 能力的新起点,能…

用Python设置PDF中图片的透明度

在PDF文档的设计与内容创作过程中,图像的透明度设置是一个重要的操作。尤其是在处理图文密集型PDF文档时,设置适当的图片透明度能够极大地提升视觉表达的层次感与专业性。设置PDF图像的透明度能够让图像更好地融入背景,实现平滑过渡的效果&am…

PAT甲级-1028 List Sorting

题目 题目大意 输入给出学生数目和C值,以及每个学生的信息。要求按照C值对学生信息作出不同的排序,如果C为1,就将学号升序排列;如果C为2,将学生姓名非递减排序;如果C为3,将学生分数非递减排序。…

SldWorks问题1: 在装配体中获取零件的面

问题 我为零件的某个面进行了命名,以此查找,进行配合。 在使用先前写好的查找方法时,有时会出现找不到的情况。 然后捣鼓了半天,发现: 只有当“零件文档显示的配置,和已放置的零件配置一致”时&#xff…

《C++PrimerPlus》第10章:类和对象

文章目录 文章介绍目录重点知识10.2 抽象和类10.3 类的构造函数和析构函数10.4 this指针10.5 对象数组10.6 类作用域 文章介绍 目录 重点知识 10.2 抽象和类 类开发人员:设计类 类调用人员:使用类 10.3 类的构造函数和析构函数 10.4 this指针 10.5 对…

微服务杂谈

几个概念 还是第一次听说Spring Cloud Alibaba ,真是孤陋寡闻了,以前只知道 SpringCloud 是为了搭建微服务的,spring boot 则是快速创建一个项目,也可以是一个微服务 。那么SpringCloud 和 Spring boot 有什么区别呢?S…

dirty pages , swapiness 查看SWAP占用进程

文章说了这么多的意思 就是不要过度分配不用的内存。虽然脏块不会写入swap,但是占了物理内存,浪费空间,可能导致进行了很多不必要的交换(虽然判断很少要进swap,判断要不要也要时间。。。)。 To verify whic…

(机器学习必看视频)机器学习-吴恩达笔记汇总

最近将吴恩达老师在网易课程上的机器学习视频看了第二遍,同时整理了一下笔记,仅供学习实用,也放到了Github。主要是参考了下面几位大佬的书籍和作品,表示感谢! 李航《统计学习方法》周志华 《机器学习》黄海广博士 ima…

NAS黑群晖7.21折腾笔记

黑群晖引导制作 https://post.smzdm.com/p/a96d62xe/ 黑群晖基本使用教程 https://www.bilibili.com/video/BV1A3411f7WK/?spm_id_from333.337.search-card.all.click 重点: 1,存储管理器 --创建存储池 RAID类型选择: 2&#xff0c…

【2024.08】图模互补:知识图谱与大模型融合综述-笔记

阅读目的:假设已有一个知识图谱,如何利用图谱增强模型的问答,如何检索知识图谱、知识图谱与模型的文本如何相互交互、如何利用知识图谱增强模型回答的可解释性。 从综述中抽取感兴趣的论文进一步阅读。 来源:图模互补&#xff1…

天下苦英伟达久矣!PyTorch官方免CUDA加速推理,Triton时代要来?

在做大语言模型(LLM)的训练、微调和推理时,使用英伟达的 GPU 和 CUDA 是常见的做法。在更大的机器学习编程与计算范畴,同样严重依赖 CUDA,使用它加速的机器学习模型可以实现更大的性能提升。 虽然 CUDA 在加速计算领域占据主导地位,并成为英伟达重要的护城河之一。但其他…

AV1 Bitstream Decoding Process Specification--[4]:语法结构

原文地址:https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址:AV1 Bitstream & Decoding Process Specification摘要:这份文档定义了开放媒体联盟(Alliance for Open Media)AV1视频编解码器…

动态规划:汉诺塔问题|循环汉诺塔

目录 1. 汉诺塔游戏简介 2.算法原理 3.循环汉诺塔 1. 汉诺塔游戏简介 汉诺塔游戏是一个经典的数学智力游戏,其目标是将塔上不同大小的圆盘全部移动到另一个塔上,且在移动过程中必须遵守以下规则: 每次只能移动一个圆盘较大的圆盘不能放在…

linux cmake版本升级教程(Centos7)

有时候,当前系统的cmake版本,并一定能满足编译要求,所以需要进行升级到高于某个版本才能正常编译。本章教程,主要在centos7上进行升级cmake版本。 一、查看当前的cmake版本 cmake --version二、下载指定版本的cmake wget https://github.com/Kitware/CMake/releases/down…

2.2 vc-align源码分析 -- ant-design-vue系列

vc-align源码分析 源码地址:https://github.com/vueComponent/ant-design-vue/tree/main/components/vc-align 1 基础代码 1.1 名词约定 需要对齐的节点叫source,对齐的目标叫target。 1.2 props 提供了两个参数: align:对…

华为ensp中vlan与静态路由技术的实现

vlan 同一网段的设备,可以互通; 虚拟局域网:将局域网从逻辑上划分为多个局域网,不同通过vlan编号区分; 实现网络隔离。提高了网络安全性; vlan编号为12位; 范围1-4094可以用来配置 默认处于…

3.2 Upload源码分析 -- ant-design-vue系列

Upload源码分析 – ant-design-vue系列 源码地址:https://github.com/vueComponent/ant-design-vue/blob/main/components/upload/Upload.tsx 1 概述 本篇是对Upload组件的分析,这个组件调用了vc-upload,是对vc-upload的封装。 作用包括&…

【【通信协议之ICMP协议】】

【【通信协议之ICMP协议】】 下面先展示出ICMP协议的数据格式 用户数据打包在 ICMP 协议中,ICMP 协议又是基于 IP 协议之上的,IP 协议又是走 MAC 层发送的,即从包含关系来说:MAC 帧中的数据段为 IP 数据报,IP 报文中…

LCSS—最长回文子序列

思路分析 关于”回文串“的问题,是面试中常见的,本文提升难度,讲一讲”最长回文子序列“问题,题目很好理解: 输入一个字符串 s,请找出 s 中的最长回文子序列长度。 比如输入 s"aecda"&#xff0c…

【数据结构】字符串与JSON字符串、JSON字符串及相应数据结构(如对象与数组)之间的相互转换

前言&#xff1a; 下面打印日志用的是FastJSON依赖库中的 Log4j2。依赖&#xff1a; <!-- Alibaba Fastjson --> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.80</version> …