MySQL--变量、if语句、while循环以及存储过程的使用
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循环以及存储过程的使用相关推荐
- mysql里条件语句和循环语句_MySQL与Oracle 差异比较之四条件循环语句
循环语句 编号 类别 oracle Mysql 注释 1 IF语句使用不同 IFiv_weekly_day = 'MON'THEN ii_weekly_day := 'MON'; ELSIFiv_we ...
- mysql(十)条件语句、循环语句、动态执行SQL语句
MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGINdeclare i int de ...
- Java 中把声明变量的语句如果写在循环体内,每次执行时栈内存中的变量和数据是如何变化的?
问题一:如下面的代码示例 1,JVM 是不是会反复回收旧的变量 a 再重新创建新的变量 a 呢?还是旧的变量 a 一直保留在栈内,只是反复赋值 0 而已呢? 代码示例 1: while (true) ...
- mysql函数 动态语句_自定义函数动态执行SQL语句
Oracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者. DDL 和 DML Sql代码 收藏代码 /*** DDL ***/ begin EX ...
- mysql 5.7 循环语句_MySQL循环语句|mysql|loop|delimiter|procedure|调用_网易订阅
mysql常见的三种循环方式:while.repeat和loop循环.还有一种goto,不推荐使用. 1.while循环 -- 设置mysql分隔符为//,也就意味着,当遇到下一个//时,整体执行SQ ...
- php mysql变量赋值给变量_MySQL_mysql 存储过程中变量的定义与赋值操作,一、变量的定义 mysql中变量定 - phpStudy...
mysql 存储过程中变量的定义与赋值操作 一.变量的定义mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin...end 块中使用,变量必须定义在复合语句的开头,并 ...
- MySQL数据库(多表查询,存储过程,变量)
级联删除 级联更新 多对多关系,引入中间表,添加外键约束 内连接 外连接 子查询 复制表 存储过程 变量的介绍 1.级联删除 删除用户时,把你关联的数据一并删掉. CREATE TABLE zhu(z ...
- MySQL——高阶语句、存储过程(下)
MySQL--高阶语句(下) 一.数据库函数 1.数学函数 2.聚合函数 3.字符串函数 4.日期时间函数 二.存储过程 1.概述 2.简介 3.优点 4.创建存储过程 调用存储过程 带参数的存储过程 ...
- mysql存储过程变量定义_存储过程中MySQL变量定义和赋值
MySQL变量定义和赋值是我们经常会遇到的问题,下面就为您接受如何在存储过程中MySQL变量定义和赋值,希望对您学习MySQL变量定义方面能有所启迪. 一.MySQL变量的定义 mysql变量定义用d ...
- MySQL—变量、存储过程和函数(十一)
一.变量 1 变量的种类 1.1 系统变量 系统变量一共分为两种: 1)全局变量 ...
最新文章
- SDWebImage使用——一个可管理远程图片加载的类库
- hdu 3062 基础的2sat
- 从0到1 构建实时音视频引擎
- MySQL探秘(三):InnoDB的内存结构和特性(可靠性和持久性)
- python如何分成两行_python将文本分每两行一组并保存到文件
- python图标的演变_Python3 生成icon图标
- 注册Tomcat服务为系统服务
- VMware8 8.0.1 安装Lion正式版 原版镜像 直接DMG安装 非整合版 免引导 完美解决iCloud...
- 私有github java调用_使用Java API从GitHub获取所有提交
- 【报告分享】2021制造业与人工智能创新应用发展报告.pdf(附下载链接)
- Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(一) 理论篇
- mysql更改安装路径命令_如何修改mysql的安装路径
- 分布式场景下redis已经逐渐取代了memcached,那么各有什么使用场景和优缺点呢?
- mpq算法实现哈希查找
- cocos2dx android工程接入联通Unipay sdk
- 【Hive】03-数据类型和文件格式
- 计算机键盘清洗怎么弄,笔记本电脑键盘怎么清洗干净(专业户教你清洗键盘简易方法)...
- 1014 福尔摩斯的约会(python)
- 防坑指南 | 转行产品经理你需要了解什么?
- 使用MVC模式实现一个超简单的网上书店系统