码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL(10)视图


    文章目录

    • 1.常见的数据库对象
    • 2.视图的理解
    • 3.创建视图
      • 3.1 创建单表视图
      • 3.2 基于视图创建视图
    • 4.查看视图
    • 5.更新视图的数据
      • 5.1 一般情况
      • 5.2不可更新的视图
    • 6.修改删除视图
      • 6.1 修改视图
      • 6.2 删除视图

    1.常见的数据库对象

    在这里插入图片描述

    2.视图的理解

    视图是一种虚拟表 ,本身是不具有数据 的,占用很少的内存空间,它是 SQL 中的一个重要概念。
    视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化,反之亦然。
    视图不会保存数据,数据真正保存在数据表中。当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化;反之亦然。
    在这里插入图片描述

    3.创建视图

    语法:

    CREATE [OR REPLACE] 
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] 
    VIEW 视图名称 [(字段列表)] 
    AS 查询语句 
    [WITH [CASCADED|LOCAL] CHECK OPTION]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    或者

    CREATE VIEW 视图名称 AS 查询语句
    
    • 1

    3.1 创建单表视图

    CREATE VIEW empvu80 
    AS
    SELECT department_id,employee_id, last_name, salary 
    FROM employees 
    WHERE department_id = 80;
    
    SELECT * FROM empvu80;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    3.2 基于视图创建视图

    当我们创建好一张视图之后,还可以在它的基础上继续创建视图。

    CREATE VIEW emp_dept_ysalary 
    AS
    SELECT emp_dept.ename,dname,year_salary 
    FROM emp_dept INNER JOIN emp_year_salary 
    ON emp_dept.ename = emp_year_salary.ename;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    4.查看视图

    语法1:查看数据库的表对象、视图对象

    SHOW TABLES;
    
    • 1

    在这里插入图片描述

    语法2:查看视图的结构

    DESC / DESCRIBE 视图名称;
    
    • 1

    语法3:查看视图的属性信息

    SHOW TABLE STATUS LIKE '视图名称'\G
    
    • 1

    语法4:查看视图的详细定义信息

    SHOW CREATE VIEW 视图名称;
    
    • 1

    5.更新视图的数据

    5.1 一般情况

    MySQL支持使用INSERT、UPDATE和DELETE语句对视图中的数据进行插入、更新和删除操作。当视图中的数据发生变化时,数据表中的数据也会发生变化,反之亦然。
    举例:UPDATE操作

    SELECT * FROM vu_emp1;
    
    
    • 1
    • 2

    在这里插入图片描述

    UPDATE vu_emp1
    SET salary=20000
    WHERE employee_id =101
    
    SELECT * FROM vu_emp1;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    举例:DELETE操作

    SELECT last_name,tel FROM vu_emp1 WHERE last_name= 'King';
    DELETE FROM vu_emp1 WHERE last_name= 'King';
    
    • 1
    • 2

    5.2不可更新的视图

    要使视图可更新,视图中的行和底层基本表中的行之间必须存在 一对一 的关系。另外当视图定义出现如下情况时,视图不支持更新操作:
    在这里插入图片描述

    6.修改删除视图

    6.1 修改视图

    方式1:使用CREATE OR REPLACE VIEW 子句修改视图

    CREATE OR REPLACE VIEW empvu80 
    (id_number, name, sal, department_id) 
    AS
    SELECT employee_id, first_name || ' ' || last_name, salary, department_id 
    FROM employees 
    WHERE department_id = 80;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    方式2:ALTER VIEW

    ALTER VIEW 视图名称 AS查询语句
    
    • 1

    6.2 删除视图

    • 删除视图只是删除视图的定义,并不会删除基表的数据。
    • 删除视图的语法是:
    DROP VIEW IF EXISTS 视图名称;
    
    DROP VIEW IF EXISTS 视图名称1,视图名称2,视图名称3,...;
    
    • 1
    • 2
    • 3

    举例:

    DROP VIEW vu_emp1;
    
    • 1
  • 相关阅读:
    阿里云访问资源:NoSuchKey
    OpenVINO--初步学习笔记
    Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.7 摄像头V4L2驱动开发流程总结
    【深度学习】详解 Node2Vec原理(含代码实现讲解) | NLP中训练词向量的基本原理和常见方法 | 跳字模型(Skip-gram)| MLP的核心机制
    Linux: signal:需要注意的一个问题:SIGRTMIN 32 vs 34
    ISO7816-3标准ATR解析
    如何录制真人出镜?别急,一篇教会你:真人出镜的ppt怎么录制
    Python - 函数|异常|模块|包|类和对象|封装|继承
    自学Python 46 日期和时间函数(一)
    AI与Prompt:解锁软件开发团队的魔法咒语,在复杂任务上生成正确率更高的代码
  • 原文地址:https://blog.csdn.net/m0_62497122/article/details/126693359
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号