• Mysql基础(二十三):视图/存储过程


    一 ##视图

    含义:理解成一张虚拟的表

    视图和表的区别:

    使用方式 占用物理空间

    视图 完全相同 不占用,仅仅保存的是sql逻辑

    表 完全相同 占用

    视图的好处:


    1、sql语句提高重用性,效率高
    2、和表实现了分离,提高了安全性

    ###视图的创建
    语法:
    CREATE VIEW 视图名
    AS
    查询语句;
    ###视图的增删改查
    1、查看视图的数据 ★

    SELECT * FROM my_v4;
    SELECT * FROM my_v1 WHERE last_name='Partners';

    2、插入视图的数据
    INSERT INTO my_v4(last_name,department_id) VALUES('虚竹',90);

    3、修改视图的数据

    UPDATE my_v4 SET last_name ='梦姑' WHERE last_name='虚竹';


    4、删除视图的数据
    DELETE FROM my_v4;
    ###某些视图不能更新
    包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
    常量视图
    Select中包含子查询
    join
    from一个不能更新的视图
    where子句的子查询引用了from子句中的表
    ###视图逻辑的更新
    #方式一:
    CREATE OR REPLACE VIEW test_v7
    AS
    SELECT last_name FROM employees
    WHERE employee_id>100;

    #方式二:
    ALTER VIEW test_v7
    AS
    SELECT employee_id FROM employees;

    SELECT * FROM test_v7;
    ###视图的删除
    DROP VIEW test_v1,test_v2,test_v3;
    ###视图结构的查看
    DESC test_v7;
    SHOW CREATE VIEW test_v7;

    二 ##存储过程

    含义:一组经过预先编译的sql语句的集合
    好处:

    1、提高了sql语句的重用性,减少了开发程序员的压力
    2、提高了效率
    3、减少了传输次数

    分类:

    1、无返回无参
    2、仅仅带in类型,无返回有参
    3、仅仅带out类型,有返回无参
    4、既带in又带out,有返回有参
    5、带inout,有返回有参
    注意:in、out、inout都可以在一个存储过程中带多个
    ###创建存储过程
    语法:

    create procedure 存储过程名(in|out|inout 参数名 参数类型,...)
    begin
    存储过程体

    end

    类似于方法:

    修饰符 返回类型 方法名(参数类型 参数名,...){

    方法体;
    }

    注意

    1、需要设置新的结束标记
    delimiter 新的结束标记
    示例:
    delimiter $

    CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名 参数类型,...)
    BEGIN
    sql语句1;
    sql语句2;

    END $

    2、存储过程体中可以有多条sql语句,如果仅仅一条sql语句,则可以省略begin end

    3、参数前面的符号的意思
    in:该参数只能作为输入 (该参数不能做返回值)
    out:该参数只能作为输出(该参数只能做返回值)
    inout:既能做输入又能做输出


    #调用存储过程
    call 存储过程名(实参列表)

  • 相关阅读:
    CentOS 8上安装MySQL 8.0
    centos8安装redis
    virtualbox虚拟机ubuntu18.04网络配置--虚拟机和宿主机互通且联网
    Controller同时接收MultipartFile数据和json数据
    日期转换
    Python的Mysql操作
    Go语言学习笔记十三: Map集合
    Go语言学习笔记十二: 范围(Range)
    Go语言学习笔记十一: 切片(slice)
    Go语言学习笔记十: 结构体
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14877755.html
Copyright © 2020-2023  润新知