数据库中的控制语句
来源:互联网 发布:网络穿越剧电视剧大全 编辑:程序博客网 时间:2024/04/29 19:32
数据库中的控制语句分为分支语句和循环语句,接下来通过其在存储过程中的使用给大家逐一介绍:
分支语句:
1、if then、elseif、else、end if语句
示例:
创建存储过程:
DELIMITER // CREATE PROCEDURE proc (IN sex_type INT, OUT sex_name VARCHAR(4), IN role_type INT, OUT role_name VARCHAR(8)) NO SQL BEGIN IF (sex_type = 0) THEN SET sex_name = '女';ELSEIF (sex_type = 1) THEN SET sex_name = '男';ELSE SET sex_name = '其它';END IF; IF (role_type = 0) THEN SET role_name = '管理员';ELSEIF (role_type = 1) THEN SET sex_name = '普通员工';ELSE SET role_name = '游客';END IF; END // DELIMITER ;说明:SET用来给变量赋值。
注意:MySQL 存储过程中的每条语句的末尾,都要加上分号 “;”
调用存储过程:
SET @sex_type=1,@role_type=2; CALL proc(@sex_type, @sex_name, @role_type, @role_name); SELECT @sex_name AS sex, @role_name AS role;
除了可以使用SET给变量赋值外,还可以使用into为变量赋值:
创建存储过程:
DELIMITER // CREATE PROCEDURE proc(OUT cur_date DATE) NO SQLBEGIN SELECT NOW() INTO cur_date;END// DELIMITER ;调用存储过程:
CALL proc(@cur_date);SELECT @cur_date;
2、case语句:
示例:
DELIMITER // CREATE PROCEDURE proc (IN sex_type INT, OUT sex_name VARCHAR(4), IN role_type INT, OUT role_name VARCHAR(8)) NO SQL BEGIN CASE sex_type WHEN 0 THEN SET sex_name = '女'; WHEN 1 THEN SET sex_name = '男'; ELSE SET sex_name = '其它'; END CASE;CASE role_type WHEN 0 THEN SET role_name = '管理员'; WHEN 1 THEN SET role_name = '普通员工'; ELSE SET role_name = '游客'; END CASE;END // DELIMITER ;调用存储过程:
SET @sex_type=1,@role_type=2; CALL proc(@sex_type, @sex_name, @role_type, @role_name); SELECT @sex_name AS sex, @role_name AS role;
循环语句:
1、while……do……end while语句
示例:
创建存储过程:
DELIMITER // CREATE PROCEDURE proc (OUT result INT) NO SQL BEGIN DECLARE i INT; SET i=0; WHILE i<6 DO SET i=i+1;END WHILE;SET result = i;END // DELIMITER ;说明:DECLARE用来声明存储过程中的临时变量
调用存储过程:
CALL proc(@result); SELECT @result AS result;2、repeat……until……end repeat语句
该种循环类似于Java中的do while,即在执行操作后检查条件是否成立,而while则是执行前进行检查。
示例:
DELIMITER //CREATE PROCEDURE proc (OUT result INT)NO SQLBEGINDECLARE i INT;SET i=0;REPEAT SET i=i+1;UNTIL i!=0 END REPEAT;SET result = i;END //DELIMITER;调用存储过程:
CALL proc(@result); SELECT @result AS result;3、 loop……end loop语句
示例:
创建存储过程:DELIMITER // CREATE PROCEDURE proc(OUT result INT) NO SQLBEGIN DECLARE i INT DEFAULT 0; LOOP_LABLE:LOOP SET i=i+1; IF i >=2 THEN LEAVE LOOP_LABLE; END IF; END LOOP; SET result = i; END; // DELIMITER ;说明:DEFAULT用于给声明的临时变量赋默认值。
调用存储过程:
CALL proc(@result); SELECT @result AS result;
1 0
- 数据库中的控制语句
- scala中的控制语句
- java中的控制语句
- java中的控制语句
- Java中的控制语句
- 数据库之流程控制语句
- java中的if控制语句
- bash中的循环控制语句
- Java中的流程控制语句
- ruby中的控制逻辑语句
- Octave中的简单控制语句
- Kotlin中的流程控制语句
- Java中的流程控制语句
- java中的流程控制语句
- JAVA_JAVA中的流程控制语句
- java中的控制流语句
- python中的流程控制语句
- oracle中的条件控制语句
- JAVA设置环境变量
- Hello,World!
- crt系统调用与文件处理
- java 内部类
- Android再按一次退出程序
- 数据库中的控制语句
- Android系统开发之四:多线程和Synchronized同步机制
- Backbone的model学习笔记一
- android开发--sqlite的使用
- CSS左侧固定宽 右侧自适应(兼容所有浏览器)
- 提出支持栈的Push和Pop操作以及第三种操作FindMin的数据结构,其中FindMin返回该数据结构的最小元素 所有操作在最坏的情况下的运行时间都是O(1)
- div内元素是否在可见区域的判断与控制
- spring-jdbc-RoutingDataSource
- 各种jar包下载