`

初识存储过程

阅读更多

示例存储过程如下

DELIMITER //
DROP PROCEDURE IF EXISTS  `curdemo` //
CREATE PROCEDURE curdemo()
BEGIN
  DECLARE done INT DEFAULT 0;
  DECLARE a CHAR(16);
  DECLARE b,c INT;
  DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
  DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
 
  OPEN cur1;
  OPEN cur2;
 
  REPEAT
    FETCH cur1 INTO a, b;
    FETCH cur2 INTO c;
    IF NOT done THEN
       IF b < c THEN
          INSERT INTO test.t3 VALUES (a,b);
       ELSE
          INSERT INTO test.t3 VALUES (a,c);
       END IF;
    END IF;
  UNTIL done END REPEAT;
 
  CLOSE cur1;
  CLOSE cur2;
END //
DELIMITER ;
 

 

20.2.11.1.声明光标

DECLARE cursor_name CURSOR FOR select_statement

这个语句声明一个光标。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字。

SELECT语句不能有INTO子句。

 

20.2.11.2. 光标OPEN语句

OPEN cursor_name

这个语句打开先前声明的光标。

 

20.2.11.3. 光标FETCH语句

FETCH cursor_name INTO var_name [, var_name] ...

这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针。

光标必须在声明处理程序之前被声明,并且变量和条件必须在声明光标或处理程序之前被声明。

 

20.2.11.4. 光标CLOSE语句

CLOSE cursor_name

这个语句关闭先前打开的光标。

如果未被明确地关闭,光标在它被声明的复合语句的末尾被关闭。

20.2.11.5. 自动结束光标

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;

当光标取不到数据就 SET done = 1;

20.2.11.6. delimiter命令

DELIMITER //

delimiter命令来把语句定界符从 ;变为//。这就允许用在程序体中的;定界符被传递到服务器而不是被mysql自己来解释。

20.2.11.7. DROP PROCEDURE IF EXISTS 

DROP PROCEDURE IF EXISTS 

这个语句被用来移除一个存储程序或函数。即,从服务器移除一个制定的子程序。

 

 

参考:http://dl.iteye.com/topics/download/82db8bb1-7c55-3e74-9f56-de5f8e004ded

 

 

分享到:
评论

相关推荐

    初识PostgreSQL存储过程

    **初识 PostgreSQL 存储过程** 在数据库管理领域,存储过程是不可或缺的一部分,它是由一组预编译的 SQL 语句组成,用于执行特定任务。根据百度百科的定义,存储过程是在大型数据库系统中,一组为了完成特定功能的 ...

    《初识数据结构》教学建议.pdf

    2. 在教学过程中,注意将理论与实践相结合,利用存储单元将常见数据结构进行讲解。 3. 明确不同的数据类型在计算中占据的存储空间,帮助学生更好地理解数据类型的值范围和对应操作。 4. 引导学生经历建立数据模型、...

    初识计算机PPT课件.pptx

    "初识计算机PPT课件" 计算机的基本概念: 计算机是一种电子设备,能够执行用户的指令,进行数据处理和存储。计算机的种类很多,可以分为台式计算机、便携式计算机、掌上计算机等。 台式计算机: 台式计算机是一...

    初识excel教学设计

    【初识Excel教学设计】 Excel是一款广泛应用于数据管理和分析的电子表格软件,对于初学者来说,理解其基本功能和操作是至关重要的。本教学设计针对初中信息技术课程,旨在引导初一学生逐步熟悉Excel,帮助他们建立...

    c语言初识详解

    C语言初识详解 C语言,一种强大的、通用的编程语言,是计算机科学教育和实际开发中的基础。它以其简洁的语法和高效的执行而闻名,是理解和学习其他编程语言的基础。对于初学者来说,理解C语言的核心概念至关重要,...

    云计算 云存储 存储基础 PPT

    文件的写入和读取是操作系统与存储设备之间的交互过程,操作系统会将文件写入到存储设备中,并读取存储设备中的文件。 云计算云存储 云计算云存储是基于云计算技术的存储解决方案,提供了高可靠性、高可扩展性和高...

    初识Python1.docx

    ### 初识Python #### Python简介 Python是一种高级编程语言,以其简洁明了的语法而闻名,这使得它成为新手入门编程的理想选择。作为一种多范式的语言,Python支持多种编程风格,包括面向对象编程、过程化编程以及...

    初识文件.zip

    在IT行业中,文件是数据和信息的基本载体,...掌握文件类型、扩展名和压缩技术,能帮助我们更高效地工作,无论是在开发、测试还是数据管理的过程中。希望这次的初识文件之旅,能为你打开一扇通向更广阔IT世界的大门。

    初识文件分析.zip

    - `初识文件分析.dsp`:这是Visual Studio 6时代的项目文件,存储了关于工程设置、编译选项、链接器设置等信息。 - `初识文件分析.dsw`:同样来自Visual Studio,它是工作区文件,管理一个或多个相关项目的集合。 ...

    初识大数据_课件.pptx

    数据存储是指将采集到的数据存储在分布式系统中的过程,包括Hadoop、ODPS/飞天流式计算引擎等技术。数据处理是指对采集到的数据进行处理和分析的过程,包括数据分析与挖掘、数据可视化等技术。 大数据的关键领域 ...

    初识MyBatis

    MyBatis 是一个支持普通 SQL 查询、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索。MyBatis 使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 ...

    幼儿园计算机课程《初识计算机》.pptx

    《初识计算机》这门幼儿园课程旨在引导孩子们初步了解计算机的发展历程、基本组成部分以及其可能的应用。以下是课程中的主要知识点: 1. 计算机发展过程: - 结绳记事:这是人类早期的一种计数方式,是计算概念的...

    初识计算机教学设计.doc

    【初识计算机教学设计】 本教学设计针对高一新生,旨在引导学生深入理解计算机的硬件构成,提升他们的实践能力和团队协作精神。课程开始时,通过播放计算机硬件的视频,激发学生对计算机内部结构的好奇心,进而鼓励...

    初识mybatis的项目

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。在初识 MyBatis 的项目中,我们将深入理解这个框架的核心功能和优势,以及如何将其应用于实际的 Java Web 开发中。 MyBatis 的主要特点...

    初识java.zip

    它包含的资源可能包括教学演示案例、上机练习参考答案以及课后作业参考答案,这些都是学习过程中非常重要的组成部分。 第一章"初识Java"通常会涵盖以下基础概念和知识点: 1. **Java的历史与特点**:Java由Sun ...

    初识oracle11g

    PL/SQL是一种过程化语言,用于编写数据库操作的存储过程、函数和触发器,增强了数据库的可编程性。 4. **数据库备份与恢复** Oracle 11g提供了多种备份策略,包括完整备份、增量备份和差异备份。RMAN(Recovery ...

    头歌初识redis答案

    本篇文章将围绕《头歌初识Redis答案》的内容进行展开,详细介绍Redis的基础知识、数据类型及操作、事务与监视机制、持久化策略以及主从同步等方面的内容。 #### 基础概念 - **内存存储**:Redis主要基于内存进行...

Global site tag (gtag.js) - Google Analytics