Mysql(9)_视图

2023-11-15

    1   视图是什么?

               首先,视图是虚拟的表,是不存在的。若使用jdbc连接它,是会报错的,它本质上是sql语句

               其次,物理表是真实存在的表,占用内存空间。视图没有实际的物理记录。而表有。

               视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

               如果操作视图中的数据,有的时候基表的数据也会被修改的。如果加了某些特定限制,则不会修改原表的数据,甚至不能修改视图。          

              作用

                       1.1  简化查询,如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可,简化复杂查询

                       1.2  视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及到的列,对基表中的其它列起到安全和保密的作用,可以限制数据访问。 

    2   创建视图

         对于视图emp_list_view_single而言,如果修改这个视图中的记录,那么基表的数据也随着修改

         对于视图emp_list_view而言,是无法修改视图中的数据的。修改时会报错。但是如果修改基表数据,则这张视图的数据也会变化。

         or replace   有同名的就替换掉

        要通过视图更新基本表数据,必须保证视图是可更新视图,即可以在INSET、UPDATE或DELETE等语句当中使用它们。对于可更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系。还有一些特定的其他结构,这类结构会使得视图不可更新。

如果视图包含下述结构中的任何一种,那么它就是不可更新的:

           (1)聚合函数;

           (2)DISTINCT关键字;

            (3)GROUP BY子句;

            (4)ORDER BY子句;

            (5)HAVING子句;

            (6)UNION运算符;

            (7)位于选择列表中的子查询;

            (8)FROM子句中包含多个表;

            (9)SELECT语句中引用了不可更新视图;

           (10)WHERE子句中的子查询,引用FROM子句中的表;

           (11)ALGORITHM 选项指定为TEMPTABLE(使用临时表总会使视图成为不可更新的)。

use test01;
CREATE OR REPLACE VIEW emp_list_view AS
  SELECT e.deptno,e.ename,e.hiredate,e.sal,d.deptname from emp AS  e ,dept AS d
     WHERE e.deptno =d.deptno;
use test01;
CREATE OR REPLACE VIEW emp_list_view_single AS
  SELECT e.deptno,e.ename,e.hiredate,e.sal from emp AS  e ;
     

 3   查看视图 ,其实和查看表的命令一样

         

show create view emp_list_view  \G;
 show table status like 'emp' \G;
 show table status like 'emp_list_view' \G;

 

  

    4   删除视图 

DROP VIEW emp_list_view_single;

 

转载于:https://www.cnblogs.com/sunnybowen/p/9977292.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql(9)_视图 的相关文章

  • redis 学习导航

    一 redis学习流程 二 redis官方网址 官方网址 https redis io 三 redis简介 1 redis是一个基于内存 单线程的key value的非关系型数据库 整个数据加载到内存中进行操作 读速度可以达到 11w s
  • yolov8使用C++推理的流程及注意事项

    1 下载yolov8项目源码GitHub ultralytics ultralytics NEW YOLOv8 in PyTorch gt ONNX gt OpenVINO gt CoreML gt TFLite 2 下载opencvRel

随机推荐

  • 【第4篇】Inception V2

    文章目录 摘要 1 简介 2 减少内部协变量偏移 3 通过小批量统计进行归一化 3 1 使用 BatchNormalized 网络进行训练和推理 3 2 批量归一化卷积网络 3 3 批量标准化可实现更高的学习率 3 4 Batch Norm
  • 华为c语言编程规范_华为自主研发编程语言“仓颉”,“中国话”将走向世界...

    近日 网上曝光华为自研编程语言名字定为 仓颉 char 项目已经进行了很久 预计明年会对外公布一些具体细节 什么是编程语言 编程语言就好比我们生活中 父母用汉语命令孩子 去写作业 这里的汉语就是是编程语言的种类 而 去写作业 这段文字是编程
  • pytorch: 保存和读取参数和模型

    一 保存和读取参数 1 当训练完后 把当前的参数保存下来 import torch torch save net state dict path 保存参数只需用到torch save 其中net为自定义的模型名称 其子参数state dic
  • linux环境下安装Android Studio

    近期将电脑的操作系统换成了Ubuntu 对于不习惯win8 win10的人来说Ubuntu确实是一个不错的选择 主要的软件都ok了 至于QQ什么的 大家能够去找wine版的 或者直接下载一个叫CrossOver的软件进行wine安装 新的操
  • 21 存在重复元素

    题目 题解 方法1 排序 如果有相邻相等的就有重复的 但O n 是nlogn 因为对数组排序呀 class Solution public bool containsDuplicate vector
  • nodejs-post文件上传原理详解

    转自 http cnodejs org topic 4f16442ccae1f4aa270010ad 基础知识 浅谈HTTP中Get与Post的区别 HTTP请求报文格式 简单介绍下 如下图 其中请求报文中的开始行和首部行包含了常见的各种信
  • 服务器里面的文件怎么传送,FTP服务器怎么传送局域网文件

    现如今 网络的使用已经十分普遍 同时也会有各种各样的局域网知识出现 比如 FTP服务器怎么传送局域网文件 学习啦小编在这里为大家详细介绍 使用局域网传送文件的朋友也许都遇过这样的悲事 自己在拷贝移动一个大的文件的时候 在最后几分钟就会完成
  • 企业数字化转型痛点,低代码平台如何解决?

    编者按 数字化能力建设整体尚处于初级阶段 虽然数字技术的发展已经从互联网 大数据时代迈入人工智能时代 但很多企业的数字化转型总体表现并不理想 那么面对数字化转型的痛点 低代码平台是如何解决的呢 来跟小编一起往下看 关键词 可视化开发 API
  • There is no ‘Animation’ attached to the “Player” game object

    There is no Animation attached to the Player game object 在照着龚老师的Unity3D投篮游戏视频教程练习时 遇到这个错误提示 我知道意思 就是player模型导入时 动画没有正确的加
  • Apache logs目录下找不见access.log文件解决办法

    Apache logs目录下找不见access log文件解决办法 原文链接请点击 https www cnblogs com ruoli s p 14561391 html 今天在做测试的时候 忽然发现 咦 我的apache服务器logs
  • 学习java和html必须要知道的英文单词(入门单词,包括C#)

    以前听说学习编程不需要记太多的英语单词 但是我在学习的时候还是碰到许多重要的编程单词 这里给大家稍微整理了一下 非常适合我们这些萌新 一 java入门基础学习单词 第一篇 public p bl k 公开 static st t k 静态
  • java代码审查

    一 概述 代码审查 Code Review 是消灭Bug最重要的方法之一 这些审查在大多数时候都特别奏效 由于代码审查本身所针对的对象 就是俯瞰整个代码在测试过程中的问题和Bug 并且 代码审查对消除一些特别细节的错误大有裨益 尤其是那些能
  • 基于Python/Tkinter的拼图单机小游戏

    这是很早之前写的拼图游戏 基于Py Tk 今天翻出来 然后重新整理 并且发布出来 供大家参考学习 自己看CSDN里有很多了类似的游戏代码 虽然代码逻辑上大同小异 但每个开发者都有自己独特的开发个性和习惯 这并无优劣 而且都可以从代码中都可以
  • Hive 调优总结2

    无需MapReduce 在hive default xml中hive fetch task conversion默认是more 老版本是minimal 该属性改为more后 在全局查找 字段查找 limit查找等都不走mapreduce E
  • 使用ffmpeg将视频文件(Mp4)转换为.ts格式文件,并通过nginx代理在前端访问

    废话不多说 直接上代码 1 编写工具类 Mp4ToTsUtils import java io BufferedReader import java io File import java io IOException import jav
  • 来了,MyBatisPlus的join联表查询!

    来源 juejin cn post 7110405284811522085 使用方法 安装 使用 核心类 MPJLambdaWrapper和MPJQueryWrapper MPJLambdaWrapper用法 MPJQueryWrapper
  • At32f421/gd32f103c6/stmf030

    ADF16ST V5 0遥控器 nf2401 bk2425 2 4g 连接 单片机 spi2 pb port bk3431 蓝牙 连接 单片机 uart3 bk2451 连接单片机 uart1 Q20 A77E BK343 供电控制 R61
  • 分布式系统理论

    说到分布式系统 不得不说集中式系统 传统集中式系统中整个项目所有的东西都在一个应用里面 一个网站就是一个应用 当系统压力较大时 只能横向扩展 增加多个服务器或者多个容器去做负载均衡 避免单点故障而影响到整个系统 集中式最明显的优点就是开发
  • 未授权访问的MongoDB修复方案

    修复方法 1 不要把MongoDB服务器部署在互联网上或者DMZ 开启MongoDB的授权访问 编辑 etc mongo conf 文件 找到 auth true 去掉注释 创建用户管理员 另外再连接MongoDB的时候 public cl
  • Mysql(9)_视图

    1 视图是什么 首先 视图是虚拟的表 是不存在的 若使用jdbc连接它 是会报错的 它本质上是sql语句 其次 物理表是真实存在的表 占用内存空间 视图没有实际的物理记录 而表有 视图 view 是在基本表之上建立的表 它的结构 即所定义的