他人理解+自理解+学习Mysql存储过程
来源:互联网 发布:阿里云怎么收费标准 编辑:程序博客网 时间:2024/05/01 03:31
作为一个水平无法溢出的菜鸟,还是老老实实认真学习的好。在系统的学习Mysql存储过程之前,还需要部分的解释一下Mysql中的一些在存储过程中出现的关键字以及语法的使用。
decimal(2,1) 指定义的数值含有两位有效长度,其中包含一位小数。DECLARE(declare)在mysql中是声明一个变量的意思。DEFAULT 在sql中为列插入默认值。
例:
DECLARE val int DEFAULT 6; 声明一个变量val,其类型为int,自定义默认值为6。
in :给参数传入值,定义的参数就得到了值。out:模式定义的参数只能在过程体内部赋值,表示该参数可以将某
个值传递回调用他的过程(在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值) inout:
调用者还可以通过 inout 参数传递值给存储过程,也可以从存储过程内部传值给调用者。
例:
CREATE PROCEDURE test (in type INT);/*将调用方法时传入的参数赋值给type*/
CREATE PROCEDURE avgid(OUT avgi DECIMAL(3,1) /*要输出的参数*/)BEGINSELECT AVG(id) INTO avgi FROM `user`; /*通过在过程内部将值赋予给参数*/END; CALL avgid(@avgi); /*调用该存储过程*/SELECT @avgi;/*获取查询值*/
关于inout的使用:
CREATE
PROCEDURE
p3(INOUT age
INT
)
BEGIN
SET
age := age + 20;
END
set
@currage =18
call p3(@currage)/*存储过程在调用currage的时候,会将该值直接赋值到存储过程中并执行(所谓的内部传
值)*/
以上是部分的功能说明,接下来是对存储过程的学习。个人认为,在学习任何技术之前一定要保证有这样的想法:该技术的作用是什么?与之前所学习的技术有什么关联或者重大的区别?是否有使用到之前的知识?首先了解存储过程是什么:存储过程就是有业务逻辑和流程的集合,可以在存储过程中创建表,更新数据,删除等等。其次存储过程通过把处理封装在容易使用的单元中,简化复杂的操作;由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果所有开发人员和应用程序都使用同一(试验和测试)存储过程,则所使用的代码都是相同的。使用存储过程,也大量的减少了错误保证数据的一致性;简化对变动的管理。如果表名、列名或业务逻辑(或别的内容)有变化,只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。下面是简单的存储过程实例:创建存储过程:CREATE PROCUDER procude_rname()BEGINSQL执行语句;EDN;call procedureName();/*调用存储过程*/DORP PROCEDURE IFEXISTS procedureName;/*删除存储过程,删除后面无需调用括号*/
带参的存储过程:
1. create procedure procedureName(
2. out min decimal(8,2),
3. out avg decimal(8,2),
4. out max decimal(8,2)
5. )
6. BEGIN
7. select MIN(price) INTO min from order;
8. select AVG(price) into avg from order;
9. select MAX(price) into max from order;
END;1. -- 由于过程指定三个参数, 故调用必须要参数匹配
call procedureName(@min, @avg, @max);
select @min, @avg, @max;以下为带条件语句的存储过程:CREATE PROCEDURE useif(in type INT) /*创建一个存储过程*/BEGINDECLARE c varchar(200);if type = 0 THENset c = '该参数值为 0';ELSEset c ='该参数值不为 0';END IF;SELECT c;END;set @type=1;call useif(@type);查询结果:以上为本次对存储过程的基础学习,只有掌握了基础才能够很好的进阶。
- 他人理解+自理解+学习Mysql存储过程
- mysql 存储过程理解
- 理解MYSQL存储过程
- [Mysql] 存储过程简单理解
- 存储过程参数理解
- 代码优化他人理解
- MySql-存储过程(理解为预处理多返回值函数)
- 关于T-SQL 存储过程的学习!!!(加深理解)
- 【数据库概览】理解存储过程
- 对于存储过程的理解
- 存储过程的个人理解
- 存储过程一些单词理解
- 学习理解的过程
- mysql 存储过程学习
- mysql 存储过程学习
- mysql 存储过程学习
- MySql学习存储过程
- MySql 存储过程学习
- opengrok源码浅析
- kernel初体验
- FieldII命令汇总(part)
- 网络流题目
- java错题mark_4
- 他人理解+自理解+学习Mysql存储过程
- js弹出框、对话框、提示框、弹窗总结
- 面向对象_基本概念(1)
- 四、C_base——基本语句
- 图 概述
- android studio的Android Monitor没有连接上--No Debuggable Processes
- MySQL How to add a column in a table?
- 架构、框架、模式、模块、组件、插件、控件、中间件的含义和区别
- ThinkPHP3.2.2-多文件上传