iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 视图
  • 757
分享到

MySQL 视图

MySQL视图 2016-06-03 19:06:12 757人浏览 无得
摘要

  视图的概念 视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。     视图的作用 安全性。grant授权用户只操作视图、只读,可以保护基本表中的数据。 提高查询性能。视图只是基本表的一部分,查视图

MySQL  视图

 

视图的概念

视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。

 

 

视图的作用

  • 安全性。grant授权用户只操作视图、只读,可以保护基本表中的数据。
  • 提高查询性能。视图只是基本表的一部分,查视图比查全表快。尤其是多表查询的时候,查视图一张表比连接多张表查询要快。

 

 

视图的常用操作


#创建视图
create view view_computer_dep as (select * from tb_student where dep_id=1); #把计算机系的学生信息保存为视图
#以后要查询计算机系的学生信息直接从视图中查,肯定比从tb_student全表里查要快。把多表查询的结果集保存为视图一张虚表,查询性能提升更加明显。


#从视图中查数据
select * from view_computer_dep;

#修改视图
create or replace view view_computer_dep as (select id,name from tb_student where dep_id=1); #视图名要相同。会使用新的结果集替换原来的结果集。
#必须要有create or,不能直接replace,语法不允许。
#如果视图不存在,会自动创建


#删除视图
drop view view_computer_dep;

 

 


 

 

 

创建视图的完整语法

create [alGorithm=merge|temptable|undefined] view view_computer_dep as (select * from tb_student where dep_id=1) [with check option] ;

主要注意一下2个可选参数。

 

algorithm指定视图的执行机制,有3个可选的值:

(1)merge  合并

合并有2层含义,一是sql语句合并,比如说select * from view_computer_dep 操作视图,执行时会用视图定义替换视图名,实际执行的是select * from  (select * from tb_student where dep_id=1);二是操作合并,对视图中的记录可以进行增改删查(实际是对基本表进行增改删查),所以对视图中记录的增改删会同步到基本表

此种方式不会创建临时表,每次都是操作基本表,并不会提高查询性能

 

(2)temptable  临时表

(select * from tb_student where dep_id=1)  as  view_computer_dep; 
select * from view_computer_dep;
把对基本表的查询结果保存为临时表,每次操作的都是临时表。

此种方式可以提高查询性能,但只能对视图进行查询操作,不能进行增改删。

 

(3)undefined 未定义

缺省此参数时默认就是undefined,由数据库决定是使用merge还是使用temptable,Mysql是使用merge。

 

 

如果使用merge,还可以设置一个可选参数:with check option  是否检查条件。

创建视图时设置了条件where dep_id=1(过滤基本表),即视图中的记录都是dep_id=1的。

如果设置了with check option,那往视图中插入记录时记录的dep_id必须是1,必须要满足设置的条件,update更新视图中的记录时,dep_id=1这一个字段也不能改。要保证视图中的记录都满足条件

 

 


 

 

 

不可更新的视图

就算使用merge,也不是所有视图中的记录都可以增删改的。

create view view_computer_dep as (select * from tb_student where dep_id=1)

 

as指定视图的数据来源,如果里面使用了以下任何一种,创建的视图都是不可更新的:

  • 聚合函数
  • group by子句
  • having子句
  • distinct关键字
  • uNIOn运算符
  • from来源于多个表或者来源于不可更新的视图

一句话,不是直接来源于一个基本表的,对视图中的记录都只能进行查询操作,不能进行增改删。

 

比如使用了sum():create view view_computer_dep as (select sum(salary) from tb_employees );

你要update更新视图中的sum这个字段,怎么同步到基本表?同步不了。

 

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 视图

本文链接: https://www.lsjlt.com/news/4884.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL | 视图
    目录 一、创建视图 1.1 在单表上创建视图 1.2 在多表上创建视图 二、查看视图 2.1 使用DESCRIBE语句查看视图基本信息 2.2 使用SHOW TABLE STATUS语句查看视图基本信息 2.3 使用SHOW CREATE ...
    99+
    2023-08-31
    mysql 数据库 sql 大数据 big data
  • MySQL——视图
    注意:视图只适用于MySQL5及之后的版本 为什么使用视图? 重用SQL语句。 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节。 使用表的组成部分而不是整张表。 保存数据。可以给用户授...
    99+
    2019-09-26
    MySQL——视图
  • MySQL 视图
      视图的概念 视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。     视图的作用 安全性。grant授权用户只操作视图、只读,可以保护基本表中的数据。 提高查询性能。视图只是基本表的一部分,查视图...
    99+
    2016-06-03
    MySQL 视图
  • MySQL视图
    视图 常见的数据库对象 视图概述 为什么使用视图 可以帮助我们使用表中的部分数据,对其修改可以改变原来表中的值 可以简化查询 控制数据的访问(权限) 视图的理解 视图是一种虚拟表,本身不具有数据的,占用极少的内存 视图建立在已有表的基...
    99+
    2021-05-23
    MySQL视图
  • MySQL--视图
    # 对临时表的保存,配合之后的sql语句的使用 -- 视图 -- (创建视图) 定义一个对象关系     create&nbs...
    99+
    2022-10-18
  • mysql-视图
    mysql视图的定义视图是虚拟表或逻辑表,它被定义为具有连接的SQL SELECT查询语句。因为数据库视图与数据库表类似,它由行和列组成,因此可以根据数据库表查询数据。其内容由查询定义。但是,视图并不在数据库中以存储的数据值集形式存...
    99+
    2023-01-30
    视图 mysql
  • mysql的视图
    什么是视图 视图是一个虚拟表,其内容由查询定义。 同真实的表一样,视图包含一系列带有名称的列和行数据。 行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。 简单的来说视图是由select结果组成的表;...
    99+
    2018-08-23
    mysql的视图
  • 十、MySQL视图
     数据库中的视图是一个虚拟表。同真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据来自由定义视图查询所引用的表,并且在引用视图时动态生成。10.1、视图概述 视图是从一个或多个...
    99+
    2022-10-18
  • MySql 视图 - 纪宇
    视图是一个虚拟表,内容由创建时的查询语句定义 创建视图 create view view_name as 查询语句(select ... from ... where ... ) 删除视图 drop vi...
    99+
    2020-02-02
    MySql 视图 - 纪宇
  • Mysql 视图、索引
    一、视图:1、视图的定义:视图是物理表的映射结果,物理表变化,视图肯定变化。 create view v_name as select 列名(也可以是函数计算出来的结果如 avg()) from ...
    99+
    2022-10-18
  • MySQL 视图简介
    概述 数据库中关于数据的查询有时非常复杂,例如表连接、子查询等,这种查询编写难度大,很容易出错。另外,在具体操作表时,有时候要求只能操作部分字段。 为了提高复杂 SQL 语句的复用性和表的操作的安全性,MySQL 提供了视图特性。所谓视...
    99+
    2019-11-20
    MySQL 视图简介
  • MySQL基础-视图
    视图 定义:本质就是一张虚拟表。从一个或多个表中结合查询出来的结果集,作用和真实表一样。可以使用SELECT 语句查询数据,也可以使用INSERT,UPDATE,DELETE 来修改数据。 优点:1) 简单化,数据所见即所得;2) ...
    99+
    2021-02-05
    MySQL基础-视图
  • MySQL中的视图
    视图概述 视图是一种虚拟存在的表,并不在数据库中实际存在,它的数据依赖于真实存在的数据表。通过视图不仅可以看到其依赖数据表中的数据,还可以像操作数据表一样,对数据表中的数据进行添加、修改和删除。与直接操作数据表相比,视图具有以下优点。 简化...
    99+
    2023-10-25
    数据库 mysql
  • MySQL 视图(详解)
    文章目录 一,视图概念使用视图的原因 二,创建视图(1)基本语法(2)创建基于单表的视图【实例 1】【实例 2】 (3)创建基于多表的视图【实例 3】 (4)查询视图【实例 4...
    99+
    2023-09-06
    MySQL 视图 增删改查 知识
  • MySQL基础(4) | 视图
    MySQL基础(4) | 视图 基本语法 创建 CREATE VIEW AS 语法说明如下。 :指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 :指定创建视图的 SELECT 语句,可用于查询多个基...
    99+
    2019-06-10
    MySQL基础(4) | 视图
  • MySQL数据库视图
    day05 MySQL数据库视图一、视图概述:    视图是一个虚拟表,是从数据库中一个或多个表中导出来的表,内容是由查询定义的。数据库中只存在视图的定义,而没有相关...
    99+
    2022-10-18
  • MySQL视图的概念
    本篇内容主要讲解“MySQL视图的概念”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL视图的概念”吧!1、基本概念  视图本身是一张虚拟表,不存放任何数...
    99+
    2022-10-18
  • MySQL-SQL视图详细
    ♥️作者:小刘在C站 ♥️个人主页: 小刘主页  ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术 ♥️小刘私信可以随便问,只要会...
    99+
    2023-09-05
    数据库 sql mysql
  • MySQL视图创建和给予用户视图权限
    创建基于单表的视图 在 checkrecord 表上创建一个名为 v_checkrecord 的视图 只映射id,username,nickname字段 CREATE VIEW v_checkrec...
    99+
    2023-09-01
    mysql 数据库 sql
  • MySQL如何创建视图
    基本语法 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名...
    99+
    2022-05-13
    MySQL 视图 MySQL 创建视图
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作