创建MYSQL的储存过程

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

  创建MYAQL的存储过程         

1   创建不带参数的储存过程

   CREATE  PROCEDURE  过程名()  过程体 SELECT  VERSION();

2   调用储存过程

   第一种   CALL  过程名();      (带有参数时使用)

   第二种   CALL  过程名;        (不带参数时使用)

3   创建带有IN类型参数的存储过程  (创建前要先修改MYSQL的默认定界符为//,创建好后要修改回;)

   第一步   DELIMITER新的定界符如//     

   第二步   CREATE PROCEDURE  过程名如removeUserByid(IN 参数名如id 数据类型如INT  字符类型如UNSIGNED)

   第三步   BEGIN

   第四步   DELETEFROM 表名 WHERE 数据表中的字段id=传递的参数id

   第五步   END

   第六步   //

   第七步   DELIMITER原来的定界符;

4   删除程序

   DELETE PROCEDURE  过程名;

   删除存储过程

   DROP  PROCEDURE 过程名;

5   创建带有IN和OUT类型参数的存储过程  (创建前要先修改MYSQL的默认定界符为//,创建好后要修改回;)

   第一步   DELIMITER新的定界符如//     

   第二步   CREATE PROCEDURE 过程名如removeUserAndReturnUserNums(IN参数名如p_id 数据类型如INT  字符类型如UNSIGNED,OUT参数名如userNums数据类型如INT  字符类型如UNSIGNED)

   第三步   BEGIN

   第四步   DELETEFROM 表名 WHERE 数据表中的字段id=传递的参数p_id

   第五步   SLEECTcount(字段如id)  FROM  表名 INTO 参数名userNums

   第六步   END

   第七步   //

   第八步   DELIMITER 原来的定界符;

6   调用存储过程CALL 过程名

   如removeUserAndReturnUserNums(要删除的如21,剩下的总量如@nums);   查询剩下的总量SELECT @nums;

   ROW_COUNT();   可以查询到数据的插入.删除和更新的记录总数

7   创建带有多个OUT类型参数的存储过程  (创建前要先修改MYSQL的默认定界符为//,创建好后要修改回;)

   第一步   DELIMITER新的定界符如//     通过年龄删除用户并且返回信息

   第二步   CREATE  PROVEDURE 过程名如removeUserByAgeReturnInfos(IN 参数名如p_age 数据类型如SMALLINT 字符类型如UNSIGNED,OUT 参数名如deleteUsers 数据类型如SMALLINT 字符类型如UNSIGNED,OUT参数名如userCounts  数据类型如SMALLINT字符类型如UNSIGNED)

   第三步   BEGIN

   第四步   DELETEFROM 表名 WHERE 数据表中的字段age=传递的参数p_age;

   第五步   SLEECTROW_ COUNT() 表名 INTO 参数名deleteUsers

   第六步   SLEECTCOUNT(字段如id) FROM  表名 INTO 参数名userCounts

   第七步   END

   第八步   //

   第九步   DELIMITER原来的定界符;

8   调用存储过程CALL 过程名如removeUserByAgeReturnInfos(要删除的如21,你要删除的数量如@nums,剩下的总量如@wang);

 查询你要删除的数量和删除后剩下的数量

   SELECT @nums@wang

查询剩下的总量SELECT @nums;

9   查询表中你要查询的字段数据有几条   

   SELECT COUNT(id)  FROM  表名  WHERE  你要查询的字段如age=你要查询的数据如21


本文转自 拉考的考拉 51CTO博客,原文链接:http://blog.51cto.com/lakaodekaola/1926052


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11月前
|
存储 关系型数据库 MySQL
Mysql数据库 12.SQL语言 储存过程 下 储存过程管理和游标
Mysql数据库 12.SQL语言 储存过程 下 储存过程管理和游标
61 1
|
12月前
|
存储 安全 关系型数据库
MySQL储存引擎那些你不一定知道的东西
MySQL储存引擎那些你不一定知道的东西
47 0
MySQL储存引擎那些你不一定知道的东西
|
11月前
|
存储 SQL 关系型数据库
Mysql数据库 11.SQL语言 储存过程 中 流程控制
Mysql数据库 11.SQL语言 储存过程 中 流程控制
66 0
|
11月前
|
存储 SQL 关系型数据库
Mysql数据库 10.SQL语言 储存过程 上 初识储存过程
Mysql数据库 10.SQL语言 储存过程 上 初识储存过程
81 0
|
存储 关系型数据库 MySQL
MySQL使用InnoDB引擎时一张表最大可以储存数据大小为 64TB,那为什么当表中的单行数据达到16KB时,这张表只能储存一条数据?
MySQL使用InnoDB引擎时一张表最大可以储存数据大小为 64TB,那为什么当表中的单行数据达到16KB时,这张表只能储存一条数据?
155 0
|
数据可视化 安全 关系型数据库
从零开始安装MySQL数据库,并使用可视化DBevaer创建数据 | 开始搞全栈(一)
从零开始安装MySQL数据库,并使用可视化DBevaer创建数据 | 开始搞全栈(一)
274 0
从零开始安装MySQL数据库,并使用可视化DBevaer创建数据 | 开始搞全栈(一)
|
关系型数据库 MySQL Linux
Docker | Compose创建mysql容器
Docker | Compose创建mysql容器
214 0
Docker | Compose创建mysql容器
|
SQL 机器学习/深度学习 关系型数据库
《MySQL高级篇》六、索引的创建与设计原则(四)
《MySQL高级篇》六、索引的创建与设计原则
《MySQL高级篇》六、索引的创建与设计原则(四)
|
存储 关系型数据库 MySQL
《MySQL高级篇》六、索引的创建与设计原则(三)
《MySQL高级篇》六、索引的创建与设计原则
《MySQL高级篇》六、索引的创建与设计原则(三)
|
SQL 关系型数据库 MySQL
《MySQL高级篇》六、索引的创建与设计原则(二)
《MySQL高级篇》六、索引的创建与设计原则
《MySQL高级篇》六、索引的创建与设计原则(二)