美文网首页
存储程序 - 自定义变量

存储程序 - 自定义变量

作者: wpf_register | 来源:发表于2019-09-29 09:37 被阅读0次

    原文链接-定义变量
    原文链接-存储函数
    原文链接-存储过程
    原文链接-游标简介
    原文链接-触发器和事件简介

    MySQL 中的存储程序本质上封装了一些可执行的语句,然后给用户提供了一种简单的调用方式 来执行这些语句。

    根据调用方式的不同,存储程序可以分为存储例程,触发器和事件:
    • 存储程序本质上是一些可执行的MySQL语句,根据调用情况不同分为3种类型,分别是存储例程、触发器和事件。
    • 存储例程需要我们手动去掉用,具体分为存储函数和存储过程。
    • 触发器是在执行某条语句之前或者之后自动去调用另外一些语句。
    • 事件是定时执行的。

    自定义变量简介

    MySQL 要求变量名称前必须有 @,变量可以是MySQL 支持的任意类型。

    //定义一个名叫a 的变量,并且把整数1赋值给这个变量。
    SET @a = 1;
    //查看变量时也要用@符
    SELECT @a; //1
    

    除了赋值常量,也可以将变量赋值给另一个变量

    SET @a = 1;
    SET @b = @a;
    SELECT @b; //1
    

    同一个变量也可以存储不同类型的值

    set @a = 1;
    SET @a = "fuck";
    SELECT @a; //fuck
    

    还可以将查询结果赋值给变量(查询结果只有一个值)

    SET @a = (SELECT COUNT(*) FROM employee );
    SELECT @a; //25
    
    或者
    SELECT COUNT(*) FROM employee  INTO @b
    SELECT @b;//25
    //如果查询结果是一条记录多个值同时赋给多个变量多用INTO
    SELECT p1,p2 FROM employee  INTO @a, @b;
    

    复合语句

    在MySQL客户端交互界面,完成键盘输入并按下回车时,MySQL 会检测输入内容是否包含“;”“\g”或“\G”这三个符号之一。如果有的话,会把输入内容发送到服务器。

    其实我们可以用 delimiter命令来自定义MySQL 检测输入结束的符号。

    delimiter $
    SELECT * FROM t1 LIMIT 1;
    SELECT * FROM t2 LIMIT 1;
    SELECT * FROM t3 LIMIT 1;
    $
    

    delimiter $命令意味着修改MySQL 客户端检测输入结束的符号为$,分号不再做结结束符。敲下 $ f

    相关文章

      网友评论

          本文标题:存储程序 - 自定义变量

          本文链接:https://www.haomeiwen.com/subject/lasbyctx.html