标签:传递 循环条件 3.3 char insert 事件 color 字符串 复用
if 条件判断 then -- 满足条件要执行的代码 else if -- 不满足条件要执行的代码 else -- 不满足条件要执行的代码 end if;
-- 触发器结合if分支,判断商品库存是否足够,不够不能生成订单 DELIMITER $$ CREATE TRIGGER insert_before BEFORE INSERT ON `ORDER` FOR EACH ROW BEGIN -- 判断商品库存是否足够 -- 获取商品库存:商品库存在表中 SELECT inv FROM goods WHERE id = new.g_id INTO @inv; -- 比较kuc IF @inv < new.g_number THEN -- 库存不够 -- 触发器没有提供一个能够阻止事件发生的能力,只能暴力报错 INSERT INTO xxx VALUES(xxx); END IF; END $$ DELIMITER ;
while 条件判断 do -- 满足条件要执行的代码 -- 变更循环条件 end while;
循环控制:在循环内部进行循环判断和控制
MySQL中没有对应的continue和break;
iterate:类似于continue
leave:类似于break
iterate和leave的使用方式: iterate/leave 循环名字;
-- 定义循环名字 循环名字:while 条件 do -- 循环体 -- 循环控制 end while;
SET @cn = ‘世界你好‘; SET @en = "hello world"; -- 字符串截取 SELECT SUBSTRING(@cn,1,2),SUBSTRING(@en,1,2);
SET @cn = ‘世界你好‘; SET @en = "hello world"; -- 字符串长度 SELECT CHAR_LENGTH(@cn),CHAR_LENGTH(@en),LENGTH(@cn),LENGTH(@en);
SET @cn = ‘世界你好‘; SET @en = "hello world"; SELECT INSTR(@cn,‘你‘);
SELECT INSTR(@cn,‘哈哈‘);
SET @cn = ‘世界你好‘; SET @en = "hello world"; SELECT LPAD(@cn,20,‘呵呵‘);
SET @a = ‘hello‘; SET @b = ‘hei‘; SET @c = ‘HEI‘; SELECT STRCMP(@a,@b),STRCMP(@b,@c),STRCMP(@c,@a);
-- 创建函数 CREATE FUNCTION 函数名([形参列表]) RETURNS 数据类型 BEGIN -- 函数体 -- 返回值 RETURN 返回值(指定数据类型); END;
DELIMITER $$ CREATE FUNCTION dis() RETURNS INT BEGIN RETURN 100; END $$ DELIMITER ;
SELECT dis();
show function status [like ‘pattern‘];
drop function 函数名;
DELIMITER $$ CREATE FUNCTION 函数名 (形参名字 数据类型) RETURNS 数据类型 BEGIN -- 函数体 -- 返回值 RETURN 返回值; END; $$ DELIMITER ;
DELIMITER $$ CREATE FUNCTION res (num INT) RETURNS INT BEGIN SET @i = 1; SET @sum = 0; WHILE @i <= num DO SET @sum = @sum + @i; SET @i = @i+1; END WHILE; RETURN @sum; END; $$ DELIMITER ;
SELECT res(100);
DELIMITER $$ CREATE FUNCTION res (num INT) RETURNS INT BEGIN DECLARE i INT DEFAULT 1; DECLARE SUM INT DEFAULT 0; WHILE i <= num DO SET SUM = SUM +i; SET i = i+1; END WHILE; RETURN SUM; END; $$ DELIMITER ;
DELIMITER $$ CREATE PROCEDURE 过程名字([参数列表]) BEGIN -- 过程体 END $$ DELIMITER ;
DELIMITER $$ CREATE PROCEDURE proe() BEGIN -- 过程体 SELECT * FROM my_account; END $$ DELIMITER ;
SHOW PROCEDURE STATUS;
call 存储过程的名字;
CALL proe();
drop 存储过程的名字;
DELIMITER $$ CREATE PROCEDURE 过程名 (IN 形参名称 数据类型,OUT 形参名称 数据类型,INOUT 形参名称 数据类型) BEGIN -- 过程体 END; $$ DELIMITER ;
DELIMITER $$ CREATE PROCEDURE pro1 (IN int_1 INT,OUT int_2 INT,INOUT int_3 INT) BEGIN -- 过程体 SELECT INT_1,INT_2,INT_3; END; $$ DELIMITER ;
SET @int_2 = 1; SET @int_3 = 1; SET @int_1 = 1 ; SELECT @int_1,@int_2,@int_3; CALL pro1(@int_1,@int_2,@int_3); SELECT @int_1,@int_2,@int_3;
标签:传递 循环条件 3.3 char insert 事件 color 字符串 复用
原文地址:http://www.cnblogs.com/xuweiweiailixing/p/7440334.html