当前位置: 首页 > news >正文

【MySQL】视图详解

视图详解

    • 一、视图的概念
    • 二、视图的常用操作
      • 2.1创建视图
      • 2.2查询视图
      • 2.3修改视图
      • 2.4 删除视图
      • 2.5向视图中插入数据
    • 三、视图的检查选项
      • 3.1 cascaded(级联 )
      • 3.2 local(本地)
    • 四、视图的作用

一、视图的概念

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的

通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上

二、视图的常用操作

2.1创建视图

语法:

CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH [
CASCADED | LOCAL ] CHECK OPTION ]

使用示例:

 create view account_view as select * from account where id < 10;

结果:

在这里插入图片描述

2.2查询视图

查看创建视图语句:

SHOW CREATE VIEW 视图名称;

查看视图数据:

SELECT * FROM 视图名称 ...... ;

使用示例:

show create view account_view;

结果:

在这里插入图片描述

select * from account_view;

结果:

在这里插入图片描述

2.3修改视图

语法:

方法一:如果存在就替换掉

CREATE OR REPLACE VIEW 视图名称[(列名列表)] AS SELECT语句 [ WITH
[ CASCADED | LOCAL ] CHECK OPTION ]

方法二:

update 视图名称 set 字段修改语句 条件

使用示例:

 update account_view set name = '小美' where id = 3;

结果:

在这里插入图片描述
注意:对视图进行操作的时候,也会影响关联的表

2.4 删除视图

语法:

DROP VIEW [IF EXISTS] 视图名称 [,视图名称] ...

结果:

在这里插入图片描述

注意:使用update语句,修改视图的时候,会修改我们原表的数据

2.5向视图中插入数据

如果视图中没有的字段,插入时使用默认值

先查看account表结构:

在这里插入图片描述

可以发现都不能为空,但blance有一个默认值,此时拿前两个字段创建视图:

create view view_accounta as select id, name from account;

在这里插入图片描述

向视图中插入元素:

insert into view_accounta values(4,'小明');

在这里插入图片描述

当表中的字段不能为空时,也没有设置使用默认值,那么将插入失败

查看表结构,并创建视图:

create view view_stu as select sn, name, chinese from stu;

在这里插入图片描述

查看视图,并插入元素:

在这里插入图片描述

可以发现,这时会插入失败。

总结概括:

  • 视图关联表中的全部字段,那么可以插入
  • 视图关联表中的部分字段,且另一部分字段可以空 或 不能为空但设置了默认值,则可以插入
  • 视图关联表中的部分字段,另一部分字段不能为空且未设置默认值,那么将不能插入

三、视图的检查选项

当使用WITH CHECK OPTION子句创建视图时,MySQL会通过视图检查正在更改的每个行,例如 插入,更新,删除,以使其符合视图的定义。 MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围,mysql提供了两个选项: CASCADED 和 LOCAL ,默认值为 CASCADED

3.1 cascaded(级联 )

比如,v2视图是基于v1视图的,如果在v2视图创建的时候指定了检查选项为 cascaded,但是v1视图创建时未指定检查选项。 则在执行检查时,不仅会检查v2,还会级联检查v2的关联视图v1

在这里插入图片描述

3.2 local(本地)

比如,v2视图是基于v1视图的,如果在v2视图创建的时候指定了检查选项为 local ,但是v1视图创建时未指定检查选项。 则在执行检查时,知会检查v2,不会检查v2的关联视图v1

在这里插入图片描述

四、视图的作用

  1. 简单:视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件
  2. 安全:数据库可以授权,但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们所能见到的数据
  3. 数据独立:视图可帮助用户屏蔽真实表结构变化带来的影响

相关文章:

【MySQL】视图详解

视图详解 一、视图的概念二、视图的常用操作2.1创建视图2.2查询视图2.3修改视图2.4 删除视图2.5向视图中插入数据 三、视图的检查选项3.1 cascaded&#xff08;级联 &#xff09;3.2 local(本地) 四、视图的作用 一、视图的概念 视图&#xff08;View&#xff09;是一种虚拟存…...

第一节:ORIN NX介绍与基于sdkmanager的镜像烧录(包含ubuntu文件系统/CUDA/OpenCV/cudnn/TensorRT)

ORIN NX技术参数 Orin NX版本对比 如上图所示,ORIN NX官方发布的版本有两个版本一个版本是70TOPS算力,DDR为8GB的版本低配版本,一个是100TOPS算法,DDR为16GB的高配版本。 Orin NX的外设框图 两个版本除了GPU和DDR的差距外,外设基本上没有区别,丰富的外设接口,后续开发…...

2024-12-04OpenCV视频处理基础

OpenCV视频处理基础 OpenCV的视频教学&#xff1a;https://www.bilibili.com/video/BV14P411D7MH 1-OpenCV视频捕获 在 OpenCV 中&#xff0c;cv2.VideoCapture() 是一个用于捕获视频流的类。它可以用来从摄像头捕获实时视频&#xff0c;或者从视频文件中读取帧。以下是如何使用…...

D89【python 接口自动化学习】- pytest基础用法

day89 pytest的setup&#xff0c;setdown详解 学习日期&#xff1a;20241205 学习目标&#xff1a;pytest基础用法 -- pytest的setup&#xff0c;setdown详解 学习笔记&#xff1a; setup、teardown详解 模块级 setup_module/teardown_module 开始于模块始末&#xff0c;生…...

七、docker registry

七、docker registry 7.1 了解Docker Registry 7.1.1 介绍 registry 用于保存docker 镜像&#xff0c;包括镜像的层次结构和元数据。启动容器时&#xff0c;docker daemon会试图从本地获取相关的镜像&#xff1b;本地镜像不存在时&#xff0c;其将从registry中下载该镜像并保…...

FlightGear+MATLAB+飞行手柄实现实时飞控视景系统

文章目录 一、软件配置二、FlightGearMATLAB联合仿真第一步 复制文件第二步 新建文件夹第三步 打开demo第四步 demo说明第五步 打开Simulink第六步 连接FlightGear第七步 设置FlightGear第八步 生成FlightGear连接文件FlightGear的设置Network的设置File的设置生成.bat文件 第九…...

深入 Java 基础 XML:高级特性与最佳实践

在上一篇文章中&#xff0c;我们对 Java 基础 XML 有了一个初步的认识&#xff0c;了解了 XML 的基本结构以及在 Java 中常见的解析方式。今天&#xff0c;我们将进一步深入探讨 Java 与 XML 的结合&#xff0c;包括一些高级特性和最佳实践。 一、XML 命名空间 在复杂的 XML …...

【论文阅读】Fifty Years of the ISCA: A Data-Driven Retrospective

学习体会&#xff1a; ISCA会议近五十年文章分析, 了解论文热点方向, 处理器依旧是热点! AI和并行是大趋势, 做XPU相关目前来说还是热点~ 摘录自原文 摘录: 数据来源和分析方法&#xff1a; 作者收集了 ACM 数字图书馆中所有 ISCA 论文&#xff0c;并使用 DBLP、Google Schol…...

TVbox源贡献指南

欢迎各路大佬踊跃提PR&#xff0c;分享爬虫代码。 源码仓库地址 https://github.com/lushunming/AndroidCatVodSpider 快速开始 本工程是一个完整的AndroidStudio工程&#xff0c;请你用AS打开编辑。 工程调试完毕后要需要导出生成jar文件配合软件使用&#xff0c;执行根目…...

qt数据类型定义(包含签名)

先推荐一个处理markdown表格的网站&#xff0c;超级好用&#xff1a;markdown表格处理&#xff0c;我就是用这个表格处理的excel中的数据上传。 下表整理了数据类型的值范围、签名、qt如何定义等内容。 类型范围/子类型dbus签名qt支持的签名qt类型定义方式转换为variantint8(…...

docker逃逸总结

一、 检查是否在docker容器中 通过以下两个地方来判断 # 是否存在此文件 ls -al /.dockerenv# 在其中是否包含docker字符串 cat /proc/1/cgroup除了上面两种外还有其他方式判断&#xff0c;如检测mount、fdisk -l查看硬盘 、判断PID 1的进程名等也可用来辅助判断。 容器逃逸…...

MySql:表的操作

目录 创建表 查看创建表时的信息 查看表的结构描述 删除一张表 修改表 创建表 CREATE TABLE [IF NOT EXISTS] table_name (field1 datatype,field2 datatype,field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; field 表示列名 datatype 表示…...

LVGL9 开关控件 (lv_switch) 使用指南

文章目录 前言主体1. **控件概述**2. **控件的样式和组成部分**3. **使用控件**改变开关状态 4. **事件处理**5. **按键支持**6. **示例代码** 总结 前言 lv_switch 是 LittlevGL 提供的一个开关控件&#xff0c;外观类似一个小型滑块&#xff0c;常用于实现开关功能&#xff…...

fastadmin 登录退出忽略中间提示页面

背景 研究了一圈CMS&#xff0c;从fastadmin、easyadmin、buildadmin、onethink等等几乎所有的框架CMS&#xff0c;当然也包括若依。 最后&#xff0c;根据当前项目综合考虑&#xff0c;还是选择的fastadmin&#xff1a; 预算经济实惠、维护成本低&#xff1b;工期端&#x…...

游戏引擎学习第36天

仓库 :https://gitee.com/mrxiao_com/2d_game 回顾之前的内容 在这个程序中&#xff0c;目标是通过手动编写代码来从头开始制作一个完整的游戏。整个过程不使用任何库或现成的游戏引擎&#xff0c;这样做的目的是为了能够全面了解游戏执行的每一个细节。开发过程中&#xff0…...

准确率99.9%的离线IP地址定位库 ip2region - python 示例

简介&#xff1a;ip2region是一个离线IP地址定位库和IP定位数据管理框架&#xff0c;10微秒级别的查询效率&#xff0c;提供了众多主流编程语言的 xdb 数据生成和查询客户端实现。号称准确率99.9%的开源离线IP地址定位库。 历史攻略&#xff1a; Python&#xff1a;暴力破解密…...

wordpress网站使用Linux宝塔面板和SQL命令行导入导出超过50M限制的数据库

wordpress网站使用Linux宝塔面板添加mysql数据库&#xff0c;使用phpMyAdmin工具导入sql数据库文件&#xff0c;会有最大限制50M。即使把sql数据库文件压缩为gzip或zip压缩包&#xff0c;压缩包也超过50M&#xff0c;该怎么办&#xff1f;怎样导入超过50M数据库呢&#xff1f; …...

开发基础(3):开发应用沉浸式效果 组件安全区方案

什么是沉浸式效果 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条,其中状态栏和导航条,通常在沉浸式布局下称为避让区;避让区之外的区域称为安全区。 开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感…...

Python中的数据可视化实战

一、前言 数据可视化是数据分析和报告中不可或缺的环节,它能够帮助我们直观地理解数据规律。Python提供了多个强大的可视化库,如Matplotlib、Seaborn、Plotly等。本文将通过实例演示这些工具的基本用法和高级技巧。 二、Matplotlib基础 1. Matplotlib的基本用法 import ma…...

计算机毕设-基于springboot的甜品店管理系统的设计与实现(附源码+lw+ppt+开题报告)

博主介绍&#xff1a;✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围&#xff1a;Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…...

5个简单步骤彻底解决MoviePilot连接TheMovieDb异常问题

5个简单步骤彻底解决MoviePilot连接TheMovieDb异常问题 【免费下载链接】MoviePilot NAS媒体库自动化管理工具 项目地址: https://gitcode.com/gh_mirrors/mo/MoviePilot MoviePilot作为一款优秀的NAS媒体库自动化管理工具&#xff0c;为你提供了便捷的影视资源管理体验…...

水凝膜、钢化膜、护景贴大对决:一张表看懂该买谁

水凝膜、钢化膜、护景贴大对决&#xff1a;一张表看懂该买谁手机屏幕保护膜主要有三种&#xff1a;水凝膜、普通钢化膜和护景贴&#xff08;悟赫德为代表&#xff09;。很多人不知道它们到底有什么区别&#xff0c;我们从六个维度给你讲清楚。材料结构。水凝膜是单层软塑料&…...

基于LLM的MUD游戏AI智能体框架:从感知-思考-行动循环到工程实践

1. 项目概述&#xff1a;一个面向MUD游戏的智能体框架最近在折腾AI智能体&#xff08;Agent&#xff09;相关的项目&#xff0c;发现了一个挺有意思的仓库&#xff1a;zn0nz/mud_agent。乍一看名字&#xff0c;可能很多朋友会有点懵&#xff0c;MUD是什么&#xff1f;Agent又怎…...

第一次喝精酿怎么品

精酿酒吧新手指南&#xff1a;四步解锁品酒技巧&#xff0c;轻松告别困惑第一次走进精酿酒吧&#xff0c;新手常因陌生酒名和风味描述困惑。其实品精酿很简单&#xff0c;掌握几个步骤即可入门——这种认真品酒的态度&#xff0c;早在中世纪就有&#xff0c;欧洲修士们酿造后会…...

广东公考机构全景测评:粉笔凭极致性价比与本土教研实力领跑

随着2026年广东省考备考热潮的持续升温&#xff0c;选择一家靠谱的培训机构成为广大考生关注的焦点。在广东这片公考竞争激烈的热土上&#xff0c;除了粉笔、华图和中公三大巨头&#xff0c;以笨鸟教育、及第林教育为代表的本土精品机构也凭借极强的地域针对性异军突起。本次测…...

手把手教你用OpenMP和CUDA加速ICP配准:从单核到GPU的完整性能对比

手把手教你用OpenMP和CUDA加速ICP配准&#xff1a;从单核到GPU的完整性能对比 ICP&#xff08;Iterative Closest Point&#xff09;算法是点云配准领域的经典方法&#xff0c;但在处理大规模点云时常常面临性能瓶颈。本文将深入探讨如何利用OpenMP和CUDA技术对ICP算法进行多线…...

纯文本CRM:用Markdown与Git构建极简客户关系管理系统

1. 项目概述与核心价值最近在开源社区里&#xff0c;我注意到一个名为anthroos/plaintext-crm的项目&#xff0c;它提出了一种非常规的客户关系管理&#xff08;CRM&#xff09;思路。简单来说&#xff0c;这个项目主张用纯文本文件&#xff08;如 Markdown、TXT&#xff09;来…...

基于Terraform与Azure的Dify AI平台云原生自动化部署实践

1. 项目概述&#xff1a;一键部署AI应用平台的云原生方案最近在折腾AI应用开发平台&#xff0c;发现很多团队在从本地原型验证转向云端生产环境时&#xff0c;总会遇到一堆“部署地狱”的问题。环境配置不一致、资源管理混乱、成本不可控&#xff0c;这些问题在需要整合多个AI模…...

Go语言建造者模式:复杂对象构建

Go语言建造者模式&#xff1a;复杂对象构建 1. 建造者实现 type User struct {Name stringAge intEmail stringPhone stringAddress string }type UserBuilder struct {user *User }func NewUserBuilder() *UserBuilder {return &UserBuilder{user: &User{}…...

多模态RAG实战:基于CLIP与向量数据库构建图文检索增强生成系统

1. 项目概述&#xff1a;从“Mureo”看多模态检索增强生成最近在折腾一个挺有意思的开源项目&#xff0c;叫“Mureo”。这个名字乍一看有点抽象&#xff0c;但如果你拆开来看&#xff0c;它其实融合了“Multimodal”&#xff08;多模态&#xff09;和“Neural”&#xff08;神经…...