博客
关于我
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
阅读量:800 次
发布时间:2023-02-11

本文共 1124 字,大约阅读时间需要 3 分钟。

存储过程技术文档

场景

存储过程是一组预先编译并存储在数据库中的SQL语句集合,旨在实现特定功能。通过使用存储过程,开发人员可以将常用或复杂的数据库操作提前定义并存储,为后续的数据库调用提供便利。

存储过程的定义

存储过程的主要目的是将数据库操作的逻辑封装,使其可以重复使用。与函数类似,存储过程可以接受输入参数并执行相应的操作,返回结果或修改数据。

创建存储过程的语法

在MySQL中,创建存储过程的语法如下:

CREATE PROCEDURE sp_name ([proc_parameter] ...) [characteristic ...] routine_body
  • sp_name:存储过程的名称。
  • proc_parameter:存储过程的参数定义,支持以下类型:
    • IN:输入参数。
    • OUT:输出参数。
    • INOUT:可读写参数。
  • characteristic:存储过程的特性,可选值包括:
    • LANGUAGE SQL:指定存储过程使用SQL语句。
    • NOT DETERMINISTIC:存储过程结果随输入变化。
    • SQL SECURITY DEFINER/INVOKER:指定存储过程的权限。
    • COMMENT 'string':存储过程注释。
  • routine_body:存储过程的SQL逻辑体,通常用BEGIN...END包裹。

测试表的创建

以下是用于测试存储过程的学生信息表的创建语句:

CREATE TABLE test_student(    sid INT PRIMARY KEY,    sname VARCHAR(20),    sex CHAR(2),    age INT,    did INT);

数据插入

将以下数据插入到test_student表中:

INSERT INTO test_student(sid, sname, age, did) VALUES     (1, '张三', 13, 101),    (2, '李四', 14, 101),    (3, '王五', 15, 102),    (4, '赵六', 16, 101);

创建查看学生信息的存储过程

以下是用于查询学生信息的存储过程:

CREATE PROCEDURE Proc_student()BEGIN    SELECT * FROM test_student;END;

调用存储过程

调用存储过程的语法如下:

CALL sp_name([parameter, ...])
  • sp_name:存储过程名称。
  • [parameter, ...]:传递给存储过程的参数。

通过以上步骤,可以轻松创建并调用存储过程,实现数据库操作的复用和管理。

转载地址:http://mpbfk.baihongyu.com/

你可能感兴趣的文章
nginx中配置root和alias的区别
查看>>
nginx主要流程(未完成)
查看>>
Nginx之二:nginx.conf简单配置(参数详解)
查看>>
Nginx从入门到精通
查看>>
Nginx从入门到精通(全)
查看>>
Nginx从安装到高可用,一篇搞定!
查看>>
Nginx代理websocket配置(解决websocket异常断开连接tcp连接不断问题)
查看>>
Nginx代理初探
查看>>
nginx代理地图服务--离线部署地图服务(地图数据篇.4)
查看>>
Nginx代理外网映射
查看>>
Nginx代理模式下 log-format 获取客户端真实IP
查看>>
Nginx代理解决跨域问题(导致图片只能预览不能下载)
查看>>
Nginx代理访问提示ERR_CONTENT_LENGTH_MISMATCH
查看>>
Nginx代理配置详解
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
nginx优化日志拒绝特定404请求写入
查看>>
Nginx优化解析
查看>>
Nginx使用proxy_cache指令设置反向代理缓存静态资源
查看>>
Nginx做反向代理时访问端口被自动去除
查看>>