1、变量

变量又可分为系统变量、自定义变量和局部变量

1.1  系统变量

顾名思义就是系统提供的变量,不能创建、只能使用,系统变量又包含全局变量(global)和会话变量(session)

1.1.1 查看所有系统变量

show [global|session] variables; --查看所有变量
show [global|session] variables like '%%';-- 模糊查询系统变量

1.1.2 系统变量的设置

set [global|session] 系统变量名:=值;
set @@[global|session] 系统变量名:=值;--有@@代表是系统变量

1.2 自定义变量

根据需求定义的变量,在使用时用@标识

1.2.1 赋值

set @自定义变量名:=值;
select 字段名 into @变量名 from 表名;

1.3 局部变量

根据需求的业务要求出现在存储过程begin end之间,在使用前需要先申明

1.3.1 申明

declare 变量名 类型 default 值;--申明一个变量并给一个默认值

1.3.2 赋值

set 变量名:=值;
select 字段名 into 变量名 from 表名;

2、if语句

语法

if 条件1 then语句1elseif 条件2 then语句2elseif 条件3 then语句3...else语句
end if;

实例:

用存储过程和if语句实现以下需求

1.已知成绩sc

sc>=85 优秀

sc>=60 及格

sc<60 不及格

delimiter $$ --创建一个结束标识,语句到$$结束
create procedure pro002()begindeclare score int default 55;declare result varchar(10) '';if score>=85 && score<=100 thenset score:='优秀';elseif score>=60 thenset score:='及格';elseset score:='不及格';end if;end$$
call pro002();
select @result;

运行结果为不及格,如果想要其他结果,需要改变存储过程名,改变变量的值

这样灵活性很低,因此引出存储过程的参数,就能很轻易解决这个问题

存储过程参数类型

in --作为输入参数
out --作为输出参数
inout --输入/输出参数,类型只能是同一种
delimiter $$ --创建一个结束标识,语句到$$结束
create procedure pro003(in score int,out result varchar(10))-- 形式参数begin-- declare score int default 55;-- declare result varchar(10) '';if score>=85 && score<=100 thenset score:='优秀';elseif score>=60 thenset score:='及格';elseset score:='不及格';end if;end$$
call pro002(55,@result);-- 实际参数
select @result;

同上需求,只需要将参数in和out使用,就能在不更改存储过程的同时达到想要的效果

只需要在调用时输入相关的值,就能得到相应的结果。

3、while循环

语法:

while 表达式 do循环体
end while;

实例:用存储过程和while循环实现1到100的累加

delimiter $$
create procedure pro003(in N int,out sum int)beginset sum:=0;while N>0 dosum=sum+N;N=N-1;end while;end$$
call pro003(100,@sum);
select @sum;

以上就是这期的全部内容了

每天学习一点,每天进步一点

MySQL--变量、if语句、while循环以及存储过程的使用相关推荐

  1. mysql里条件语句和循环语句_MySQL与Oracle 差异比较之四条件循环语句

    循环语句 编号 类别 oracle Mysql 注释 1 IF语句使用不同 IFiv_weekly_day = 'MON'THEN ii_weekly_day := 'MON'; ELSIFiv_we ...

  2. mysql(十)条件语句、循环语句、动态执行SQL语句

    MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGINdeclare i int de ...

  3. Java 中把声明变量的语句如果写在循环体内,每次执行时栈内存中的变量和数据是如何变化的?

    问题一:如下面的代码示例 1,JVM 是不是会反复回收旧的变量 a 再重新创建新的变量 a 呢?还是旧的变量 a 一直保留在栈内,只是反复赋值 0 而已呢? 代码示例 1: while (true) ...

  4. mysql函数 动态语句_自定义函数动态执行SQL语句

    Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者. DDL 和 DML Sql代码 收藏代码 /*** DDL ***/ begin EX ...

  5. mysql 5.7 循环语句_MySQL循环语句|mysql|loop|delimiter|procedure|调用_网易订阅

    mysql常见的三种循环方式:while.repeat和loop循环.还有一种goto,不推荐使用. 1.while循环 -- 设置mysql分隔符为//,也就意味着,当遇到下一个//时,整体执行SQ ...

  6. php mysql变量赋值给变量_MySQL_mysql 存储过程中变量的定义与赋值操作,一、变量的定义 mysql中变量定 - phpStudy...

    mysql 存储过程中变量的定义与赋值操作 一.变量的定义mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin...end 块中使用,变量必须定义在复合语句的开头,并 ...

  7. MySQL数据库(多表查询,存储过程,变量)

    级联删除 级联更新 多对多关系,引入中间表,添加外键约束 内连接 外连接 子查询 复制表 存储过程 变量的介绍 1.级联删除 删除用户时,把你关联的数据一并删掉. CREATE TABLE zhu(z ...

  8. MySQL——高阶语句、存储过程(下)

    MySQL--高阶语句(下) 一.数据库函数 1.数学函数 2.聚合函数 3.字符串函数 4.日期时间函数 二.存储过程 1.概述 2.简介 3.优点 4.创建存储过程 调用存储过程 带参数的存储过程 ...

  9. mysql存储过程变量定义_存储过程中MySQL变量定义和赋值

    MySQL变量定义和赋值是我们经常会遇到的问题,下面就为您接受如何在存储过程中MySQL变量定义和赋值,希望对您学习MySQL变量定义方面能有所启迪. 一.MySQL变量的定义 mysql变量定义用d ...

  10. MySQL—变量、存储过程和函数(十一)

    一.变量 1 变量的种类 1.1 系统变量 系统变量一共分为两种:                                     1)全局变量                         ...

最新文章

  1. SDWebImage使用——一个可管理远程图片加载的类库
  2. hdu 3062 基础的2sat
  3. 从0到1 构建实时音视频引擎
  4. MySQL探秘(三):InnoDB的内存结构和特性(可靠性和持久性)
  5. python如何分成两行_python将文本分每两行一组并保存到文件
  6. python图标的演变_Python3 生成icon图标
  7. 注册Tomcat服务为系统服务
  8. VMware8 8.0.1 安装Lion正式版 原版镜像 直接DMG安装 非整合版 免引导 完美解决iCloud...
  9. 私有github java调用_使用Java API从GitHub获取所有提交
  10. 【报告分享】2021制造业与人工智能创新应用发展报告.pdf(附下载链接)
  11. Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(一) 理论篇
  12. mysql更改安装路径命令_如何修改mysql的安装路径
  13. 分布式场景下redis已经逐渐取代了memcached,那么各有什么使用场景和优缺点呢?
  14. mpq算法实现哈希查找
  15. cocos2dx android工程接入联通Unipay sdk
  16. 【Hive】03-数据类型和文件格式
  17. 计算机键盘清洗怎么弄,笔记本电脑键盘怎么清洗干净(专业户教你清洗键盘简易方法)...
  18. 1014 福尔摩斯的约会(python)
  19. 防坑指南 | 转行产品经理你需要了解什么?
  20. 使用MVC模式实现一个超简单的网上书店系统

热门文章

  1. Unity发布小游戏(五):小游戏的打包与上传到CCD云服务器
  2. 隐藏与显示桌面上的单个图标
  3. #Python中创建一个字符串映射表
  4. mysql将多行结果合并
  5. CF 1646C Factorials and Powers of Two
  6. 手撕内存拷贝函数 memmove、memcpy
  7. 量化交易入门阶段——欧奈尔的CANSLIM模型(N 新产品、新管理层和股价创新高)
  8. 自定义View练习 - 汉字键盘
  9. pthon缺陷检测(机器视觉)
  10. Excel凑数:从一堆数据中凑出指定数值的操作