• SQL基础-变量 存储过程和函数


    一、变量

    1.系统变量:全局变量、会话变量

    说明:由系统提供,属于服务器层面。如果是全局级别,则需要加 global,如果是会话级别,则需加 session,如果不写,则默认 session。全局变量不能跨重启。会话变量仅仅针对当前变量有效

    ●查看所有的系统变量

    show global | 【session】 variables;

    ●查看满足条件的部分系统变量

    show global | 【session】 variable like '%char%';

    ●查看满足条件的部分系统变量

    select @@global | 【session】 .系统变量名;

    ●为某个系统变量赋值

    set global | 【session】 系统变量名 = 值;
    set @@global |【session】 .系统变量名 = 值;

    2.自定义变量:用户变量、局部变量

    使用步骤:

    声明
    赋值
    使用(查看、比较、运算)

    ●用户变量:可以应用在任何地方,begin end 里面或 begin end 外面。

    声明并初始化
    方式一:

    set @用户变量名 = 值;
    或 set @用户变量名: = 值;
    或 select @用户变量名: = 值;

    方式二:通过 select into

    select 字段 into @变量名
    from 表;

    查看用户变量值

    select @用户变量名;

    ●局部变量:只能应用在 begin end 中第一句话。

    声明

    declare 变量名 类型;
    declare 变量名 类型 default 值;

    赋值
    方式一:

    set 局部变量名 = 值;
    或 set 局部变量名: = 值;
    或 select @局部变量名: = 值;

    方式二:通过 select into

    select 字段 into 局部变量名
    from 表;

    使用

    select 局部变量名;

    二、存储过程和函数

    类似于java中的方法。

    1.存储过程

    含义:一组预先编号的SQL语句的集合。减少了编译次数和数据库服务器的连接次数。

    ●创建语法

    如果存储过程体仅仅只有一句话,begin end 可以省略。存储过程体中每条语句结尾都必须加分号。

    create procedure 存储过程名(参数列表)
    begin

    存储过程体()
    【delimiter 结束标记】 -- 存储过程的结尾可以使用 delimiter 重新设置。

    end 结束标记【$】

    参数模式:

    in 该参数可以作为输入,也就是该参数需要调用方法传入值
    out 该参数可以作为输出,也就是该参数可以作为返回值
    inout 该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值

    ●调用语法

    call 存储过程名(实参列表) 结束标记【$】;

    使用之后查看表时:select *from 表【$】;

    案例:

    创建带 in 模式的存储过程:

    创建带 out 模式的存储过程:

    创建带 inout 模式的存储过程:

    2.删除存储过程

    drop procedure 存储过程名; --一次只能删除一个

    3.查看存储过程的信息

    show create procedure 存储过程名;

    ●其他三个案例,供参考


    三、函数

    存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新。

    函数:只能有1个返回,适合做处理数据后返回一个结果。

    1.创建语法

    create function 函数名(参数列表) returns 返回类型
    begin

    函数体()

    end

    注意:

    1.参数列表包含两部分:参数名、参数类型
    2.函数体:肯定会有return语句, 如果没有会报错。如果return语句没有放在函数体的最后也不报错,但不建议
    3.函数体中仅有一-句话,则可以省略begin end
    4.使用delimiter语句设置结束标记

    2.调用函数

    select 函数名(参数列表);

    案例:

    无参数有返回值

    有参数有返回值

    3.查看函数

    show create function 函数名;

    4.删除函数

    drop function 函数名;

    ●其他案例

  • 相关阅读:
    HTML5语音合成Speech Synthesis API简介
    数据库两大神器【索引和锁】
    进程、进程组、作业、会话
    linux的会话、进程、进程组等概念
    linux命令eval的用法
    配置mutt
    Shell 实现多任务并发
    利用linux mutt 发送邮件(在Shell脚本中使用比较方便)
    Linux-Shell-使用mkfifo实现多任务并发及并发数控制
    js逆向笔记
  • 原文地址:https://www.cnblogs.com/nnadd/p/12578265.html
Copyright © 2020-2023  润新知