Mysql学习笔记(10)函数、流程控制结构

函数

Mysql学习笔记(10)函数、流程控制结构_第1张图片
Mysql学习笔记(10)函数、流程控制结构_第2张图片

#定义函数 无参有返回
DELIMITER $$
CREATE
    FUNCTION `myemployees`.`f1`()
    RETURNS INT
    BEGIN 
		DECLARE c INT DEFAULT 0; #定义局部变量
		SELECT COUNT(*) INTO c #赋值
		FROM employees;
		RETURN c;
    END$$
DELIMITER ;

#使用函数
SELECT f1();
#定义有参函数
DELIMITER $$
CREATE
    FUNCTION `myemployees`.`f2`(n VARCHAR(20))
    RETURNS  DOUBLE
    BEGIN
	SET @s=0; #定义用户变量
	SELECT salary INTO @s #赋值
	FROM employees
	WHERE last_name = n;
	
	RETURN @s;
    END$$
DELIMITER ;

#使用函数
SELECT f2('Hunold');

在这里插入图片描述
在这里插入图片描述

流程控制结构

Mysql学习笔记(10)函数、流程控制结构_第3张图片
Mysql学习笔记(10)函数、流程控制结构_第4张图片
Mysql学习笔记(10)函数、流程控制结构_第5张图片
Mysql学习笔记(10)函数、流程控制结构_第6张图片
Mysql学习笔记(10)函数、流程控制结构_第7张图片
Mysql学习笔记(10)函数、流程控制结构_第8张图片

**WHILE DO
END WHILE **

CREATE  PROCEDURE `p1`(IN ico INT)
BEGIN
	DECLARE i INT DEFAULT 1;
	WHILE i<=ico DO
		INSERT INTO admin(username,PASSWORD) VALUE(CONCAT('gzn',i),666);
		SET i=i+1;
	END WHILE;
END$$
#包含控制 LEAVE :跳出
PROCEDURE `girl`.`p2`(IN ico INT)
    BEGIN
	DECLARE i INT DEFAULT 1;
	a:WHILE i<=ico DO
		INSERT INTO admin(username,PASSWORD) VALUE(CONCAT('qwew',i),000);
		IF i>=20 THEN
			LEAVE a;
		END IF;
		SET i=i+1;
	END WHILE a;
    END$$

经典案例

Mysql学习笔记(10)函数、流程控制结构_第9张图片
Mysql学习笔记(10)函数、流程控制结构_第10张图片

你可能感兴趣的:(mysql,mysql,数据库,database)