MySQL - 视图

一、概述

  Mysql 5.0 版本后开始引入视图。视图本身是一个虚拟表,不存放任何数据。在使用 sql 语句访问视图的时候,他返回的数据都是在查询过程中从其他表动态生成的。

 
二、使用视图
 

1、创建视图

CREATE VIEW comic_view as SELECT comic_id,name,pen_name from comic;

 
2、创建之后,我们就可以像使用正常数据表一样使用视图。

SELECT comic_id,name,pen_name from comic_view limit 100;

 

 
三、可更新视图

  可更新视图是指可以通过更新这个视图来更新视图涉及的相关表。只要指定了合适的条件,就可以更新、删除、甚至想视图中写入数据。

  如果视图定义中包含了Group By、UNION、聚合函数、以及其他一些特殊情况,就不能被更新。

  更新视图的查询也可以是一个关联语句,但是有一个限制,被更新的列必须在同一个表中。另外,所有使用临时表算法实现的视图都无法被更新。(有合并算法和临时表算法两种算法)

 
四、视图优缺点

1、优点:

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

  第二个显著优点就是它更加安全。比如我们可以让用户有权去访问某个视图,但是不能访问原表,这样就可以起到保护原表中某些数据的作用。另外,权限是无法细致到某一个列的,通过视图,则很容易实现。

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

 
2、缺点:

(1)实际数据表的表结构修改了,则必须手动修改相关视图。

(2)应对大数据时,可能会降低性能。

注:如果使用的数据库类型是Mysql,因为 Mysql 目前并不支持物化视图,所以针对分布式、大数据的程序,都不建议使用视图。

 

原文链接:https://www.haveyb.com/article/59

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

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

相关文章

Linux环境下压缩与解压命令大全

tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .tgz 解压:tar zxvf FileName.tar.…

Centos 磁盘管理及配额管理

实验内容:一.添加两块硬盘,使用LVM做成VG01组,在该VG中新建两个LV。二.将这两个LV格式化为ext4/xfs,开机自动挂载到系统mnt1,mnt2目录下。三.lv02开启磁盘配额功能,用来进行用户与组分配额的实验。四.在系统里添加用户…

OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构

博主最近失业在家,找工作之余,看了一些关于洋葱(整洁)架构的资料和项目,有感而发,自己动手写了个洋葱架构解决方案,起名叫OnionArch。基于最新的.Net 7.0 RC1, 数据库采用PostgreSQL, 目前实现了…

spark写出分布式的训练算法_利用 Spark 和 scikit-learn 将你的模型训练加快 100 倍...

在 Ibotta,我们训练了许多机器学习模型。这些模型为我们的推荐系统、搜索引擎、定价优化引擎、数据质量等提供动力。它们在与我们的移动应用程序交互时为数百万用户做出预测。当我们使用 Spark 进行数据处理时,我们首选的机器学习框架是 scikit-learn。随…

理解LinkedHashMap

1. LinkedHashMap概述:LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现…

MySQL - 锁

一、什么是锁 锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。 二、MySQL 不同存储引擎支持的锁机制 存储引擎支持的锁类型Myisam表锁Innodb行锁、表锁Memory表锁BDB页锁、表锁表锁:直接锁住的是一个表,开销小&…

数据库时区那些事儿 - MySQL的时区处理

原文地址 当JVM时区和数据库时区不一致的时候,会发生什么?这个问题也许你从来没有注意过,但是当把Java程序容器化的时候,问题就浮现出来了,因为目前几乎所有的Docker Image的时区都是UTC。本文探究了MySQL及其JDBC驱动…

java_函数的重载

函数的重载(Overload)概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。函数功能一样,仅仅是参与运算的未知内同不同时,可以定义多函数,却使…

全新升级的AOP框架Dora.Interception[2]: 基于约定的拦截器定义方式

Dora.Interception(github地址,觉得不错不妨给一颗星)有别于其他AOP框架的最大的一个特点就是采用针对“约定”的拦截器定义方式。如果我们为拦截器定义了一个接口或者基类,那么拦截方法将失去任意注册依赖服务的灵活性。除此之外…

redis watch使用场景_redis不得不会的事务玩法

我们都知道redis追求的是简单,快速,高效,在这种情况下也就拒绝了支持window平台,学sqlserver的时候,我们知道事务还算是个比较复杂的东西,所以这吊毛要是照搬到redis中去,理所当然redis就不是那…

加快Android Studio的编译速度

从Eclipse切换到Android Studio后,感觉Android Studio的build速度比Eclipse慢很多,以下几个方法可以提高Android Studio的编译速度使用Gradle 2.4Gradle 2.4对执行性能有很大的优化,但Android Studio现在默认使用的是Gradle 2.2,所以我们需要…

开发中 MySQL 规范

一、建表规范 1、数据库名、表名、字段名必须使用小写字母或数字,并且禁止以数字开头 示例:goods_category、agent_operate_201812_log 2、数据库名、表名、字段名要做到见名识意 示例:goods_category,不能 gc 3、配置表建议以 …

PaddleOCR在 Linux下的webAPI部署方案

很多小伙伴在使用OCR时都希望能采用API的方式调用,这样就可以跨端跨平台了。本文将介绍一种基于python的PaddleOCR识别WebAPI部署方案。喜欢的可以关注公众号,获取更多内容。一、 Linux环境下部署1.环境要求操作系统:CenterOS7;主…

影响程序员生涯的三个错误观念,你千万不要犯!

程序员在社会上,到底是怎样一个生活群体?是否能找到自己方向?其实,路一直都在那里,只是你看不到而已! 当初的你,可能一直被一些技术牵着鼻子走,并不是自己在做着自己想做的&#xff…

心电图计算心率公式_心电图到底能反应啥问题,看过之后你也能当“医生”

只要是经历过健康体检的健康人,或者做过手术的患者,基本都做过心电图检查。都说久病成医,所以有些人对血、尿常规等各项检查的结果都门清儿得很,最起码看一眼也能说出个大概齐。偏偏心电图这种常做的检查,不但老病号如…

获取正在运行的服务

手机上安装的App,在后台运行着很多不同功能的服务,最常见的例如消息推送相关的服务。如何查看这些服务?如何判断某个服务是否正在运行?如何停止某一个服务呢?请看下面的方法: package com.example.servicel…

openstack的vnc启动ssl

1、制作ssl证书# cd /etc/pki/tls/certs [rootwww certs]# make vnc.key Enter pass phrase:# 输入密码 Verifying - Enter pass phrase:#确认# 从private key 中删除密码# openssl rsa -in vnc.key -out vnc.key # make vnc.csr Country Name (2 letter code) [XX]:CN# 国家 S…

开发composer包

一、初始化&#xff08;生成composer.json文件&#xff09; composer init#输入你要创建的composer包项目命名空间 Package name (<vendor>/<name>) [root/tiny-laravel]: #haveyb/tiny-laravel #输入composer包的描述 Description []:#this is a tiny laravel h…

Linux本地yum源配置以及使用yum源安装gcc编译环境

本文档是图文安装本地yum源的教程&#xff0c;以安装gcc编译环境为例。 适用范围&#xff1a;所有的cetos,红帽,fedroa版本 适用人群&#xff1a;有一点linux基础的小白 范例系统版本&#xff1a;CentOS Linux release 7.3.1611 (Core) 范例环境&#xff1a;vmware 虚拟机 安装…

word如何设置上标形式_如何在word中设置特殊页码

获取更多业界资讯和深度好文● 点击蓝字关注我们 ●在日常工作中&#xff0c;我们编辑的word文档经常需要设置页码&#xff0c;但有时文档的第一页是封面&#xff0c;第二页才是正文&#xff0c;或者第二页是目录&#xff0c;第三页才是正文&#xff0c;如下图所示&#xff0c;…