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

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

时间:2024-09-12 16:25:31浏览次数:9  
标签:数据库 视图 查询 stu 数据安全 MySQL 数据 class

  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-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.视图的优缺点

优点:

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

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

缺点:

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

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


期待您的关注~

标签:数据库,视图,查询,stu,数据安全,MySQL,数据,class
From: https://blog.csdn.net/xyyy060908/article/details/142171393

相关文章

  • python基于django框架医院管理系统设计与实现mysql数据库
    随着信息技术的快速发展和医疗卫生事业的不断进步,医院信息化管理已成为提高医疗服务质量和效率的重要手段。本文设计并实现了一个基于PythonDjango框架的医院管理系统,旨在为医院提供一个全面、高效、易用的信息化管理平台。本系统采用Django框架作为后端开发框架,利用其强大......
  • 陪玩小程序源码搭建,基于PHP+MySQL陪玩系统app源码
    陪玩系统开发运营级别陪玩成品搭建支持二开源码交付,游戏开黑陪玩系统:多客陪玩系统,游戏开黑陪玩,线下搭子,开黑陪玩系统前端uniapp后端php,数据库MySQL系统框架系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP;我们为你准备了完善的后台管理,不......
  • Stable Diffusion直接生成IP三视图,一招搞定,不用手绘和建模?(附模型)
    有了这套拆解公式,IP三视图简简单单!**SD生成一个Q版IP三视图模型。**标准的三视图,并且极富设计感,IP设计师的好帮手,用来辅助创意,建模参考。这个模型一般不需堆叠复杂的质量词,直接输入你想要的内容即可,描述越复杂可能效果越不是你想要的。一招搞定,不用手绘和建模?哪怕没有......
  • mysql8.0安装教程
    本文讲解的是mysql8安装包,mysql8安装步骤,mysql下载,mysqlserver安装教程 MySQL8.0是MySQL数据库的一个重大更新版本,它引入了许多新特性和改进,旨在提高性能、安全性和易用性。 1.下载MySQL安装包注:本文使用的是压缩版进行安装。(1)从网盘下载安装文件下载MySQL8安装包,网......
  • MySQL学习笔记(三)InnoDB索引
    索引概念        索引在关系型数据库中,是一种单独的、物理的对数据库表中的一列或者多列值进行排序的一种存储结构,它是某个表中一列或者若干列值的集合,还有指向表中物理标识这些值的数据页的逻辑指针清单。        索引的作用相当于图书的目录,可以根据目......
  • 解读GaussDB(for MySQL) 冷热存储分离实现原理
    本文分享自华为云社区《GaussDB(forMySQL)新特性解读:冷热存储分离》,作者:GaussDB数据库。技术背景业务长期运行,但随着时间推移,越来越多的数据被访问频率降低,从而变成为所谓的"冷数据"。若直接将这些冷数据删除,会面临数据丢失的风险以及高昂的恢复成本;若保持冷数据现有的存储方......
  • 【编程基础知识】mysql中的insert into ... on DUPLICATE key和replace into的性能对
    一、概述在MySQL中,INSERTINTO...ONDUPLICATEKEYUPDATE和REPLACEINTO都是用来处理插入或更新数据的语句,但它们在性能和行为上有所不同。二、REPLACEINTOREPLACEINTO语句在遇到唯一键或主键冲突时,会先删除旧记录,然后插入新记录。这意味着它会执行两次操作:删除......
  • MySQL基础(10)- 子查询
    目录一、子查询的例子和分类1.举例需求:谁的工资比Abel的高?2.称谓的规范3.子查询的分类二、单行子查询1.单行比较操作符2.子查询中的空值问题3.非法使用子查询三、多行子查询1.多行子查询的操作符2.空值问题四、相关子查询1.基础相关子查询2.EXISTS与NOTEXISTS......
  • MySQL基础(9)- 聚合函数
    目录一、常见聚合函数1.AVG/SUM2.MAX/MIN3.COUNT二、GROUPBY的使用1.查询各个部门的平均工资,最高工资2.查询各个job_id的平均工资3.查询各个department_id,job_id的平均工资4.查询各个部门的平均工资,按照平均工资升序排列三、HAVING的使用 1.查询各个部门中......
  • 科普文:软件架构数据库系列之【MySQL5.7和MySQL 8.0的差异】
    引言MySQL作为最常用的开源关系型数据库管理系统之一,一直在不断发展和改进。随着时间的推移,MySQL也经历了多个版本的演进,每个版本都带来了一系列重要的更新和改进。其中,MySQL5.7和MySQL8是两个备受关注的版本,它们之间存在一些关键的差异。本文将深入探讨这两个版本之间的主......