利用存储过程方便日常查询

一.创建存储过程

1.存储过程创建语法:

CREATE PROCEDURE sp_name ([ proc_parameter ]) [ characteristics..] routine_body

2.参数详解:

sp_name:存储过程名字

proc_parameter:像存储过程传递参数( [IN|OUT|INOUT] param_name type ),其中in表示输入参数,out表示输出参数,inout表示既可以输入也可以输出;param_name表示参数名称;type表示参数的类型

routine_body :routine_body是SQL代码的内容,可以用BEGIN...END来表示SQL代码的开始和结束。

DELIMITER:重新设置mysql的结束符 DELIMITER //(将结束符表示为//)  存储过程  DELIMITER;(恢复默认结束符)

characteristics:对下面body申明部分和权限限制的定义


二.存储过程的日常操作

1.调用存储过程

(1).call sp_name()

(2).直接点击名称运行即可


2.查询procedure的status信息:show procedure status\G

3.查看创建的存储过程:show create procedure sp_name\G

4.删除存储过程 :drop procedure sp_name


三.存储过程实例

1.不带参数的存储过程查询区服信息

DROP PROCEDURE IF EXISTS sel;
DELIMITER //
CREATE PROCEDURE sel()
BEGIN
    SELECT * from gameserverinfo where isdelete!=1 ORDER BY zone;
END //
DELIMITER;
call sel()

运行结果:


2.根据平台和区服查询服务器ip:

DROP PROCEDURE IF EXISTS CHECKIP;
DELIMITER //
CREATE PROCEDURE CHECKIP(agent1 VARCHAR(30),zone1 INT)
BEGIN
    SELECT ip from gameserverinfo where agent=agent1 and zone=zone1;
END //
DELIMITER;

运行结果:

你可能感兴趣的:(mysql,存储过程,procedure)