mysql-存储过程学习

都学完一些了, 发现mysql不适合用存储过程.  他每次执行都要编译, 从学习到放弃... 

-- SELECT VERSION()     //查看mysql版本

-- 1.创建一个无参数存储过程   注意 ,下面的 //不是注释符. 是自定义 存储sql的结束符. 就是END后面用啥结束,  默认 ;分号, 但在存储过程中, 使用存储过程会报错
DELIMITER //
CREATE PROCEDURE t1()
BEGIN
    SELECT * FROM tb_user;
END//
DELIMITER ;

-- 调用存储过程
CALL t1()

-- 说明:
-- DELIMITER: 该关键字用来声明MYSQL的结尾用什么结束符. 默认是 ; 分号
-- 写存储过程为啥要改MYSQL默认的 结束符号呢? 
-- 因为当MYSQL只要遇到 ;分号, 就会立即执行, 
-- 例如: DELIMITER /, 那么END结尾就用/.  
-- DELIMITER $, END$
-- DELIMITER \, END\   这些都可以. 这样就避免在SQL存储过程结束后, 在使用 ";"分号
-- CREATE PROCEDURE t1() 声明一个 存储过程名称为 t1的 存储过程 CREATE PROCEDURE固定写法
-- CREATE PROCEDURE t1( in username, in age) 声明一个带参数的存储过程
-- BEGIN END存储过程开始和结束符号:

BEGIN END可以嵌套使用.
例如:

BEGIN 
    -- a业务
    BEGIN 


    END;
    -- b业务
    BEGIN 


    END;

END//

所以, 要说一下, DELIMITER定义的 结束符, 是最外层 END后面使用的
而存储过程最后一句, 又出现了 "DELIMITER ;" 啥意思呢?
还是自定义, 把你上面自定义的 结束符, 又给改回 分号了


-- MYSQL 存储过程参数, 分以下三类
-- in 仅用于传入参数用
-- out 仅用于返回值用
-- inout 既可以传入又可以当作返回值
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值