O QUE HÁ DE NOVO

Criando Stored Procedures no MySQL

Ramon Ferreira Silva por Ramon Ferreira Silva Programação
A maioria das pessoas não utiliza todos os recursos disponíveis para os SGBDs, tais como Stored Procedures e Triggers.

Primeiramente vamos a algumas questões.

O que é uma Stored Procedure?


É uma colação de comandos SQL, que encapsula uma série de tarefas repetitivas, relativas ao acesso a banco, aceita parâmetros de entrada e retorna um valor de status ou conjunto de registros.

Por que usar um Stored Procedure?

  
As Stored Procedures ajudam a reduzir o tráfego na rede, a melhorar o desempenho de consultas, a criar mecanismos de segurança e simplificar o código da aplicação, já que não haverá a necessidade de manter consultas SQL de várias linhas misturadas a toda lógica da sua aplicação.

Então vamos ao banco exemplo:


É um banco bem simples, mas é só para vermos na prática o funcionamento das procedures.
Vamos a primeira, listar países:

DELIMITER $$
DROP PROCEDURE IF EXISTS `listar_paises` $$
CREATE PROCEDURE `listar_paises`(IN _id INT)
BEGIN
      IF(_id IS NULL) THEN
        SELECT * FROM pais;
      ELSE
        SELECT *  FROM pais where id_pais = _id;
      END IF;
   END $$
DELIMITER ;


Vamos a explicação.

DELIMITER $$ – Serve para marcar onde começa e onde termina a procedure, neste caso eu escolhi “$$”
DROP PROCEDURE IF EXISTS `listar_paises` - nesta linha eu informo ao SGBD que se a procedure já existir eu a estarei sobrescrevendo.

CREATE PROCEDURE - irá cria a procedure, note que há um parâmetros para esta procedures. Os parâmetros podem ser IN, apenas de entrada, OUT, apenas de saída e INOUT, entrada e saída. Os tipos de dados dos parâmetros são os mesmo tipos de dados do SGBDs ( INT, VARCHAR(45), TEXT, BLOB...)

Entre os comandos BEGIN e END é que serão colocados os comandos executados pela procedures.
Primeiramente eu verifico se foi passado o parâmetro id para a procedure.
IF(_id IS NULL) THEN


Caso tenha sido passado eu busco um país com aquele id, em caso contrário serão retornados todos os registros da tabela.
Chamando a procedure.
call listar_paises( null );

Irá trazer todos os registros da tabela
call listar_paises( 1 );


Irá trazer somente o registro do país com o ID = 1;

Procedures são tão simples quanto parecem. Coloquei em anexo os códigos fontes do banco com mais algumas procedures caso você queira dar uma olhada. Na próxima matéria eu explicarei como incluir, atualizar e apagar registro do banco usado procedures.

Até a próxima

Recomendado
Assuntos mysql, banco de dados e programação
Siga nas redes
Encontrou algum erro no texto?

Entre em contato com o autor e nos ajude a melhorar a qualidade dos posts cada vez mais!

AVISAR
O QUE LER EM SEGUIDA
Comentários
Últimas publicaçõesver tudo
ASSINE NOSSA NEWSLETTER

Não perca nenhuma novidade do mundo da tecnologia.