林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要:存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来运行已经定义好的SQL语句。存储过程和函数能够避免开发者反复的编写同样的SQL语句。而且,存储过程和函数是在MySQLserver中存储和运行的。能够降低client和server端的传输数据。一、存储过程1.1、基本的语法CREATE PROCEDURE sp_name ([proc_parameter[,...]]...
实际应用小例子之前所使用的存储过程基本上都是封装mysql 简单的select 语句。虽然它们全都是有效的存储过程例子,但只有在存储过程中包含业务规则和智能处理时,他们的威力才会真正显示出来如完成以下事情,获得与之前一样的订单合计,但需要对合计增加营业税,不过只针对某些顾客,主要就是:1、获得合计2、把营业税有条件的添加到合计 3、返回合计(带或不带税)存储过程的实现如下: delimiter $$-- 存储过程的名字时 : proc...
mysql存储过程详解1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行...
今天在mysql数据库中执行一个存储过程,由于没有安装mysql数据连接工具,只好在黑框框里执行然后就遇到下面的问题:一直说是我的存储过程的语法有问题,但是看了好久都没有看出问题,后来查了一上午资料才发生问题所在:在mysql中“;”会默认为是一句sql语句的结束,所以在使用source命令执行数据库脚本时,遇到“;”符号时,数据库会认为你一句sql语句写完了,他会自动执行这句,这时候就出问题了,要解决这个问题可以使用DELIM...
//顺序堆栈的操作实现
void StackInitiate(SeqStack *S)
{S->top=0;
}
int StackNotEmpty(SeqStack S)
{if(S.top<=0)return 0;else return 1;
}
int StackPush(SeqStack *S,DataType x)
{if(S->top>=MaxStackSize){printf("堆栈已满无法插入!\N");return 0;}else{S->stack[S->top] = x;S->top++;return 1;}
}
int StackPop(SeqStack *S,DataType *d)
{if(S->top<=0){printf("堆栈已空无数据元素出栈!\n");return 0;}else{S->top-...
工作需要,用到MYSQL的分页功能,在网上找到一个不错的分页存储过程,代码整理了一下! 存储过程代码CREATEPROCEDURE `sp_hj_splitpage`(in _pagecurrent int,/*当前页*/in _pagesize int,/*每页的记录数*/in _ifelse varchar(1000),/*显示字段*/in _wherevarchar(1000),/*条件*/in _ordervarchar(1000)/*排序*/
)
COMMENT ‘分页存储过程‘BEGINif _pagesize<=1thenset _pagesize=20;endif;if _pagecurrent <1thenset _pagecur...
断点续传、QQ等项目的数据保存在数据库中实现。本文出自 “作业” 博客,请务必保留此出处http://10718270.blog.51cto.com/10708270/1793274原文:http://10718270.blog.51cto.com/10708270/1793274
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。使用情况:比如有1万个请求都是做同一个业务;这个业务需要修改20个表的内容,那么不用存储过程,就是用一条一条的sql语句实现咯; 就算不直接用sql,也是间接使用吧;不管你有没有所谓的中间层业务处理服务器,它也要和数据库打交道吧;试...
declare startTime VARCHAR(19) default ‘2014-00-00 00:00:00‘;declare tempTime VARCHAR(19) default NOW();declare endTime VARCHAR(19) default DATE_SUB(tempTime,INTERVAL ‘3‘ MONTH); -- 后退三个月时间DECLARE MONTHSTR VARCHAR(7) default SUBSTR(endTime,1,7);set endTime=CONCAT(MONTHSTR,‘-00 00:00:00‘);SELECT startTime as startTime,endTime AS endTime;原文:http://www.cnblogs.com/cynchanpin/p/683530...
MySQL数据库新特性之存储过程入门教程在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力。在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用户入门。 存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量...
这个数据访问的功能,我在.NET+Mysql .NET+Sqlserver PHP+Mysql上都实现过,并且都发布在了我博客园里面,因为我觉得这个功能实在是太重要,会让你少写很多SQL语句不说,还能提高程序的执行效率, 今天在JAVA+Mysql上也实现了这个功能下面我贴出代码,这次我会讲详细点,让看的朋友能更加清楚它的好处在哪里。 一、封装的代码存储过过程调用方法 关于返回类CallableStatement的解释: CallableStatement 对象为所有的DBMS 提供了一...
MySQL一窍不通啊,今天工作上需要用到,请教了别人,做以备忘DROPPROCEDURE test_insert ;
DELIMITER ;;
CREATEPROCEDURE test_insert ()
BEGINDECLARE i INTDEFAULT0;WHILE i<10
DO
INSERTINTO CMS.CMS_Module
(
ModuleType,
ModuleName,
ModuleDescription,
DesignHTML,
QUERY
)
VALUES
(
‘2‘,
CONCAT(‘活动‘,i),
‘测试加入‘,
‘aaaaaaaaaa‘,
‘‘
);
SET i=i+1;
ENDWHILE ;END;;CALL test_insert(); 原文:http://...
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点有一箩筐。不过最主要的还是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句。特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高。一、MySQL 创建存储过程...
存储过程存储程序(英语:Stored Procedure),又称为存储过程,是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象,它可以视为数据库中的一种函数或子程序。优点存储程序可封装,并隐藏复杂的商业逻辑。存储程序可以回传值,并可以接受参数。存储程序无法使用 SELECT 指令来运行,因为它是子程序,与查看表数据表或用户定义函数不同。存储程序可以用在数据检验,强制实行商业逻辑等。缺点存储程序,往往定制于特定...
-- 测试手机号
call P_Base_CheckLogin(‘15584463676‘);-- 测试登录名
call P_Base_CheckLogin(‘sch000001‘)-- 测试身份证号
call P_Base_CheckLogin(‘080428402304032042‘)-- 测试学生手机号
call P_Base_CheckLogin(‘13019212198‘)drop PROCEDURE IF EXISTS P_Base_CheckLogin;
create procedure P_Base_CheckLogin(v_loginName VARCHAR(255))
label:
BEGIN -- 手机号匹配SELECT v_loginName REGEXP ...