一、概念

1.视图是MySQL在5.0.1版本中加入的功能。它可以理解为一个虚表。

2.之所以被称为虚表,是因为它只是存储了一个结构,并不存储真实的数据。行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。

3.视图并不是真的优化

二、创建一个视图

--创建视图的语法:create view 视图名称 as select语句;

--创建一个视图:create view user_view as select id,name,age,sex from user;

三、查看视图

查看视图的方式和表一样可以通过select来查看,desc查看视图结构

--查看视图结构:desc user_view; show create view user_view;

--查看视图内容:select * from user_view;

四、视图的优点

1.第一个显著优点就是它简化了操作。此时我们完全不用关心视图是怎么处理数据的,我们只需要知道如何使用这个结果集即可,视图相当于一个中间层。

2.第二个显著优点就是它更加安全。比如我们可以让用户有权去访问某个视图,但是不能访问原表,这样就可以起到保护原表中某些数据的作用。

3.我们之后会接触到管理权限,权限是无法细致到某一个列的,通过视图,则很容易实现。

4.第三个显著优点就是降低耦合。假如我们以后要修改原表的结构,那么我们可以通过修改视图的定义即可,而不用修改应用程序,对访问者是不会造成影响的,一般来说,这样代价会更小。

五、视图的缺点

1.性能:从数据库视图查询数据可能会很慢,特别是如果视图是基于其他视图创建的。

2.表依赖关系:将根据数据库的基础表创建一个视图。每当更改与其相关联的表的结构时,都必须更改视图。

六、视图的UID

表的数据是可以修改与更新的,但是在视图就不一定了。

--修改视图字段的值会直接修改到源数据表:update `user_view` set name='小哈' where id=1; select * from `user`;

--删除视图:drop view user_view;

以下是视图不可更新的情况:

1.包含聚合函数、distinct、groupby、having、union、unionall。

2.常量视图。

3.select包含子查询。

4.包含连接操作。

5.from一个不能更新的视图。

6.where子句的子查询引用了from子句中的表。

mysql中 视图的优缺点,详细讲解MYSQL视图的作用及优缺点相关推荐

  1. mysql 中show 命令用法详细介绍 mysql过程(procedure)的使用

    a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称 b. show databases; -- 显示mysql 中所有数据 ...

  2. java中PreparedStatement和Statement详细讲解

    java中PreparedStatement和Statement详细讲解 大家都知道PreparedStatement对象可以防止sql注入,而Statement不能防止sql注入,那么大家知道为什么 ...

  3. python中的ix是啥_pandas中ix的使用详细讲解

    在上一篇博客中,我们已经仔细讲解了iloc和loc,只是简单了提到了ix.这是因为相比于前2者,ix更复杂,也更让人迷惑. 因此,本篇博客通过例子的解释试图来描述清楚ix,尤其是与iloc和loc的联 ...

  4. MySql中的日期处理(适用于 MySQL 5.X 及以上版本)

    MySql中的日期处理(适用于 MySQL 5.X 及以上版本) 一.日期相关函数 date_format(date, format)MySQL日期格式化unix_timestamp()str_to_ ...

  5. mysql中的nan_使用python-cod将MySql列中的“NAN”值转换为NULL

    我通过python在MySql中编写/存储数据.如果MySql中的列数据包含"NAN",那么我如何处理它们.目前我知道如何处理空白或无值,但在这里我被卡住了.数据看起来像这样# f ...

  6. mysql数据库视图原理_详细分析mysql视图的原理及使用方法

    前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了.那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会详 ...

  7. mysql事件计划自动_逐步讲解MySQL中定时事件计划的创建

    一.使用过程1.查看当前是否已开启事件计划(调度器)有3种方法: SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; SH ...

  8. mysql序列号生成_超详细的mysql数据库GTID介绍—概念、优缺点、原理、生命周期等

    概述 这几天就简单介绍一下GTID好了~这篇是概念篇.. 从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式.通过 GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID.这种 ...

  9. 详细讲解MySQL索引与联合索引

    背景:  为了提高数据库效率,建索引是家常便饭:那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下. 一.联合索引 ...

最新文章

  1. sql leftjoin from a,b区别
  2. [转载] 信息系统项目管理挂靠合同(协议)范例1
  3. ERROR: cannot start IntelliJ IDEA. No JDK found to run IDEA. Please validate either IDEA_JDK, JDK_HO
  4. Disturbed People(思维)
  5. 砂 即懒且忙 只有随笔
  6. LeetCode 112路径总和-简单
  7. 面试基础算法及编程 第二弹(链表相关:主要考察指针的应用)
  8. 2021年中国仪表阀市场趋势报告、技术动态创新及2027年市场预测
  9. input datetime-local 时间控件精确到秒
  10. 计算机EXE文件改参数,exe文件修改器(eXeScope)
  11. 关于防止出现手机微信投票怎么刷票、微信刷票会不会被发现的技术
  12. 计算机网络操作技师论文,关于计算机操作技师论文计算机操作技师论文:计算机网络技术专业技师培养过程思考.doc...
  13. Android产品研发(十一)--应用内跳转Scheme协议
  14. Android进程间通讯AIDL使用及问题详解(雷惊风)
  15. Apache反向代理配置
  16. 云数据库产品及架构设计背后的考量
  17. 粥佐罗时间管理课学习笔记
  18. GoLang各种库(转)
  19. 算法分析与设计期末总结
  20. 中国手机行业发展现状及趋势,行业市场集中度上升「图」

热门文章

  1. c 语言 fun函数用法,Golang——函数func
  2. modelsim 独立仿真vivado fifo IP核
  3. 异常检测:PyOD工具库(含SUOD库)【包括近30种常见的异常检测算法:ABOD、HBOS、IForest、KNN、LOF、OCSVM、PCA等】【Outlier detection (OD) 】
  4. 批量下载GitHub代码
  5. 网易实况足球获取服务器信息,网易实况足球怎么玩?用手用脑和这篇攻略的辅助...
  6. DELL电脑内测更新绿屏解决方法
  7. 虚拟化服务器制作视频教程,VMware服务器虚拟化视频教程套餐【32课高清完整版】...
  8. golang中io/ioutil.readdir和path/filepath.walk遍历获取目录下文件性能比较
  9. 网上商城项目(加入购物车)
  10. 无许可的开源软件可以使用吗?