之前做项目的时候,项目组中有成员在大数据量搜索的时候使用了存储过程。但是没有仔细了解,今天突然使用到它,所以就稍微学习了一下。
本来是要用PL/SQL developer编写Oracle10g的存储过程去调用一台远程服务器的,突然发觉我本机上没装Oracle,用不了PL/SQL developer(这是哪门子设计啊,百度了一下,发现有办法不装Oracle而使用developer.可是还要下什么文件,网友给的下载链接又失效了),索性用mySQL的工具来写mySQL的存储过程。我使用的工具是SQLyog企业版。
在一个数据库中新建一个user库,有姓名,财产什么的,然后再建一个存储过程,将代码写上去
DELIMITER $$
USE `nn`$$
DROP PROCEDURE IF EXISTS `addMoney`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `addMoney`(IN xid INT(5),IN xmoney INT(6))
BEGIN
UPDATE USER u SET u.money = u.money + xmoney WHERE u.id = xid;
END$$
DELIMITER ;
恩,然后执行一下这些sql语句,一个存储过程就建起来了。
解释一下, 基本的格式就是 create procedureName(in paramentName type, in paramentName type,……)
创建一个叫procedureName的存储过程,然后再begin和end之间写处理逻辑。
恩,最后要试看看这个存储过程能用不了啊。
CALL addMoney(1, 500);useruseraddMoney
给id是1的人发500元钱,不错哈……
这里要注意,MySQL的存储过程调用是用CALL,而oracle的貌似使用execute的……
by NN 2009-10-13
分享到:
相关推荐
存储过程的参数一般由 3 部分组成:第一部分可以是 in、out 或 inout。in 表示向存储过程中传入参数;out 表示向外传出参数;inout 表示定义的参数可传入存储过程,并可以被存储过程修改后传出存储过程,存储过程...
### MySQL存储过程实现分页 #### 背景与需求 在数据库操作中,分页是一种常见的需求,尤其是在处理大量数据时。通过分页技术,可以有效地减少每次...总之,利用MySQL存储过程实现分页是一个非常实用且高效的方法。
然而,随着数据量的增长,直接使用OFFSET进行分页可能会变得效率低下,因为MySQL需要遍历从第一条记录到OFFSET指定的位置,这在大数据量下极其耗时。为了解决这个问题,我们可以利用MySQL的ROW_NUMBER()函数或者自增...
4. 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用。 创建存储过程的示例: CREATE PROCEDURE getnamebysno(in xh char(10), out name char(20)) BEGIN SELECT sname INTO ...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者封装一系列SQL语句并作为一个单元来执行,提高了数据库操作的效率和代码的复用性。在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环...
根据提供的文件信息,我们可以深入探讨 MySQL 存储过程的相关知识点,包括存储过程的创建、调用、删除,以及其中常用的一些流程控制语句和函数。 ### 一、MySQL 存储过程简介 #### 1. 创建存储过程 存储过程是一种...
MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者编写一系列复杂的SQL语句,封装成一个可重用的模块,以便在需要时调用。在处理大量数据时,特别是进行分页查询,存储过程可以提高效率,减少网络传输,...
根据给定的信息,我们可以深入探讨PHP与MySQL存储过程的相关知识点,包括如何在MySQL中使用`CONCAT`函数、创建存储过程以及如何通过PHP脚本来调用这些存储过程。 ### 使用 CONCAT 函数 #### 标题中的示例 ```sql ...
通过上述示例,我们可以看到,使用MySQL存储过程实现分页查询不仅能够提高查询效率,还能简化应用程序逻辑,增强系统的可维护性和可扩展性。然而,设计存储过程时也需要注意安全性,避免SQL注入等风险,确保数据库...
MySQL存储过程是数据库管理系统中一组为了完成特定功能的SQL语句集,它可以被命名、保存并在需要时调用,极大地提高了数据库开发效率和程序的可维护性。在Java应用程序中,我们经常使用JDBC(Java Database ...
一、什么是MySQL存储过程? 在大型项目中,有时候需要重复执行能够完成特定功能的SQL语句集,而MySQL为我们提供了存储过程的概念,存储过程是数据库中的一个重要对象,它是存储在数据库中的一组完成特定功能的...
- count_sch5: 该存储过程接收一个输出参数size,返回表sch中的总行数。使用了“select count(*) into size from sch”语句,将表sch中的行数赋值给size变量。 - count_sch2: 接收两个输出参数s_a和s_id,分别返回表...
首先,针对(1)统计离散数学成绩分布的问题,创建了一个名为SCC的表来存储各分数段的人数。通过插入语句初始化了表结构,然后利用存储过程计算不同分数段(>90, >80, >70, >60, )的学生人数。在这个过程中,使用了...
1. **性能提升:** 存储过程在第一次执行时会被编译,后续调用时只需要执行已编译的代码,从而提高了执行效率。 2. **代码重用:** 存储过程可以被多次调用,减少了重复代码的编写。 3. **安全性和封装性:** 可以通过...
`ExecuteScalar()` 方法返回的是存储过程的第一行第一列的值,非常适合获取存储过程的返回值。 三、返回结果集合的存储过程 对于返回结果集的存储过程,我们可以使用 Dapper 的查询功能将其转换为强类型列表。以下...
1. **性能提升**:存储过程在第一次执行时会被编译成计划,并存储在数据库缓存中,后续执行时可以直接调用,无需重新编译,从而提高了执行效率。 2. **复用性**:通过存储过程,可以封装重复使用的代码逻辑,避免...
MySQL存储过程和函数是数据库管理中的重要组成部分,它们允许用户在数据库中定义并执行复杂的操作。本章将详细探讨这两个概念及其应用。 1. 存储过程与存储函数的区别: - 存储过程功能更全面,可以处理复杂的业务...
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、...
在这个示例中,`while (rs1.next())`循环遍历第一个结果集,并打印出每个结果。 6. **处理额外的结果集**: 如果存储过程返回多个结果集,可以通过`getMoreResults()`检查是否有更多结果集。如果有,再次调用`...
创建另外一个存储过程sell_update,在其中调用第一个存储过程,如果给定参数为0,则修改由第一个存储过程插入记录的是否发货字段为'已发货',如果给定参数为1则删除第一个存储过程插入的记录,并将操作结果输出。...