【MySQL】MySQL视图

文章目录

  • 一、视图的基本使用
    • 1.创建视图
    • 2.修改了视图,对基表数据有影响
    • 3.修改了基表,对视图有影响
    • 4.删除视图
  • 二、视图规则和限制

一、视图的基本使用

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图的数据变化会影响到基表,基表的数据变化也会影响到视图。

1.创建视图

语法:

create view 视图名 as select语句;

案例:

mysql> create view myview as select ename,dname from emp,dept where emp.deptno=dept.deptno;
Query OK, 0 rows affected (0.01 sec)

我们创建一个视图,其实就是在数据库中创建了一个表

在这里插入图片描述

mysql> select * from myview order by dname;
+--------+------------+
| ename  | dname      |
+--------+------------+
| CLARK  | ACCOUNTING |
| MILLER | ACCOUNTING |
| KING   | ACCOUNTING |
| JONES  | RESEARCH   |
| SMITH  | RESEARCH   |
| ADAMS  | RESEARCH   |
| SCOTT  | RESEARCH   |
| FORD   | RESEARCH   |
| TURNER | SALES      |
| MARTIN | SALES      |
| ALLEN  | SALES      |
| JAMES  | SALES      |
| BLAKE  | SALES      |
| WARD   | SALES      |
+--------+------------+
14 rows in set (0.00 sec)

在这里插入图片描述

2.修改了视图,对基表数据有影响

在视图中将ename为’CLARK’的ename改为TEST,然后进行查询

select emp.ename,dept.dname,dept.deptno from emp,dept where emp.deptno=dept.deptno order by dname;

// 将员工为CLACK的ename改为TEST 
update myview set ename='TEST' where ename= 'CLARK';

// 查询ename为clack的员工
select * from emp where ename='CLARK';
// 查询ename为TEST的员工
select * from emp where ename='TEST';

在这里插入图片描述

3.修改了基表,对视图有影响

将ename为JAMES的员工的部门号改为10

select emp.ename,dept.dname,dept.deptno from emp,dept where emp.deptno=dept.deptno order by dname;
// 修改基表
update emp set deptno=10 where ename='JAMES';

// 视图中的数据也发生了变化
mysql> select * from myview where ename='JAMES';

在这里插入图片描述

4.删除视图

drop view 视图名;

删除视图之后,对应创建的表也删除了

在这里插入图片描述

二、视图规则和限制

与表一样,必须唯一命名(不能出现同名视图或表名)

创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响

视图不能添加索引,也不能有关联的触发器或者默认值

视图可以提高安全性,必须具有足够的访问权限

order by 可以用在视图中,但是如果从该视图检索数据 select 中也含有 order by ,那么该视图中的 order by 将被覆盖

视图可以和表一起使用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub - Jarbas

希望和各位大佬一起学习,如果文章内容有错请多多指正,谢谢! 个人博客链接:CH4SER的个人BLOG – Welcome To Ch4sers Blog Jarbas 靶机下载地址:https://www.vulnhub.com/entry/jarbas-1,232/ 0x01 信息收集 Nmap…

机器学习/深度学习绘图模板(PPT)

机器学习/深度学习绘图模板(PPT) 34页PPT,包含40图片模板 部分标注了论文出处 点击:我的B站工房 购买,粉丝专享价4.9元,线上交付,支付后自动发货。

Android Studio实现内容丰富的安卓民宿酒店预订平台

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看民宿 3.民宿预订 4.民宿预订支付, 5.支付订单 6.评论管…

MySQL的基本概念

一.MySQL概念: 你可以把MySQL想象成一个大杂货店,里面有很多货架,每个货架上摆放着不同种类的商品,MySQLMySQ就像是这个杂货店的后台库存管理系统。 1.表格(货架):每个货架上摆放商品&#xff0…

Linux入门级别命令(下载远程连接工具)

$pwd(当前所在位置,显示打印当前工作目录)$mkdir 创建目录$cd dir 换个位置(进入某一个目录)$cd 什么都不加回到最开始的目录$ls当前目录位置下的文件信息(列出当前所在位置下有哪些东西)$mv移动…

Visual Studio 2013 - 调试模式下根据内存地址查看内存

Visual Studio 2013 - 调试模式下根据内存地址查看内存 1. 查看内存References 1. 查看内存 调试 -> 窗口 -> 内存 -> 内存1-4 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

全栈的自我修养 ———— 让uniapp开发更加舒服!!(与别的博主思路不一样,小编这里只讲实用的,直提重点!)

小编是web的,然后现在开始接手微信小程序,有很多不习惯的的地方,经过一段时间的使用,部分得到了妥善的解决方法 一、用vscode开发小程序二、组件库的选择三、注意 一、用vscode开发小程序 发现用Hbuilder开发小程序有很多不习惯的…

企业专业化管理金字塔:技能进阶与案例分析

在纷繁复杂的企业管理领域中,一套行之有效的管理技能体系对于企业的稳健发展至关重要。本文将深入探讨企业专业化管理金字塔的五个层次:基本的管理技能、业务操作管理技能、组织管理技能、组织开发技能以及管理转变技能,并结合实际案例&#…

默写单词cpp(初学者版本)

笔摔坏了直接使用版:yum:仔细学习版:yum:1.直接使用版:yum:(文件使用规范)(1)文件(2)使用规范 2.仔细学习版。将会讲各个函数的功能和细节。今天太晚了,明天再写。 笔摔坏了 在一个阳光明媚的早晨,我愉快的奋笔疾书,抄…

Gradle v8.5 笔记 - 从入门到进阶(基于 Kotlin DSL)

目录 一、前置说明 二、Gradle 启动! 2.1、安装 2.2、初始化项目 2.3、gradle 项目目录介绍 2.4、Gradle 项目下载慢?(万能解决办法) 2.5、Gradle 常用命令 2.6、项目构建流程 2.7、设置文件(settings.gradle.…

docker入门(三)—— 安装docker

docker 安装 环境要求 本次使用的是云服务器,版本是 centos,要求版本在3.10以上 [rootiZbp15293q8kgzhur7n6kvZ /]# uname -r 3.10.0-1160.108.1.el7.x86_64 [rootiZbp15293q8kgzhur7n6kvZ /]# cat /etc/os-release NAME"CentOS Linux" VE…

数据容器-list-Python

师从黑马程序员 列表的定义语法 注:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套 my_list["itheima","chengxuyuan","python"] print(my_list) print(type(my_list))#元素类型不受限 my_list[&…

架构扩展性

架构扩展性:应用扩展 数据扩展 组织扩展 流程扩展 核心方法论–扩展立方体: x轴:无脑克隆 y轴:功能分割z轴:客户分割扩展立方体在应用扩展的应用: x轴:横向克隆 对于无状态的应用,多…

vue3封装对话框el-dialog组件

实现逻辑: 1、引入对话框组件; 2、组件使用; 3、点新增和编辑的时候,通过ref调用对话框暴漏出来的方法,并传值; 4、关闭对话框时,封装方法,重置对话框的表单和重置校验; …

代码随想录算法训练营第二十八天 | 93. 复原 IP 地址、78. 子集、90. 子集 II

代码随想录算法训练营第二十八天 | 93. 复原 IP 地址、78. 子集、90. 子集 II 93. 复原 IP 地址题目解法 78. 子集题目解法 90. 子集 II题目解法 感悟 93. 复原 IP 地址 题目 解法 暴力破解,自己初始想法加上看完题解中思想的修补 class Solution { private:vect…

Swift中 any some的作用

前言 在学习Swift ui看到一个函数返回了some view。view我可以理解那some是什么? //ContentView.swift struct ContentView_Previews: PreviewProvider{static var previews: some View{ContentView()} }如果你仔细看一些官方文档甚至还有any关键字,也…

容器数据卷

目录 一、容器数据卷概念 二、使用数据卷 2.1直接使用命令来挂载 三、实战测试 四、具名挂载和匿名挂载 4.1匿名挂载举例: 4.2具名挂载举例: 五、数据卷容器 一、容器数据卷概念 数据?如果数据都在容器中,那么容器删除&am…

使用Anthenticator验证github

下载 各应用商城都有。 准备扫描 启动应用,点击加号,选择其他账户,进入扫描状态。 打开github的二维码 https://github.com/settings/security 下滚: 如图 扫描,添加,完成

SSH服务

目录 一. 熟悉SSH服务 1.1 何为SSH协议 1.2 SSH服务优点 1.3 常见的SSH协议 1.4 SSH服务的功能 1.5 为何使用SSH服务 1.6 SSH服务的工作原理 1.6.1 公钥传输原理 1.6.2 ssh加密通讯原理 1.7 SSH服务的最佳应用场景 1.8 SSH服务远程登录的方式 1.8.1 方法一&#…

逻辑数据平台的 NoETL 之道(内含QA)

作者简介: 余俊,Aloudata 合伙人 & 技术副总裁。拥有 18 年互联网技术和大数据平台相关架构经验。作为主架构师及核心研发主导并完成了 Alibaba B2B 首个海量分布式 KV 存储系统,作为网站架构师负责 Aliexpress 全球买全球卖交易系统的第…