7 MySQL存储过程和函数
目录:
1. 存储过程和函数概述
2. 准备工作
3. 存储过程操作
4. 创建带参存储过程
5. 查看存储过程
1. 存储过程和函数概述
  MySQL的存储过程(stored procedure)和函数(stored function)统称为stored routines。
  存储过程和函数都是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输。
  存储过程和函数的区别在于函数必须有返回值,而存储过程没有,存储过程的参数可以使用IN、OUT、INOUT类型,而函数的参数只能是IN类型。
2. 准备工作(为了提高没小节的独立性,该准备工作会在后续指导中反复用到)
创建表,掺入数据
drop table if exists student; create table student (
id int(5) not null,
name varchar(20),
birthday date
); insert into student values(1, 'guo jing', '1990-01-01');
insert into student values(2, 'huang rong', '1992-02-02');
insert into student values(3, 'ling hu', '1993-03-03');
insert into student values(4, 'dong fang', '1994-04-04');
3. 存储过程操作
3.1 创建存储过程
  选择schoolDB数据库,并在SQL编辑中输入如下代码:
create procedure get_young()
begin
select * from student where birthday in (select max(birthday) from student);
end//
(注意更改delimiter为 //)
  
  3.2查看存储过程
show procedure status;
  

  
  3.3 在SQL编辑框中调用存储过程
call get_young();
(注意:返回错误,目前不清楚如何更改,但经试验,在MySql Command Line Client中可以成功调用该存储过程。)
  
  3.4 使用MySql Command Line Client调用存储过程
点击win7左下开始项,在搜索框中输入mysql,点击进入MySql Command Line Client。
  call get_young(); 
  调用成功。

但在 MySql Command Line Client 中创建存储过程中需注意,因为MySql Command Line Client中需要用语句更改delimiter,mysql中默写分界符是; ,但select 语句末有;冲突,需要修改分界符。
delimiter //
create procedure get_old()
begin
select * from student where birthday in (select min(birthday) from student);
end//
delimiter ;
  
4. 创建带参存储过程
在MySQL命令行中输入
delimiter //
create procedure get_by_year(IN year_in varchar(4))
begin
select * from student where year(birthday)=year_in;
end //
delimiter ;
调用该存储过程
call get_by_year();
返回错误,提示需要带入参数。
  
call get_by_year(1990);
调用成功!
  
5. 查看存储过程
show procedure status;
  
6. 删除存储过程
drop procedure get_old;
7 MySQL存储过程和函数的更多相关文章
- MYSQL存储过程和函数学习笔记
		
学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆课程笔记的综合. 1. 什么是存储过程和函数 将SQL语句放入一个集合里,然后直接调用存储过程和函数来执行已经定义好的SQL语句,通过存储过程和 ...
 - Paip.断点调试MYSQL存储过程跟函数的解决方案大法
		
Paip.断点调试MYSQL存储过程跟函数的解决方案大法 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn ...
 - Mysql存储过程和函数
		
Mysql存储过程和函数 基本概念: 创建存储过程和函数是指将经常使用的一组SQL语句的组合在一起,并将这些SQL语句当作一个整体存储在MySQL服务器中.例如,银行经常需要计算用户的利息.不同类别的 ...
 - MySql存储过程与函数详解
		
存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在MyS ...
 - Mysql - 存储过程/自定义函数
		
在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...
 - MySQL 存储过程和函数
		
概述 一提到存储过程可能就会引出另一个话题就是存储过程的优缺点,这里也不做讨论,一般别人问我我就这样回答你觉得它好你就用它.因为mysql中存储过程和函数的语法非常接近所以就放在一起,主要区别就是函数 ...
 - Mysql 存储过程、函数、触发器和视图的权限检查
		
当存储过程.函数.触发器和视图创建后,不单单创建者要执行,其它用户也可能需要执行,换句话说,执行者有可能不是创建者本身,那么在执行存储过程时,MySQL是如何做权限检查的? 在默认情况下,MySQL将 ...
 - Mysql 存储过程和函数区别
		
存储过程是procedure用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表. 存储 ...
 - MySQL 存储过程和函数(转)
		
概述 一提到存储过程可能就会引出另一个话题就是存储过程的优缺点,这里也不做讨论,一般别人问我我就这样回答你觉得它好你就用它.因为mysql中存储过程和函数的语法非常接近所以就放在一起,主要区别就是函数 ...
 
随机推荐
- Android开源项目总结
			
Android开源项目--分类汇总 Android开源项目第一篇--个性化控件(View)篇 包含ListView.ActionBar.Menu.ViewPager.Gallery.GridView. ...
 - shell文字过滤程序(十一):paste命令
			
[版权声明:转载请保留源:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 由于可以从字面上可以看出.paste指挥和cut相反的命令.cut ...
 - java线 生产者和消费者
			
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdydWkxOTg4/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
 - SEO要领:8文章主持技巧(两)
			
续篇:搜索引擎优化要领:8条辅助技巧(一) 四.检查你的robots.txt文件 与谷歌的蜘蛛通信的经常用法是使用robots.txt文件. 这是一个文本文件.同意你告诉搜索引擎,你的站点的网页上抓取 ...
 - Session与Caching
			
Session与Caching 在之前的版本中,Session存在于System.Web中,新版ASP.NET 5中由于不在依赖于System.Web.dll库了,所以相应的,Session也就成了A ...
 - Swift # 异常处理
			
面向轨道编程 - Swift 中的异常处理 问题 在开发过程中,异常处理算是比较常见的问题了. 举一个比较常见的例子:用户修改注册的邮箱,大概分为以下几个步骤: 接收到一个用户的请求:我要修改邮箱地址 ...
 - Windows系统下Redis的安装
			
Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. 最近 ...
 - easyui dataBox 增加一天,减少一天
			
<table> <tr> <td><a href="javascript:void(0)" class="easyui-link ...
 - LeetCode——N-Queens II
			
Follow up for N-Queens problem. Now, instead outputting board configurations, return the total numbe ...
 - C++并发编程学习笔记<1>  入门
			
入门 多线程C++程序是什么样子的? 它看上去和其它全部C++程序一样,一般是变量.类以及函数的组合. 唯一真正的差别在于某些函数能够并发执行, 当然.为了并发地执行函数,必须使用特定的函数以及对象来 ...