数据库存储器

参考: https://www.cnblogs.com/free-coder/p/4773691.html
https://baike.baidu.com/item/%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B/1240317?fr=aladdin
https://www.cnblogs.com/NanoDragon/p/13532263.html

什么是 存储过程?

存储过程即存储在数据库中的一组 sql 语句的集合,在启动时只编译一次,后面就直接调用即可

一、存储过程实现和使用

mysql> DELIMITER //
mysql> create procedure my_proced_test()
    -> select * from config;
    -> //
Query OK, 0 rows affected (0.03 sec)

mysql> call my_proced_test()//
mysql> DELIMITER ;
mysql> show procedure status;
mysql> drop procedure my_proced_test ;
Query OK, 0 rows affected (0.01 sec)
1、先自定义分隔符

因为过程中默认的分割符是【;】,但是在自定义的存储过程中的 sql 语句中也会使用到 【;】,为了区分开来必须先定义一个新的分隔符,例如使用【//】

mysql> DELIMITER //
2、实现存储过程

my_proced_test() 为自定义存储过程名称,中间也可以自定义参数,用法类似于函数

mysql> create procedure my_proced_test()
    -> select * from config;
    -> //
3、使用存储过程

call 你的存储过程名称即可

mysql> call my_proced_test()//
4、恢复分隔符
mysql> DELIMITER ;

二、存储过程的分类

1、系统存储过程

以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作

2、本地存储过程

用户自定义的 存储过程,例如上面我们自己实现的那个,自定义名称的不要以 【sp_】 开头

3、临时存储过程

。。。等等

三、存储过程的特点 以及和 函数的区别

1、存储过程的特点:
1、重复使用

-创建时编译一次,后面可直接调用

2、很强的灵活性

-可以完成复杂的判断和较复杂的运算,SQL语句和程序代码语句的分离,可以提高程序代码的可读性

3、安全性高

-可设定只有某些用户才具有对指定存储过程的使用权

4、减少网络流量

存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

2、存储过程 和 函数的区别

存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合,简化工作。

相同点:

都是一组事先编译的 可重复的 sql 集合。

不同点:
1、标识不同

函数调用方式是 function, 存储过程是 procedure

2、返回值

函数有返回值,存储过程没有

3、调用方式

函数使用 select ,存储过程使用 call

4、参数类型

函数参数 只能是 IN 类型,存储过程可以是 IN 、OUT、 INOUT

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值