MySQL高级进阶二:自定义函数,自定义变量,常用函数以及存储过程 |
您所在的位置:网站首页 › mysql存储过程怎么调用函数类型 › MySQL高级进阶二:自定义函数,自定义变量,常用函数以及存储过程 |
代码执行结构
代码执行结构有3种:顺序结构、分支结构和循环结构 分支结构准备多个代码块,按照条件选择性的执行。 在mysql中只有if分支 基本语法: If 判定条件 then -----满足条件要执行的代码 Else -----不满足条件要执行的代码 End if 下面通过一个案例来了解这种分支结构,首先准备操作数据 CREATE TABLE my_goods( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20) NOT NULL, price DECIMAL(10,2) DEFAULT 1, inv INT COMMENT '库存数量' )CHARSET utf8; INSERT INTO my_goods VALUES(NULL,'iPhone6s',5288,100),(NULL,'s6','6088',100); SELECT * FROM my_goods; CREATE TABLE my_order( id INT PRIMARY KEY AUTO_INCREMENT, g_id INT NOT NULL COMMENT '商品ID', g_number INT COMMENT '商品数量' )CHARSET utf8; SHOW CREATE TABLE my_order; SELECT * FROM my_order;建立一个触发器,判断商品的库存是否足够,不够不能生产订单 DELIMITER $$ CREATE TRIGGER after_order AFTER INSERT ON my_order FOR EACH ROW BEGIN SELECT inv FROM my_goods WHERE id = new.g_id INTO @inv; IF @inv < new.g_number THEN INSERT INTO xxx VALUE (); ELSE UPDATE my_goods SET inv = inv - new.g_number WHERE id = new.g_id; END IF; END $$ DELIMITER ;这时候如果商品库存不够,就会直接报错 循环结构某段代码在指定的条件内重复执行 只有While循环,没有for循环 语句格式 While 判定条件 do --满足条件要执行的代码 -- 变更循环的条件 End while循环控制 在循环内部进行循环的判定与控制 Mysql中没有对应continue和break关键字,但是有替代品 Iterate:迭代,类似于continue,后面的代码不执行,进入下一次循环 Leave:离开,类似于break,整个循环结束。 常见:in,any也可以在while中使用 函数将一段代码封装到一个结构中,在需要执行这段代码的时候,调用结构执行即可,代码的重用。 函数分为2种:系统函数,自定义函数 系统函数系统已经定义好的函数,直接调用即可, 任何函数都有返回值,因此函数的调用是通过select调用 substring();字符串截取(字符为单位) SET @cn = '世界你好'; SET @en = 'hello world'; SELECT SUBSTRING(@cn,1,2); SELECT SUBSTRING(@en,1,2); Char_length();字符长度 SELECT CHAR_LENGTH(@cn); SELECT CHAR_LENGTH(@en); Length字节长度 SELECT LENGTH(@cn); SELECT LENGTH(@en); Instr.判定字符串是否存在某个子串,存在返回位置,0代表没找着 SELECT INSTR(@en,'he'),INSTR(@cn,'he'); Lpad左填充:将字符串按照某种方式进行填充 SELECT LPAD(@en,21,"123"); Insert替换,找到目标位置,指定长度的字符串 ,替换成 目标字符串 SELECT INSERT(@en,2,5,"AAAAA"); Strcmp字符串比较,一样返回0,t1>t2返回1,t1 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |