一.变量
1.系统变量 global session
2.用户自定义变量
1.不用提前声明,使用时直接'' @变量名 ''
2.set @name='lisi';
set 字段名 into @name from 表名
3.局部变量
1.需要用declare声明
2.declare 变量名 类型
3.set 变量名=值
二.触发器
.1函数
DELIMITER $$
USE `shujuku`$$
DROP FUNCTION IF EXISTS `PysxCx`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `PysxCx`(zw VARCHAR(20)) RETURNS VARCHAR(20) CHARSET utf8mb4
READS SQL DATA
BEGIN
SET @pysx='';
SET @l=CHAR_LENGTH(zw);
SET @i=1;
WHILE (@i<=@l) DO
SELECT jp INTO @jp FROM hzpyb WHERE hz=SUBSTR(zw,@i,1);
SET @pysx=CONCAT(@pysx,@jp);
SET @i=@i+1;
END WHILE;
RETURN @pysx;
END$$
DELIMITER ;
触发器1
DELIMITER $$
USE `shujuku`$$
DROP TRIGGER `Update_mcsx_before_insert_goods`$$
CREATE
TRIGGER `Update_mcsx_before_insert_goods` BEFORE INSERT ON `goods`
FOR EACH ROW BEGIN
SET new.abbreviations=pysxcx(new.gname);
END;
$$
DELIMITER ;
触发器2
DELIMITER $$
USE `shujuku`$$
DROP TRIGGER `Update_mcsx_before_update_goods_gname`$$
CREATE
TRIGGER `Update_mcsx_before_update_goods_gname` BEFORE UPDATE ON `goods`
FOR EACH ROW BEGIN
IF new.gname<>old.gname THEN
SET new.abbreviations=pysxcx(new.gname);
END IF;
END;
$$
DELIMITER ;
2超市购买物品
goodswh
DELIMITER $$
USE `shujuku`$$
DROP PROCEDURE IF EXISTS `goodswh`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `goodswh`(gid INT,gname VARCHAR(20),
unit VARCHAR(20),barcode VARCHAR(20),
retail_Price DECIMAL(10,2),
promotional_Price DECIMAL(10,2),
STATUS TINYINT
)
BEGIN
IF gid=0 THEN
INSERT INTO goods
(gname,unit,barcode,retai