创建不带参数的储存过程
CREATE PROCEDURE 过程名() 过程体 SELECT VERSION();
调用储存过程
第一种CALL 过程名(); (带有参数时使用)
第二种CALL 过程名; (不带参数时使用)
创建带有IN类型参数的存储过程 (创建前要先修改MYSQL的默认定界符为//,创建好后要修改回;)
第一步DELIMITER新的定界符如//
第二步CREATE PROCEDURE 过程名如removeUserByid(IN 参数名如id 数据类型如INT 字符类型如UNSIGNED)
第三步BEGIN
第四步DELETEFROM 表名 WHERE 数据表中的字段id=传递的参数id;
第五步END
第六步//
第七步DELIMITER原来的定界符;
删除程序
DELETE PROCEDURE 过程名;
删除存储过程
DROP PROCEDURE 过程名;
创建带有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 原来的定界符;
调用存储过程CALL 过程名如removeUserAndReturnUserNums(要删除的如21,剩下的总量如@nums);
查询剩下的总量SELECT @nums;
ROW_COUNT(); 可以查询到数据的插入.删除和更新的记录总数
创建带有多个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原来的定界符;
调用存储过程CALL 过程名如removeUserByAgeReturnInfos(要删除的如21,你要删除的数量如@nums,剩下的总量如@wang);
查询你要删除的数量和删除后剩下的数量
SELECT 如@nums,@wang;
查询剩下的总量SELECT @nums;
查询表中你要查询的字段数据有几条
SELECT COUNT(id) FROM 表名 WHERE 你要查询的字段如age=你要查询的数据如21;