mysql存储过程基础实例

编程教程 > Java (1348) 2024-11-26 14:39:04
1.选择一个数据库创建表TEST_USER,并插入一些测试数据
DROP TABLE IF EXISTS TEST_USER;
CREATE TABLE TEST_USER(
id int primary key not null,
name varchar(255),
age int,
sex varchar(2)
);
insert into  TEST_USER (id,name,age,sex) values(1,"测试名称1",8,"男");
insert into  TEST_USER (id,name,age,sex) values(2,"测试名称2",14,"男");
insert into  TEST_USER (id,name,age,sex) values(3,"测试名称3",13,"男");
insert into  TEST_USER (id,name,age,sex) values(4,"测试名称4",28,"男");
insert into  TEST_USER (id,name,age,sex) values(5,"测试名称5",13,"男");
insert into  TEST_USER (id,name,age,sex) values(6,"测试名称6",8,"男");
insert into  TEST_USER (id,name,age,sex) values(7,"测试名称1",28,"男");
执行结果:
执行结果,模拟数据
2.创建一个最基础的存储过程
CREATE PROCEDURE PBase()
BEGIN
SELECT * FROM TEST_USER;
END
执行结果:
基础1
执行基础的存储过程:
call PBase();
2
3.创建一个带输入参数的存储过程
DROP PROCEDURE IF EXISTS P1;
CREATE PROCEDURE P1(IN maxAge INT)
BEGIN
SELECT * FROM TEST_USER t WHERE t.age>maxAge;
END

调用:
call P1(10);
执行结果
4.创建一个带有输出参数的存储过程
drop PROCEDURE if exists P2;
create PROCEDURE P2(out total int)
begin
select count(id) into total from test_user;
end;
调用:
call p2(@out);
select @out
输出
5.创建一个带输入参数又带输出参数的存储过程
DROP PROCEDURE IF EXISTS P3;
CREATE PROCEDURE P3(IN maxAge INT,OUT total INT)
BEGIN
SELECT count(id) into total FROM  TEST_USER t WHERE t.age>maxAge;
END
执行:
3
6.创建一个即是输入又是输出参数并且喊判断语句的存储过程
DROP PROCEDURE IF EXISTS P4;
CREATE PROCEDURE P4(INOUT param INT)
BEGIN
IF param = 10 THEN
SELECT count(id) into param FROM  TEST_USER t;
ELSE
SELECT count(id) into param FROM  TEST_USER t WHERE t.age<param;
END IF;
END

执行1:参数10
set @param=10;
call P4(@param);
select @param;

1111
执行:参数9
set @param=9;
call P4(@param);
select @param;
123

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
MySQL5.6数据库双机主从热备配置
前言本文主要讲解在Vert.x环境下与Mysql数据库连接和操作,实现基础的增删改查和事务,以及REST接口返回数据库中查询结果。项目引用之前的《Vert.x
Docker MySQL官方镜像启动默认初始化创建数据库,docker MySQL初始化sql脚本执行,初始化用户sql脚本version: "3.8"netw
背景最近有些数据需要处理下,用程序来跑也简单,但是想着能否直接通过数据库来处理。就有了本文的MySQL replace 字符串替换函数使用教程了。MySQL replace 使用参考语句:UPD...
Centos MySql数据库找回root密码
MySQL 8创建数据库用户和之前的版本不一样,之前的版本参考这一篇。
centos6.5安装MySQL 5.6版本,并配置数据了链接数量数据库默认字符集utf8mb4支持Emoji表情4字节内容
mysql 数据库备份与还原命令1&gtl;导出某个数据库表结构(其他说明:-u 后面的root为用户名,-p后面的password为用户密码,dbname数据库名称)
Docker MySQL数据库备份脚本参考 title(backup.sh)#!/bin/sh# useage# /path/to/backup.sh dbNa
由于某些原因,数据库某个表某个字段可能会很大。大了就会引发一个问题,默认的数据库单子段大小是有限制的。版本不同限制的默认值不同。拿我的MySQL 5.6 来说安装后默认的配置是单子段4MB大小
PowerDesigner 16.5 驱动问题描述 在菜单 database-&gtl;Connect..-&gtl;Connect profile-&gtl;Configure 下配置/新增...
在导入sql备份文件到MySQL数据库中,无论物理机安装MySQL还是docker环境安装的MySQL,思路是一样的。首先,登录进入MySQL如果是物理的,则直接执行命令mysql-u-p&gt...
在MySQL或者各种数据库中,都很大可能使用到日期类型。在Java代码中进行日期转换还是比较容易的。但是大多数时候日期的参数都是字符串。而且在工具中使用字符串的方式来表达时间比较方便。这里记录下...
MySQL慢查询优化_MySQL慢查询排查_MySQL慢查询设置配置