MySQL基础之存储过程

学过MySQL之后却没有总结,今天好不容易有点时间来看看。

存储过程的优势

1.简化复杂的SQL语句,将多个SQL语句封装成为一个存储过程,可以在其中加上一些流程控制语句

2.存储过程封装在数据库内部,编译之后直接调用,大大提高效率

3.模块化编程,将一定功能的SQL语句封装,开发人员无需了解内部构造直接调用


创建存储过程(Stored Procedure)

delimiter //
    create proceduce sp_test(
    in id int,out num int )
    begin
    select sum(id) into num;
    end
    //
delimiter;

代码分析:

1.首先SQL语句的结束标志改为//,便于区分SQL语句的结束和存储过程的结束,不会出现混乱,用完之后记得还原。

2.关于参数有三种类型,in,out,inout

3.select...into... 可以将数据通过num返回

4.在内容中可以利用流程控制大大提升代码功能,之后会补充


查看存储过程

show proceduce status \G;

show create produce sp_test\G;
详细查看,可以看到具体过程中的代码内容

删除存储过程

drop procedure sp_test;

执行操作过程

call sp_test(1,@num);
将返回值存储在num变量中,在out型变量前加上@
直接可以使用select @num;来查看具体的值

---恢复内容结束---

学过之后却没有总结,今天好不容易有点时间来看看。

存储过程的优势

1.简化复杂的SQL语句,将多个SQL语句封装成为一个存储过程,可以在其中加上一些流程控制语句
2.存储过程封装在数据库内部,编译之后直接调用,大大提高效率
3.模块化编程,将一定功能的SQL语句封装,提高可读性


创建存储过程(Stored Procedure)

delimiter // create proceduce sp_test( in id int,out num int ) begin select sum(id) into num; end // delimiter;

代码分析:

1.首先SQL语句的结束标志改为//,便于区分SQL语句的结束和存储过程的结束,不会出现混乱,用完之后记得还原。
2.关于参数有三种类型,in,out,inout
3.select...into... 可以将数据通过num返回
4.在内容中可以利用流程控制大大提升代码功能,之后会补充


查看存储过程

show proceduce status \G;

show create produce sp_test\G;
详细查看,可以看到具体过程中的代码内容

删除存储过程

drop procedure sp_test;

执行操作过程

call sp_test(1,@num);
将返回值存储在num变量中,在out型变量前加上@
直接可以使用select @num;来查看具体的值

猜你喜欢

转载自www.linuxidc.com/Linux/2017-01/139036.htm