Mysql Database Event and Procedure(2)Store Procedure
F.Y.I mysqldump command
>mysqldump -h localhost -u root -P 7778 -ppassword databasename table name --where "click_time >= '2016-12-01'" > affiliate_clicks_2016_12_01.sql
Import Command
mysql -h localhost -u username -p'password' databasename < clicks2_2016_12.sql
MySQL supports event scheduler after 5.1, supports stored procedure after 5.0.
First Example
DELIMITER //
CREATE PROCEDURE proc1(OUT s int)
BEGIN
SELECT COUNT(1) INTO s FROM user;
END
//
DELIMITER ;
IN - input parameter, procedure can not return and change that parameter
OUT - procedure can change that variable and return
INOUT -
IN Example
DELIMITER //
CREATE PROCEDURE demo_in_parameter (IN p_in int)
BEGIN
SELECT p_in;
SET p_in = 2;
SELECT p_in;
END;
//
DELIMITER ;
Call the procedure
>SET @p_in = 1;
>CALL demo_in_parameter(@p_in);
p_in will be 2 in the procedure, but it is still 1 outside.
OUT Example
DELIMITER //
CREATE PROCEDURE demo_out_parameter(OUT p_out int)
BEGIN
SELECT p_out;
SET p_out=2;
SELECT p_out;
END;
//
DELIMITER ;
INOUT Example
DELIMITER //
CREATE PROCEDURE demo_inout_parameter(INOUT p_inout int)
BEGIN
SELECT p_inout;
SET p_inout=2;
SELECT p_inout;
END;
//
DELIMITER ;
Call the procedure
SET @p_inout = 1;
CALL demo_inout_parameter(@p_inout);
Variable
DECLARE variable_name datatype [DEFAULT value];
DECLARE l_varchar archer(255) DEFAULT ’this is a sample default value’;
SET
SET variable_name = expression
USER Variable
SELECT ‘Hello World’ into @x;
SELECT @x;
SET @y=‘Goodbye Cruel World’;
SELECT @y;
Query All Tables
>show tables;
Query All Procedure
>show procedure status where db = 'jobs';
Query detail of Procedure, databaseName.procedureName
>show create procedure jobs.get_lineitem;
Condition Statement
DELIMITER //
CREATE PROCEDURE proc2(IN parameter int)
begin
declare var int;
set var = parameter+1;
if var = 0 then
insert into t values(17);
end if;
if parameter = 0 then
update t set s1=s1+1;
else
update t set s1=s1+2;
end if;
end;
//
DELIMITER ;
case Statement
DELIMITER //
CREATE PROCEDURE proc3 (in parameter int)
begin
declare var int;
set var=parameter+1;
case var
when 0 then
insert into t values(17);
when 1 then
insert into t values(18);
else
insert into t values(19);
end case;
end;
//
DELIMITER ;
Loop Statement - while … end while
DELIMITER //
CREATE PROCEDURE proc4()
begin
declare var int;
set var = 0;
while var < 6 do
insert into t values(var);
set var=var+1;
end while;
end;
//
DELIMITER ;
Loop Statement - repeat … end repeat
DELIMITER //
CREATE PROCEDURE proc5 ()
begin
declare v int;
set v=0;
repeat
insert into t values(v);
set v=v+1;
until v >=5
end repeat;
end;
//
DELIMITER ;
Loop Statement - loop … end loop
DELIMITER //
CREATE PROCEDURE proc6()
begin
declare v int;
set v=0;
LOOP_LABLE:loop
insert into t values(v);
set v=v+1;
if v >=5 then
leave LOOP_LABLE;
end if:
end loop:
end
Functions in Stored Procedure
ONCAT, LCASE, LEFT, LENGTH
ABS(number), round(number)
NOW(), DATE(datetime)
References:
http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html
http://www.jianshu.com/p/1cb06d5eda09
http://www.blogjava.net/nonels/archive/2008/10/09/233324.html
https://yq.aliyun.com/articles/20804
分享到:
相关推荐
在MySQL数据库系统中,"failed to open table mysql.event" 是一个常见的错误,通常表示数据库无法正确访问或加载`mysql.event`表。`mysql.event`是MySQL服务器用来存储定时任务(也称为事件Scheduler)的地方,当这...
Smarty.PHP.Template.Programming.and.Applications.Mar.2006.pdf MySQL and JSP Web Applications ...MySQL.Database.Design.and.Tuning.(2005).DDU.LotB.chm MySQL.Stored.Procedure.Programming.(2006).BBL.LotB.chm
mysql存储过程方面的圣经,以通俗的示例方法讲述mysql存储过程的深奥内容,In MySQL Stored Procedure Programming, they put that hard-won experience to good use. Packed with code examples and covering ...
2. 数据库架构设计: - 设计数据库结构,包括数据库、表、索引、视图、存储过程、触发器等。 - 确定数据类型选择、规范化和反规范化等数据库设计原则。 3. 数据库备份与恢复: - 使用命令行工具或者图形界面备份...
If you are serious about building the web-based database applications of the future, you need to get up to speed quickly on how stored procedures work -- and how to build them the right ...
mysql event脚本
Anyone working with applications that use a MySQL database backend will benefit greatly from the advice and techniques in this book. Although a working knowledge of both SQL and MySQL is assumed, the...
newly available in MariaDB 10.2 and MySQL 8.0, and helps you understand why and how every MariaDB and MySQL database programmer should learn and apply these features in their daily work. CTEs and ...
Introducton to MySQL
在 MySQL 中,创建存储过程的语法是:`CREATE PROCEDURE proc_Name ([proc_parameter]) routine_body`。这里的参数类型可以是 IN, OUT, INOUT,分别表示输入参数、输出参数和输入输出参数。例如,以下是一个显示 ...
The definitive guide to building database-driven Web applications with PHP and MySQL PHP and MySQL are popular open-source technologies that are ideal for quickly developing database-driven Web ...
Starting with the basics, you will learn to store, manage and retrieve data in a MySQL database and to eventually manipulate the code behind MySQL 5.0 to customize your database. With the clear ...
by-step code execution, breakpoints,watches, a call stack, a variables evaluation mechanism to automate debugging of MySQL stored routines and triggers and keeps MySQL server's logic of procedure ...
Learn the new Document Store feature of MySQL 8 and build applications around a mix of the best features from SQL and NoSQL database paradigms. Don’t allow yourself to be forced into one paradigm or ...
mysql event scheduler 使用详解,含全局设置、创建event、修改event、删除event及相应的example,测试环境 mysql ver 14.14 distrib 5.7.26
Store, retrieve, and manipulate your data using the latest MySQL 8 features Practical recipes on effective administration in MySQL, with a focus on security, performance tuning, troubleshooting, and ...