8,mysql存储过程和存储函数
来源:互联网 发布:用c语言编写乘法口诀 编辑:程序博客网 时间:2024/06/01 07:47
存储过程和存储函数是一些被用户定义的SQL语句的集合
存储过程可以被程序,触发器,或两外一个存储过程调用。
特点是执行速度快,提高系统性能,确保数据库安全等优点
1,创建存储过程
首先在创建存储过程中的时候需要用到分号,所以需要将结束标识符“;”更改为其他的符号,下面的语句用来更换结束标志符
第一句 delimiter //声明 //为结束标志符, 所以在第二个SQL语句中用//代替了;来结束SQL语句
- mysql> delimiter //
- mysql> select * from user //
- +----+----------+----------+---------------------+
- | id | username | password | createtime |
- +----+----------+----------+---------------------+
- | 1 | kenan | kenan | 2012-10-31 15:32:26 |
- | 3 | kenan | lele | 2012-10-31 15:32:26 |
- | 4 | lele | lele | NULL |
- | 5 | 1 | 1 | NULL |
- +----+----------+----------+---------------------+
- 4 rows in set (0.00 sec)
下面创建一个存储过程
在这里呢,procedure是程序步骤的意思,可以理解为存储过程 ,count_user 就是要创建的存储过程的名字()内的东西是存储过程的参数,调用存储过程的时候需要往存储过程里输入一些东西,同样存储过程也会外输出结果,在这里 有一个参数是 out count int 首先 out表示是输出参数(in表示输入参数),count是参数的名字int呢,是参数的类型reads sql data 表明这个存储过程下面要用sql读取数据begin和 end 用来标示存储过程的语句块的开始和结束中间有一个SQL语句 select count(*) into count from userinto count 表明要把查询出来的count(*)的结果存入到count中
- mysql> create procedure count_user (out count int)
- -> reads sql data
- -> begin
- -> select count(*) into count from user;
- -> end
- -> //
- Query OK, 0 rows affected (0.14 sec)
2,创建存储函数,和创建存储过程基本一样,只是有一点的差别
这里创建存储函数的关键字是function,get_username是函数的名字,()内的是函数的参数,user_id int ,其中user_id是参数的名字,int 是参数的类型 和创建存储过程不同的是在创建存储函数的时候需要有返回值的,在创建存储函数的时候,括号内的参数相当于全部是输入参数,而returns返回值才是输出结果begin和end同上这里返回的是根据参数user_id查询出来的username
- mysql> create function get_username(user_id int)
- -> returns varchar(50)
- -> begin
- -> return (select username from user where id = user_id);
- -> end
- -> //
- Query OK, 0 rows affected (0.09 sec)
3,调用存储过程
在这里@后面即一个字符串,表明一个会话变量,在MYSQL中会话变量不用声明即可使用,会话变量在整个过程中都有效,在这里,调用了存储过程,然后把结果存入了会话变量中,然后查询会话变量,即可查询到结果
- mysql> call count_user(@s)//
- Query OK, 1 row affected (0.00 sec)
- mysql> select @s
- -> //
- +------+
- | @s |
- +------+
- | 4 |
- +------+
- 1 row in set (0.00 sec)
4,调用存储函数
这里直接用select加上函数名即可,然后把需要传入的参数传入
- mysql> select get_username(1)//
- +-----------------+
- | get_username(1) |
- +-----------------+
- | kenan |
- +-----------------+
- 1 row in set (0.06 sec)
本文出自 “Kenan_ITBlog” 博客,请务必保留此出处http://soukenan.blog.51cto.com/5130995/1050407
- 8,mysql存储过程和存储函数
- mysql之存储过程和存储函数
- mysql,存储过程和存储函数
- MySQL存储过程和存储函数
- Mysql-存储过程和存储函数笔记
- mysql 存储过程 和存储函数
- MySQL存储过程和存储函数
- MYSQL存储过程和存储函数入门
- MySQL 存储过程和存储函数示例
- Mysql中的存储过程和存储函数
- mysql的存储函数和存储过程
- MySQL 存储过程和存储函数示例
- mysql存储过程和函数
- mysql存储过程和函数
- Mysql 存储过程和函数
- MySQL-存储过程和函数
- MySQL存储过程和函数
- MySQL存储过程和函数
- 4,mysql常用的数据类型
- (一)开发板系统安装
- 5,mysql数据库操作和SQL语言
- 6,mysql查询语句,select查询
- 7,mysql视图
- 8,mysql存储过程和存储函数
- android基础知识——从头开始
- 9,mysql触发器
- 10,mysql事务管理
- 11,MySQL数据的备份和还原
- 12,mysql应用程序设计接口,java-JDBC技术
- 1,JQuery学习-页面加载的时候弹出对话框
- 2,JQuery学习-为页面的元素添加点击事件
- 3,JQuery几种常用的弹出层效果