MySql存储过程基本使用
2022-05-25 23:19
1506 查看
一、数据准备
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for users -- ---------------------------- DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键', `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '用户名', `sex` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '性别', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; INSERT INTO `users`(`id`, `user_name`, `sex`) VALUES (1, '张学友', '男'); INSERT INTO `users`(`id`, `user_name`, `sex`) VALUES (2, '迪丽热巴', '女'); INSERT INTO `users`(`id`, `user_name`, `sex`) VALUES (3, '周杰伦', '男'); INSERT INTO `users`(`id`, `user_name`, `sex`) VALUES (4, '杨幂', '女');
二、入门案例
DROP PROCEDURE IF EXISTS proc1; delimiter $$ create procedure proc1() begin SELECT * from users; end $$ delimiter ; call proc1();
三、参数传递in
DROP PROCEDURE IF EXISTS proc1; delimiter $$ create procedure proc1(in in_username VARCHAR(100)) begin SELECT * from users WHERE user_name=in_username; end $$ delimiter ; call proc1('迪丽热巴');
四、参数传递out
DROP PROCEDURE IF EXISTS proc1; delimiter $$ create procedure proc1(in in_username VARCHAR(100),out out_sex VARCHAR(20)) begin SELECT sex into out_sex from users WHERE user_name=in_username; end $$ delimiter ; call proc1('迪丽热巴',@user1); select @user1 as '性别';
五、参数传递inout
inout表示从外部传入的参数经过修改后可以返回的变量,既可以使用传入变量的值也可以修改变量的值(即使函数执行完)
DROP PROCEDURE IF EXISTS proc1; delimiter $$ create procedure proc1(inout inout_username VARCHAR(100),inout inout_sex VARCHAR(20)) begin SELECT CONCAT(user_name,'_',sex) into inout_username from users WHERE user_name=inout_username; set inout_sex=CONCAT(inout_sex,'人'); end $$ delimiter ; set @inout_username='xiaohemiao'; set @inout_sex1='男'; call proc1(@inout_username,@inout_sex); select @inout_username; select @inout_sex;
相关文章推荐
- mysql存储过程的基本使用
- Mysql存储过程------存储过程的基本概念和基本使用方法
- MySQL - 28存储过程的基本使用
- MySQL 存储过程和"Cursor"的使用方法
- mysql存储过程基本函数
- mysql存储过程中不能使用return的解决办法
- 使用MySQL存储过程连续插入多条记录
- MySQL 存储过程的基本用法
- 【mysql】mysql存储过程in、out、inout参数使用
- mysql存储过程使用递归
- (zz)mysql存储过程基本函数
- MySql 存储过程使用游标循环插入数据示例
- mysql 存储过程中 使用变量做表明[学习记录]
- mysql 存储过程中不能使用 return 的解决办法
- mysql存储过程基本函数
- mysql的存储过程使用和语法
- 使用PHP调用MySQL的存储过程
- MySQL 存储过程的基本用法
- mysql存储过程中使用临时表
- Mysql存储过程中游标的使用以及错误处理