MySQL存储过程实例教程2

合集下载

存储过程实例讲解

存储过程实例讲解

存储过程实例讲解嘿,朋友们!今天咱就来讲讲这存储过程。

你说这存储过程啊,就像是一个魔法盒子,里面装满了各种奇妙的代码和逻辑。

想象一下,你有一堆复杂的任务,就像要组装一个超级复杂的模型,零件多得让你眼花缭乱。

这时候,存储过程就出现啦!它把这些零散的代码片段整合在一起,变成一个有组织、有纪律的团队。

比如说,在一个大型的数据库系统里,你可能需要经常执行一些特定的操作,比如查询某些数据、更新某些记录等等。

如果每次都要重新写那些代码,多麻烦呀!但是有了存储过程,就相当于你有了一个专门的工具,只要调用它就可以轻松完成这些任务啦。

它就像是一个经验丰富的大厨,各种食材在它手里就能变成美味佳肴。

它把那些复杂的逻辑和步骤都封装起来,让我们这些使用者不用再去头疼那些细节。

再打个比方,你要去一个很远的地方旅行,你可以选择自己一点点摸索路线,也可以直接找一个专业的导游。

存储过程就是那个导游呀,它熟悉路线,知道哪里有好玩的,哪里要注意。

而且哦,存储过程还很灵活呢!你可以根据自己的需求随时修改它,就像给那个魔法盒子重新布置里面的东西一样。

它能适应各种不同的情况,是不是很厉害?你看,在实际应用中,很多企业都会用到存储过程。

它能提高效率,让整个系统运行得更加顺畅。

就像一辆汽车,有了好的发动机,才能跑得更快更稳嘛。

比如说,在一个电商网站上,处理订单的过程就可以用存储过程来优化。

从下单到发货,这中间有好多步骤呢,要是没有存储过程来帮忙,那得多乱呀!还有啊,在金融系统里,存储过程也发挥着重要的作用。

各种交易的处理、数据的计算,都离不开它呢。

总之,存储过程就像是数据库世界里的一颗璀璨明星,照亮了我们前进的道路。

它让我们的编程工作变得更加轻松、高效,真的是太棒啦!大家可千万别小看它哦,好好去研究研究,你一定会发现它更多的神奇之处的!怎么样,是不是对存储过程有了更深的了解呢?还等什么,赶紧去试试吧!。

mysql存储过程实例附答案

mysql存储过程实例附答案

存储过程与存储函数概念题1 存储过程与存储函数的概念2 存储过程与存储函数联系与区别实践题在teacher表上创建名为teacher_info1的存储过程,要求:teacher_info1有3个参数。

输入参数为teacher_id和type,输出参数为info。

存储过程的作用是根据编号teacher_id 来查询teacher表中的记录。

如果type的值为1时,将姓名name传给输出参数info;如果type的值为2时,将年龄传给输出参数info;如果type的值为其他值,则返回字符串”Error”。

Teacher表的定义如下所示Teacher表的定义需要插入到teacher表的记录步骤1 创建teacher表并插入记录2 创建存储过程teacher_info13 调用存储过程,teacher_id为2,type为14 删除存储过程。

概念题1 存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。

存储过程和函数可以避免开发人员重复的编写相同的SQL 语句。

而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输。

2 存储过程与存储函数一样,都是由sql语句和过程式语句所组成的代码片段,并且可以被应用程序和其他sql语句调用。

区别:存储函数不能拥有输出参数,因为存储函数自身就是输出参数;而存储过程可以拥有输出参数。

存储函数可以直接对存储函数进行调用,而不需要使用call语句;而对存储过程的调用,需要使用call语句。

存储函数中必须包含一条return语句,而这条特殊的sql语句不允许包含于存储过程中。

实践题1 CREATE TABLE teacher(id INT(4) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,num INT(10) NOT NULL UNIQUE ,name VARCHAR(20) NOT NULL ,sex VARCHAR(4) NOT NULL ,birthday DATETIME ,address VARCHAR(50));INSERT INTO teacher VALUES(1, 1001, '张三','男' ,'1984-11-08' ,'北京市昌平区');INSERT INTO teacher VALUES(2, 1002, '李四','女' ,'1970-01-21' ,'北京市海淀区') ,(NULL, 1003, '王五','男' ,'1976-10-30' ,'北京市昌平区') ,(NULL, 1004, '赵六','男' ,'1980-06-05' ,'北京市顺义区') ;2 DELIMITER &&CREATE PROCEDUREteacher_info1(IN teacher_id INT, IN type INT,OUT info VARCHAR(20))READS SQL DATABEGINCASE typeWHEN 1 THENSELECT name INTO info FROM teacher WHERE id=teacher_id;WHEN 2 THENSELECT YEAR(NOW())-YEAR(birthday) INTO infoFROM teacher WHERE id=teacher_id;ELSESELECT ‘ERROR’ INTO info;END CASE;END &&DELIMITER ;3 CALL teacher_info1(2,1,@info);SELECT @info;4 DROP PROCEDURE teacher_info1;欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。

存储过程案例

存储过程案例

存储过程案例
存储过程(Stored Procedure)是一种在数据库中存储复杂程序,用户通过调用存储过程来执行这个程序。

以下是一个简单的存储过程案例:
案例:创建存储过程,根据用户输入的姓名查询员工信息
1. 数据库表结构
假设有一个名为`employees`的表,结构如下:
```sql
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
department VARCHAR(50)
);
```
2. 创建存储过程
```sql
DELIMITER //
CREATE PROCEDURE GetEmployeeInfo(IN empName VARCHAR(50)) BEGIN
SELECT FROM employees WHERE name = empName;
END //
DELIMITER ;
```
3. 调用存储过程
调用上述存储过程,查询名为"John"的员工信息:
```sql
CALL GetEmployeeInfo('John');
```
4. 结果
如果存在名为"John"的员工,则返回该员工的信息;否则返回空结果。

这是一个简单的存储过程示例。

在实际应用中,存储过程可以更复杂,可以包含条件、循环、多个表的联接等操作。

使用存储过程的好处是提高性能、减少网络流量、提高安全性等。

mysql创建存储过程sql语句实例

mysql创建存储过程sql语句实例

mysql创建存储过程sql语句实例嘿,朋友们!今天咱就来好好唠唠 MySQL 创建存储过程的 SQL 语句实例。

比如说,你想创建一个简单的存储过程来计算两个数的和,那代码就可以像这样:```sqlDELIMITER //CREATE PROCEDURE add_two_numbers(IN num1 INT, IN num2 INT, OUT result INT)BEGINSET result = num1 + num2;END//DELIMITER ;```看,这就创建好啦!这就好像你是个大厨,SQL 语句就是你的食材和调料,你可以用它们烹饪出各种美味的“程序大餐”!再举个例子,假如你要创建一个存储过程来查询某个表中的数据。

哎呀呀,那代码可能长这样:```sqlDELIMITER //CREATE PROCEDURE query_table_data(IN table_name VARCHAR(255))BEGINSELECT * FROM table_name;END//DELIMITER ;```是不是挺神奇的?这就好比你有了一把神奇的钥匙,可以打开数据库这个大宝藏的大门!还有啊,如果要创建一个带条件判断的存储过程呢?那也不难呀!就像这样:```sqlDELIMITER //CREATE PROCEDURE check_condition(IN num INT)BEGINIF num > 10 THENSELECT '大于 10';ELSESELECT '小于等于 10';END IF;END//DELIMITER ;```哇塞,这就像走迷宫一样,根据不同的情况选择不同的道路!总之啊,MySQL 的存储过程就像是一个魔法盒子,你可以用各种SQL 语句来创造出无数奇妙的功能!难道你不想试试自己创造一些厉害的存储过程吗?我的观点就是:MySQL 创建存储过程的 SQL 语句实例真的超级有趣又实用,只要你肯花时间去钻研,就能发现其中的无穷魅力!。

使用MySQL的存储过程实现定时任务和计划

使用MySQL的存储过程实现定时任务和计划

使用MySQL的存储过程实现定时任务和计划引言在软件开发中,定时任务和计划是非常常见的需求。

通过定时任务和计划,我们可以定期执行一些重复性的操作,比如数据备份、数据清理等。

MySQL提供了存储过程来实现这些定时任务和计划,本文将介绍如何使用MySQL的存储过程来实现这些功能。

一、什么是存储过程存储过程是一组预编译的SQL语句的集合,可以作为一个单元整体被数据库管理系统调用和执行。

存储过程可以实现复杂的业务逻辑,并且可以被多个应用程序共享和调用。

二、创建存储过程使用MySQL创建存储过程非常简单,下面以创建一个定时任务为例进行介绍。

首先,我们需要在MySQL中创建一个存储过程,比如我们创建一个名为"task_schedule"的存储过程。

在创建存储过程之前,我们首先需要确保MySQL支持存储过程的功能,可以通过执行以下SQL语句进行检查:```SHOW VARIABLES LIKE 'have_procedure';```如果输出结果中的值是"YES",表示MySQL支持存储过程。

接下来,我们可以使用"CREATE PROCEDURE"语句来创建存储过程。

下面是创建一个名为"task_schedule"的存储过程的示例代码:DELIMITER $$CREATE PROCEDURE task_schedule()BEGIN-- 在此处编写任务执行的逻辑END$$DELIMITER ;```在这个示例代码中,我们使用"DELIMITER"语句来改变分隔符,将其设置为"$$",这是因为存储过程的定义中可能包含多个SQL语句,而分号(";")是SQL语句的默认分隔符,为了避免分号与存储过程代码中的其他分号冲突,我们需要将分隔符改为其他值。

然后,我们使用"CREATE PROCEDURE"语句来创建存储过程,并在BEGIN和END之间编写任务执行的逻辑。

MySQL基础与实例教程之触发器存储过程和异常处理

MySQL基础与实例教程之触发器存储过程和异常处理
触发器的作用
触发器主要用于维护数据的完整性和一致性,可以在特定的数据库事件(如插入、更新和删除)发生时,执行预定义的操作。
触发器的定义
触发器的定义和作用
触发器的种类和触发时机
MySQL触发器可以分为三类:INSERT触发器、UPDATE触发器和DELETE触发器。
触发器的种类
触发器的触发时机可以在以下情况下发生:在向表中插入数据时、在更新表中的数据时、在从表中删除数据时。
创建和使用触发器的步骤
创建一个在更新时触发的UPDATE触发器,用于在更新员工表(employees)时自动更新部门表(departments)中的员工人数。首先,创建一个名为update_department_trigger的触发器CREATE TRIGGER update_department_triggerAFTER UPDATE ON employeesFOR EACH ROW· 创建一个在更新时触发的UPDATE触发器,用于在更新员工表(employees)时自动更新部门表(departments)中的员工人数。· 首先,创建一个名为update_department_trigger的触发器· ```sql· CREATE TRIGGER update_department_trigger· AFTER UPDATE ON employees· FOR EACH ROW
触发器的触发时机
创建触发器的语法:CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROWBEGIN触发器执行的SQL语句END;确定触发器的种类和触发时机:根据需求选择适当的触发器种类和触发时机。编写触发器的SQL语句:根据需求编写触发器执行的SQL语句

MySQL存储过程实例教程

MySQL存储过程实例教程

MySQL存储过程实例教程MySQL 5.0以后的版本开始支持存储过程,存储过程具有一致性、高效性、安全性和体系结构等特点,本节将通过具体的实例讲解PHP是如何操纵MySQL存储过程的。

1:存储过程的创建这是一个创建存储过程的实例实例说明为了保证数据的完整性、一致性,提高应用的性能,常采用存储过程技术。

MySQL 5.0之前的版本并不支持存储过程,随着MySQL技术的日趋完善,存储过程将在以后的项目中得到广泛的应用。

本实例将介绍在MySQL 5.0以后的版本中创建存储过程。

技术要点一个存储过程包括名字、参数列表,以及可以包括很多SQL语句的SQL语句集。

下面为一个存储过程的定义过程: create procedure proc_name (in parameterinteger)begindeclare variable varchar(20);if parameter=1 thensetvariable='MySQL';elseset variable='PHP';end if;insert into tb (name) values (variable);end;MySQL中存储过程的建立以关键字create procedure开始,后面紧跟存储过程的名称和参数。

MySQL的存储过程名称不区分大小写,例如PROCE1()和proce1()代表同一个存储过程名。

存储过程名不能与MySQL数据库中的内建函数重名。

存储过程的参数一般由3部分组成。

第一部分可以是in、out或inout。

in表示向存储过程中传入参数;out表示向外传出参数;inout表示定义的参数可传入存储过程,并可以被存储过程修改后传出存储过程,存储过程默认为传入参数,所以参数in可以省略。

第二部分为参数名。

第三部分为参数的类型,该类型为MySQL数据库中所有可用的字段类型,如果有多个参数,参数之间可以用逗号进行分割。

MySQL存储过程实例详解

MySQL存储过程实例详解

MySQL存储过程实例详解```CREATE PROCEDURE procedure_name ([IN , OUT , INOUT] parameter datatype)[MODIFIESSQLDATA]BEGIN--声明和执行多个SQL语句END;```其中,procedure_name是存储过程的名称,datatype是参数的数据类型。

参数可以是IN参数(只能输入)、OUT参数(只能输出)或INOUT 参数(可读写输入和输出)。

MODIFIES SQL DATA子句用于指定存储过程是否会改变数据库中的数据。

下面是一个简单的MySQL存储过程示例,该存储过程接受一个IN参数,并在employees表中插入一条新记录:```sqlCREATE PROCEDURE add_employee(IN name VARCHAR(50))BEGININSERT INTO employees (name) VALUES (name);SELECT 'Employee added successfully' AS message;END;```在这个示例中,我们创建了一个名为`add_employee`的存储过程,并使用`IN`参数`name`作为输入。

存储过程将传递的参数插入到`employees`表中,并返回一条消息。

我们可以像调用函数一样调用存储过程:```sqlCALL add_employee('John Doe');```这将执行存储过程,并将`'John Doe'`作为参数传递给存储过程。

存储过程还可以具有多个参数,并且可以使用控制结构(如IF语句和循环)来实现更复杂的逻辑。

例如,下面是一个存储过程示例,将工资增加的百分比作为IN参数,并将增加的过程应用于`employees`表的所有记录:```sqlCREATE PROCEDURE increase_salary(IN percentage DECIMAL(5,2)) BEGINDECLARE done INT DEFAULT FALSE;DECLARE emp_name VARCHAR(50);--声明一个游标来获取员工名称DECLARE cur CURSOR FOR SELECT name FROM employees;--声明异常处理程序DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;--打开游标OPEN cur;--循环遍历所有记录read_loop: LOOP--获取下一个记录FETCH cur INTO emp_name;IF done THENLEAVE read_loop;ENDIF;--更新工资UPDATE employees SET salary = salary * (1 + percentage) WHERE name = emp_name;ENDLOOP;--关闭游标CLOSE cur;SELECT 'Salaries have been increased successfully' AS message;END;```以上示例中,我们创建了一个名为`increase_salary`的存储过程,并在参数列表中定义了一个`percentage`参数,它表示工资将增加的百分比。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MySQL存储过程详解1.存储过程简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

一个存储过程是一个可编程的函数,它在数据库中创建并保存。

它可以有SQL语句和一些特殊的控制结构组成。

当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。

数据库中的存储过程可以看做是对编程中面向对象方法的模拟。

它允许控制数据的访问方式。

存储过程通常有以下优点:(1).存储过程增强了SQL语言的功能和灵活性。

存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。

(2).存储过程允许标准组件是编程。

存储过程被创建后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。

而且数据库专业人员可以随时对存储过程进行修改,对应用程序源代码毫无影响。

(3).存储过程能实现较快的执行速度。

如果某一操作包含大量的Transaction-SQL代码或分别被多次执行,那么存储过程要比批处理的执行速度快很多。

因为存储过程是预编译的。

在首次运行一个存储过程时查询,优化器对其进行分析优化,并且给出最终被存储在系统表中的执行计划。

而批处理的Transaction-SQL语句在每次运行时都要进行编译和优化,速度相对要慢一些。

(4).存储过程能过减少网络流量。

针对同一个数据库对象的操作(如查询、修改),如果这一操作所涉及的Transaction-SQL语句被组织程存储过程,那么当在客户计算机上调用该存储过程时,网络中传送的只是该调用语句,从而大大增加了网络流量并降低了网络负载。

(5).存储过程可被作为一种安全机制来充分利用。

系统管理员通过执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。

2.关于MySQL的存储过程存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。

好在MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库编程的灵活性。

3.MySQL存储过程的创建(1). 格式MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]]) procedure[特性 ...] 过程体这里先举个例子:1.mysql> DELIMITER //2.mysql> CREATE PROCEDURE proc1(OUT s int)3. -> BEGIN4. -> SELECT COUNT(*) INTO s FROM user;5. -> END6. -> //7.mysql> DELIMITER ;注:(1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER 是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。

(2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。

(3)过程体的开始与结束使用BEGIN与END进行标识。

这样,我们的一个MySQL存储过程就完成了,是不是很容易呢?看不懂也没关系,接下来,我们详细的讲解。

(2). 声明分割符其实,关于声明分割符,上面的注解已经写得很清楚,不需要多说,只是稍微要注意一点的是:如果是用MySQL的Administrator管理工具时,可以直接创建,不再需要声明。

(3). 参数MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名数据类形...])IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值OUT 输出参数:该值可在存储过程内部被改变,并可返回INOUT 输入输出参数:调用时指定,并且可被改变和返回Ⅰ. IN参数例子创建:1.mysql > DELIMITER //2.mysql > CREATE PROCEDURE demo_in_parameter(IN p_in int)3. -> BEGIN4. -> SELECT p_in; /*查询输入参数*/5. -> SET p_in=2; /*修改*/6. -> SELECT p_in; /*查看修改后的值*/7. -> END;8. -> //9.mysql > DELIMITER ;执行结果:1.mysql > SET @p_in=1;2.mysql > CALL demo_in_parameter(@p_in);3.+------+4.| p_in |5.+------+6.| 1 |7.+------+8.9.+------+10.| p_in |11.+------+12.| 2 |13.+------+14.15.mysql> SELECT @p_in;16.+-------+17.| @p_in |18.+-------+19.| 1 |20.+-------+以上可以看出,p_in虽然在存储过程中被修改,但并不影响@p_id的值Ⅱ.OUT参数例子创建:1.mysql > DELIMITER //2.mysql > CREATE PROCEDURE demo_out_parameter(OUT p_out int)3. -> BEGIN4. -> SELECT p_out;/*查看输出参数*/5. -> SET p_out=2;/*修改参数值*/6. -> SELECT p_out;/*看看有否变化*/7. -> END;8. -> //9.mysql > DELIMITER ;执行结果:1.mysql > SET @p_out=1;2.mysql > CALL sp_demo_out_parameter(@p_out);3.+-------+4.| p_out |5.+-------+6.| NULL |7.+-------+8./*未被定义,返回NULL*/9.+-------+10.| p_out |11.+-------+12.| 2 |13.+-------+14.15.mysql> SELECT @p_out;16.+-------+17.| p_out |18.+-------+19.| 2 |20.+-------+Ⅲ. INOUT参数例子创建:1.mysql > DELIMITER //2.mysql > CREATE PROCEDURE demo_inout_parameter(INOUT p_inout int)3. -> BEGIN4. -> SELECT p_inout;5. -> SET p_inout=2;6. -> SELECT p_inout;7. -> END;8. -> //9.mysql > DELIMITER ;执行结果:1.mysql > SET @p_inout=1;2.mysql > CALL demo_inout_parameter(@p_inout) ;3.+---------+4.| p_inout |5.+---------+6.| 1 |7.+---------+8.9.+---------+10.| p_inout |11.+---------+12.| 2 |13.+---------+14.15.mysql > SELECT @p_inout;16.+----------+17.| @p_inout |18.+----------+19.| 2 |20.+----------+(4). 变量Ⅰ. 变量定义DECLARE variable_name [,variable_name...] datatype [DEFAULT value];其中,datatype为MySQL的数据类型,如:int, float, date, varchar(length)例如:1.DECLARE l_int int unsigned default 4000000;2.DECLARE l_numeric number(8,2) DEFAULT 9.95;3.DECLARE l_date date DEFAULT '1999-12-31';4.DECLARE l_datetime datetime DEFAULT '1999-12-31 23:59:59';5.DECLARE l_varchar varchar(255) DEFAULT 'This will not be padded';Ⅱ. 变量赋值SET 变量名 = 表达式值 [,variable_name = expression ...]Ⅲ. 用户变量ⅰ. 在MySQL客户端使用用户变量1.mysql > SELECT 'Hello World' into @x;2.mysql > SELECT @x;3.+-------------+4.| @x |5.+-------------+6.| Hello World |7.+-------------+8.mysql > SET @y='Goodbye Cruel World';9.mysql > SELECT @y;10.+---------------------+11.| @y |12.+---------------------+13.| Goodbye Cruel World |14.+---------------------+15.16.mysql > SET @z=1+2+3;17.mysql > SELECT @z;18.+------+19.| @z |20.+------+21.| 6 |22.+------+ⅱ. 在存储过程中使用用户变量1.mysql > CREATE PROCEDURE GreetWorld( ) SELECT CONCAT(@greeting,' World');2.mysql > SET @greeting='Hello';3.mysql > CALL GreetWorld( );4.+----------------------------+5.| CONCAT(@greeting,' World') |6.+----------------------------+7.| Hello World |8.+----------------------------+ⅲ. 在存储过程间传递全局范围的用户变量1.mysql> CREATE PROCEDURE p1() SET @last_procedure='p1';2.mysql> CREATE PROCEDURE p2() SELECT CONCAT('Last procedure was ',@last_proc);3.mysql> CALL p1( );4.mysql> CALL p2( );5.+-----------------------------------------------+6.| CONCAT('Last procedure was ',@last_proc |7.+-----------------------------------------------+8.| Last procedure was p1 |9.+-----------------------------------------------+注意:①用户变量名一般以@开头②滥用用户变量会导致程序难以理解及管理(5). 注释MySQL存储过程可使用两种风格的注释双模杠:--该风格一般用于单行注释c风格:/* 注释内容 */ 一般用于多行注释例如:1.mysql > DELIMITER //2.mysql > CREATE PROCEDURE proc1 --name存储过程名3. -> (IN parameter1 INTEGER) /* parameters参数*/4. -> BEGIN /* start of block语句块头*/5. -> DECLARE variable1 CHAR(10); /* variables变量声明*/6. -> IF parameter1 = 17 THEN /* start of IF IF条件开始*/7. -> SET variable1 = 'birds'; /* assignment赋值*/8. -> ELSE9. -> SET variable1 = 'beasts'; /* assignment赋值*/10. -> END IF; /* end of IF IF结束*/11.-> INSERT INTO table1 VALUES (variable1);/* statement SQL语句*/12. -> END /* end of block语句块结束*/13. -> //14.mysql > DELIMITER ;4.MySQL存储过程的调用用call和你过程名以及一个括号,括号里面根据需要,加入参数,参数包括输入参数、输出参数、输入输出参数。

相关文档
最新文档