存储过程
存储过程是一组SQL语句,或者可以说是存储在数据库中的具有特定名称的子程序。
存储过程执行的过程是接收输入参数,然后将值以输出参数的形式返回给调用者,并在数据库上执行数据处理操作,这些操作由触发器或其他存储过程之类的程序执行。
使用存储过程有几个优点:
- 提高应用程序性能,因为已经创建的存储过程比应用程序发送的未编译SQL语句运行得更快。
- 减少数据库和应用程序之间的网络流量,因为无需发送未编译的SQL。
- 可以在所有应用程序中重复使用且透明。
尽管如此,使用存储过程也有一些缺点:
- 无法进行调试。
- 增加服务器硬件的负载。
- 编写不易,需要特定的知识。
存储过程的语法
存储过程的语法如下:
存储过程的编写语法
DELIMITER //
CREATE PROCEDURE nama_procedure()
BEGIN
query sql
END //
DELIMITER ;
调用存储过程的语法
CALL nama_procedure();
存储过程变量声明的语法
DECLARE nama_variable tipedata(panjang) DEFAULT nilai;
带参数的存储过程语法
参数有三种模式:
IN
参数的默认形式,存储过程中的所有更改都不会影响参数。OUT
这种模式会更改参数的值,然后将其返回给调用者。INOUT
IN和OUT的组合模式。
定义带参数存储过程的语法示例
DELIMITER //
CREATE PROCEDURE nama_procedure(
[mode] [parameter] [tipe_data]
)
BEGIN
query sql
END //
DELIMITER ;
调用带参数存储过程的语法示例
CALL nama_procedure([nilai_parameter]);
游标
游标是数据库中的一个对象,用于容纳特定SQL语句的处理,或者可以说是存储包含多行或多条记录的查询结果的变量。
游标可以遍历表中的数据行。游标有几个特性:
- 无法进行更新(只读)。
- 游标只能单向移动(不可滚动)。
- 不建议更新游标所引用的表,因为这可能导致意外结果(非敏感性)。
游标的语法
创建游标有几个步骤:
1. 声明
声明游标的步骤,语法如下:
DECLARE nama_cursor CURSOR FOR
pernyataan_SELECT;
2. 打开
打开或激活游标的步骤,语法如下:
OPEN nama_cursor;
3. 提取
从游标中取出数据并存储到变量中的步骤,语法如下:
FETCH nama_cursor INTO daftar_variabel;
4. 关闭
关闭游标(使其失效)的步骤,语法如下:
CLOSE nama_cursor;
存储过程与游标的区别
存储过程与游标的区别在于,存储过程只包含MySQL的声明性命令,而游标则保存查询结果并同时作为结果集的指针。
这使得游标能够执行存储过程无法执行的复杂命令,其中之一就是遍历记录。
Tags:
#编程
W
作者
Wilan
巴厘岛Tekno的常驻撰稿人,积极分享技术、编程和软件工程领域的知识。
返回首页
最后更新日期:2026年6月5日