创建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