加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

一看就懂的MySQL存储过程详解

发布时间:2018-11-08 07:08:47 所属栏目:MySql教程 来源:Java入门到精通平台
导读:副标题#e# 【新品产上线啦】51CTO播客,随时随地,碎片化学习 图片来自包图网 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据

创建:

  1. mysql > DELIMITER // 
  2. mysql > CREATE PROCEDURE demo_out_parameter(OUT p_out int) 
  3. -> BEGIN 
  4. -> SELECT p_out; 
  5. -> SET p_out=2; 
  6. -> SELECT p_out; 
  7. -> END; 
  8. -> // 
  9. mysql > DELIMITER ; 

执行结果:

  1. mysql > SET @p_out=1; 
  2. mysql > CALL sp_demo_out_parameter(@p_out); 
  3. +-------+ 
  4. | p_out | 
  5. +-------+ 
  6. | NULL | 
  7. +-------+ 
  8. +-------+ 
  9. | p_out | 
  10. +-------+ 
  11. | 2 | 
  12. +-------+ 
  13. mysql> SELECT @p_out; 
  14. +-------+ 
  15. | p_out | 
  16. +-------+ 
  17. | 2 | 
  18. +-------+ 

Ⅲ. INOUT参数例子

创建:

  1. mysql > DELIMITER // 
  2. mysql > CREATE PROCEDURE demo_inout_parameter(INOUT p_inout int) 
  3. -> BEGIN 
  4. -> SELECT p_inout; 
  5. -> SET p_inout=2; 
  6. -> SELECT p_inout; 
  7. -> END; 
  8. -> // 
  9. mysql > DELIMITER ; 

执行结果:

  1. mysql > SET @p_inout=1; 
  2. mysql > CALL demo_inout_parameter(@p_inout) ; 
  3. +---------+ 
  4. | p_inout | 
  5. +---------+ 
  6. | 1 | 
  7. +---------+ 
  8. +---------+ 
  9. | p_inout | 
  10. +---------+ 
  11. | 2 | 
  12. +---------+ 
  13. mysql > SELECT @p_inout; 
  14. +----------+ 
  15. | @p_inout | 
  16. +----------+ 
  17. | 2 | 
  18. +----------+ 

(4). 变量

Ⅰ. 变量定义

DECLARE variable_name [,variable_name...] datatype [DEFAULT value];

其中,datatype为MySQL的数据类型,如:int, float, date, varchar(length)

例如:

  1. DECLARE l_int int unsigned default 4000000;
  2. DECLARE l_numeric number(8,2) DEFAULT 9.95;
  3. DECLARE l_date date DEFAULT '1999-12-31';
  4. DECLARE l_datetime datetime DEFAULT '1999-12-31 23:59:59';
  5. DECLARE l_varchar varchar(255) DEFAULT 'This will not be padded';

Ⅱ. 变量赋值 SET 变量名 = 表达式值 [,variable_name = expression ...]

Ⅲ. 用户变量

ⅰ. 在MySQL客户端使用用户变量

  1. mysql > SELECT 'Hello World' into @x; 
  2. mysql > SELECT @x; 
  3. +-------------+ 
  4. | @x | 
  5. +-------------+ 
  6. | Hello World | 
  7. +-------------+ 
  8. mysql > SET @y='Goodbye Cruel World'; 
  9. mysql > SELECT @y; 
  10. +---------------------+ 
  11. | @y | 
  12. +---------------------+ 
  13. | Goodbye Cruel World | 
  14. +---------------------+ 
  15. mysql > SET @z=1+2+3; 
  16. mysql > SELECT @z; 
  17. +------+ 
  18. | @z | 
  19. +------+ 
  20. | 6 | 
  21. +------+ 

ⅱ. 在存储过程中使用用户变量

  1. mysql > CREATE PROCEDURE GreetWorld( ) SELECT CONCAT(@greeting,' World'); 
  2. mysql > SET @greeting='Hello'; 
  3. mysql > CALL GreetWorld( ); 
  4. +----------------------------+ 
  5. | CONCAT(@greeting,' World') | 
  6. +----------------------------+ 
  7. | Hello World | 
  8. +----------------------------+ 

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读