• <MySQL>入门五 视图


    -- 视图
    /*
        含义:虚拟表,和普通的表一样使用
        mysql5.1版本的新特性,是通过表动态生成的数据,只保存了sql的逻辑,不保存查询的结果
        
        应用场景:
            - 多个地方用到同样的查询结果
            - 该查询结果使用的sql语句较复杂
            
        好处:
        重用sql语句
        简化了复杂的sql操作,不必知道它的查询细节
        保护数据,提高安全性
    */
    
    -- ---------------视图的创建和使用-----------------------------------
    
    -- 创建一个查询员工名和部门名的试图
    CREATE VIEW view_empName_depName AS
    SELECT last_name,department_name 
    FROM employees e
    JOIN departments d
    ON e.`department_id`=d.`department_id`;
    
    -- 需求:查找员工名包含e 的 员工名和部门名
    SELECT * FROM view_empName_depName WHERE last_name LIKE '%e%';
    
    -- ---------------视图的修改-----------------------------------------
    -- 方式一
    /*
        如果存在就修改,如果不存在则创建
        create or replace view 视图名 as 查询语句
    */
    
    -- 方式二
    /*
        alter view 视图名 as 查询语句
    */
    
    -- ---------------视图的删除-----------------------------------------
    /*
        drop view 视图名1,视图名2...
    */
    
    -- ---------------视图的查看-----------------------------------------
    /* 
        desc 视图名
    */
    DESC view_empName_depName;
    
    
    -- ---------------视图的更新-----------------------------------------
    -- 同时也会对原始表进行更新
    CREATE OR REPLACE VIEW myv1 AS SELECT last_name,email FROM employees;
    SELECT * FROM myv1;
    
    -- 1.插入
    INSERT INTO myv1 VALUES('麦克雷','123@qq.com');
    
    -- 2.修改
    UPDATE myv1 SET last_name = '天使' WHERE last_name = '麦克雷';
    
    -- 3.删除
    DELETE FROM myv1 WHERE last_name = '天使';
    
    -- ---------------视图的要求-----------------------------------------
    -- 具备以下特点的视图不允许更新
    -- ①包含关键字:分组函数,distinct,group by,having,union,union all
    -- ②常量试图
    -- ③select中包含子查询
    -- ④join
    -- ⑤from一个不能更新的视图
    -- ⑥where 子句的子查询查询引用了from子句中的表
    
    
    /*
        视图    create view      没有占用空间,只是保存了逻辑   增删改查,一般不增删改
        表      create table     占用空间,保存了数据           增删改查
    */

     

  • 相关阅读:
    [Poi2000]病毒
    [Zjoi2015]诸神眷顾的幻想乡
    P1663 山
    P1837 单人纸牌
    P6584 重拳出击
    CF460C Present
    10.5 学习笔记
    多项式学习笔记(一) FFT
    NOIP 2020 游记
    uva 经典习题选做(dp专项)
  • 原文地址:https://www.cnblogs.com/mapleins/p/10108512.html
Copyright © 2020-2023  润新知