最近发现有张用户信息表中的性别字段 由于之前的问题 没有正确维护进数据库中 现在需要维护下 本想直接写个程序跑一下
想想用Mysql来实现应该会很有意思 所以决定用存储过程来完成字段的维护,顺便复习下存储过程的使用
什么是存储过程
存储过程(Stored Procedure) 是一组为了完成特定功能的 SQL 语句集合
它主要用来完成 CURD
操作 其中可以使用流程控制语句 来完成复杂的判断和 复杂的运算等
在经过编译后可以存储在数据库中 用户可以通过调用存储过程(传入相关参数[并不是必须]) 来调用它
存储过程和函数的区别
1.函数必须要有返回值, 而存储过程没有这个限制
2.函数只能返回一个变量, 而存储过程可以返回多个
3.函数的参数只有 in类的 就是输出参数, 而存储过程可以有 In Out Input 3种类型参数
4.函数中不能进行修改全局数据库状态的操作,而存储过程可以
5.函数可以做为查询语句的一部分来使用,而存储过程不可以
创建存储过程
先上个例子
|
|
讲解:
(1)这里需要注意的是DELIMITER//和DELIMITER;两句,DELIMITER是分割符的意思,因为MySQL默认以”;”为分隔 符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当 前段分隔符,这样MySQL才会将”;”当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。
(2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有3个参数 第一个参数s 是输入参数 varchar类型, 第二个参数是ss 是输出参数 第三个参数sss 类型是输入输出参数, 你可以随便定义自己需要的参数 不要按照上面的顺序 上面例子参数不是必须的
存储过程的调用
|
|
存储过程完成表信息字段维护
回到开局问题 下面用存储过程来完成员工表中性别字段的维护
包含了mysql 的循环 条件判断 字符串函数截取等
|
|
关于存储过程的使用基本就这样了
参考文档:
https://www.jianshu.com/p/7b2d74701ccd
https://www.jianshu.com/p/53a12af46836
http://www.cnblogs.com/chenmh/p/5201473.html
感谢大家的分享