存储过程类似一个存储在数据库的一个数据库脚本。它类似一个方法,可以批量执行一些数据库的操作。

本文编写一个简单的存储过程来快速了解存储过程。

1.因为存储过程类似编程语言的方法,所以方法中可能会用到 ; 运算符来标志一条语句的结束。这和mysql命令行语句结束标志 ; 是冲突的。为了在命令行中编写存储过程,我们先更改mysql语句的结尾标志:

mysql> delimiter $

执行这条语句之后,mysql语句的结尾标识符就被定义成了 $ 。这样就避免了定义存储过程中标识符冲突的问题。

例如查询语句 select * from student; 定义后需输入 select * from student $ 才能执行。

2.定义存储过程语句

create procedure addstudent(in maxsize int)
 begin
 declare var int;
 );
 declare sch_id int;
 );
 ;
 while var < maxsize do
 set stu_name = 'rockderia';
 ;
 set cls_name = '一年一班';
 insert into student (CName, SchoolID, ClassName) values (stu_name, sch_id, cls_name);
 ;
 end while;
 end;
$

结尾的$标志着定义完成。我们可以看到,创建存储过程的大体模式和创建表类似,而本体又和一个脚本方法类似。有几点区别特别注意:

[1]需要使用mysql自己的基本变量类型。

[2]变量类型放在变量名的后边。

[3]定义变量语句(例如:declare var int;)要位于所有语句之前。

上述语句其实不难理解,也没有用到太多的特性,主要就是了解以下存储过程的使用过程。

3.定义成功后,我们可以调用这个存储过程

mysql)$

上述的方法会插入10条数据。

4.存储方式不支持覆盖,所以需要修改的时候直接删除旧的存储方式在重新创建即可。

drop procedure addstudent$

5.当然,没有冲突操作的时候我们可以把结尾标识符改回来

mysql> delimiter ;

mysql 存储过程简介的更多相关文章

  1. mysql存储过程简介

    创建存储过程CREATE PROCEDURE productpricing(OUT pl DECIMAL(8,2),OUT ph DECIMAL(8,2),OUT pa DECIMAL(8,2))BE ...

  2. MySQL存储过程简介和引擎说明

  3. MySQL 存储过程

    MySQL 存储过程 存储过程是通过给定的语法格式编写自定义的数据库API,类似于给数据库编写可执行函数. 简介 存储过程是一组为了完成特定功能的SQL语句集合,是经过编译后存储在数据库中. 存储过程 ...

  4. mysql存储过程详解

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  5. mysql 存储过程详解 存储过程

    mysql存储过程详解 1.      存储过程简介         我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成 ...

  6. MySQL存储过程详解 mysql 存储过程

    原文地址:MySQL存储过程详解  mysql 存储过程作者:王者佳暮 mysql存储过程详解 1.     存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...

  7. MySQL存储过程详解 mysql 存储过程(二)

    mysql存储过程详解 1.      存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...

  8. mysql存储过程详解[转]

    1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...

  9. MySQL存储过程 游标

    MySQL存储过程  游标 如何在存储过程中使用MySQL游标来遍历SELECT语句返回的结果集 MySQL游标简介 要处理存储过程中的结果集,请使用游标.游标允许您迭代查询返回的一组行,并相应地处理 ...

随机推荐

  1. 一种构造WEB服务器端recv和send接口阻塞现象的方法

    send阻塞 socket recv send接口阻塞,会导致服务器端不在响应客户端任何请求,所以一般情况, 会将socket设置为非阻塞状态, 但是有些场景,例如ssl_accept就需要使用阻塞的 ...

  2. OleContainer控件介绍

    OLEContainer 控件的主要属性 1)  AllowInPlace              property AllowInPlace:Boolean;        这个属性用于决定启动O ...

  3. 写在开始编写Java之前(2)——Java的环境

    上回说到Java具有跨系统性的特点 但是每个系统还是有其Java虚拟机,叫做JVM 其中Java运行环境(JRE)中就包括了JVM 假如你只要运行已经编辑好的Java语句,只要下载JRE就行了 但是作 ...

  4. objective-c第六章课后练习6

    题6:接受从终端输入的整数,提取并用英语显示这个数的每一个数字,如932,显示nine three two (题目中注了.这个练习很难)的确有点难,自己想了很久网上也各种搜索.也算是找到参考了 cod ...

  5. PHP安全性

    一.防sql注入 用户通过输入完整的字符,来和sql语句拼接成带有破坏性的sql语句,服务器执行该语句,造成破坏. 1使用mysql_real_escape_string()过滤数据,该方法在未来版本 ...

  6. PHP二维数组提取函数----把不需要的数据剔除

    首先说明一些这个函数的应用场景,比如说你得到的数据是个二维数组,里面的很多成员其实是不必要的,比如说api调用后不必要给别人返回一些用不到的垃圾数据吧,如下是代码. <?php /* * del ...

  7. 十六、Java基础---------集合框架之Set

    写在前面的话,这篇文章在昨天就写好了,今天打开的时候一不小心将第二天的文章粘贴到了这篇文章,很不幸的是除了标题之外依然面目全非,今天带着沉痛的心情再来写这篇文章! 上篇文章介绍了Collection体 ...

  8. Intel+Ardruino 101 翻转时点灯

    /*  ===============================================  Example sketch for CurieIMU library for Intel(R ...

  9. JAVA下的Thread.sleep方法一定要try

    try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } 不同于C#,JAVA里的Thre ...

  10. C# 使用 Abot 实现 爬虫 抓取网页信息 源码下载

    下载地址 ** dome **