Blog

Postado em em 12 de abril de 2024

O que é uma Procedure em SQL?

Aprenda o que é uma procedure em SQL! Veja como criar procedures no MySQL e como utilizá-las com exemplos práticos.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que é uma Procedure em SQL?

Na aula de hoje, vou te mostrar o que é uma procedure em SQL. Vou te guiar pelo passo a passo para criar uma procedure e como utilizá-la em exemplos práticos.

Você entenderá a estrutura da procedure para compreender sua sintaxe dentro do MySQL.

Em seguida, exploraremos dois exemplos práticos utilizando procedures no SQL para inserir e excluir dados de uma tabela. Dessa forma, você aprenderá a aplicar a procedure em um contexto real.

E aí, já sabe usar as procedures em SQL? Ainda não? Então, vem comigo que eu vou te ensinar!

O que é uma Procedure em SQL

As procedures no SQL são blocos de código que podem ser armazenados e executados no banco de dados.

No SQL, utilizamos diversos comandos para manipular e interagir com bancos de dados, e uma procedure nos permite reunir e agrupar esses comandos em um bloco de código que pode ser chamado para execução quando quisermos.

Ao criar uma procedure, precisamos definir um nome para ela, configurar delimitadores personalizados e passar os parâmetros necessários que ela utilizará quando for chamada. A sintaxe básica da procedure é a seguinte:

delimiter $$
create procedure nome_procedure(parâmetros)
begin
-- código
end $$

delimiter ;

Delimitadores em Procedures

Sempre que trabalhamos com muitas linhas de código no SQL, essas linhas precisam ser delimitadas por meio de um separador, que por padrão é o ponto e vírgula (;).

Isso indica para o SQL que aquele código, aquele comando, deve ser executado até aquela etapa.

Como nas procedures queremos trabalhar com um bloco de códigos, com diversos comandos sendo executados de uma vez, precisamos ajustar o delimitador para que o SQL não entenda que a cada ponto e vírgula, o comando foi finalizado.

Por isso, alteramos o delimitador para outro caractere temporariamente. Então antes de criar uma procedure, vamos primeiro alterar o delimitador, definindo um novo caractere ou conjunto de caracteres.

Você pode definir os caracteres que desejar como delimitador temporário, mas é importante que os caracteres escolhidos não interfiram com as sintaxes já existentes do SQL. Por isso, é muito comum vermos o uso de $$ como delimitador temporário.

Após definir o novo delimitador, o SQL irá executar todo o bloco de código contido dentro dele, até o final daquele delimitador. Após encerrar o delimitador temporário, podemos voltar para o delimitador padrão.

Criação da Procedure

Uma procedure é criada utilizando o comando create procedure seguido do nome da procedure e, entre parênteses, os parâmetros necessários para que ela funcione corretamente.

Uma mesma procedure pode ter diversos parâmetros e de diferentes tipos, como inteiros, varchar, e assim por diante.

Após incluir e definir os parâmetros e seus tipos, seguimos com o bloco begin, onde o código é efetivamente desenvolvido.

delimiter $$
create procedure nome_procedure(par1 int, par varchar(100))
begin
-- código
end $$

delimiter ;

Vamos ver dois exemplos práticos de criação e utilização das procedures no SQL para que você possa compreender todo o processo de criar e aplicar uma procedure em seu código.

Inserindo Dados na Tabela Usando Procedure

O primeiro exemplo que realizaremos nesta aula será a criação de uma procedure para inserir dados em uma tabela específica do banco de dados. No meu caso, eu utilizarei a tabela locais.

select * from locais;

Tabela locais

A partir disso, criaremos uma procedure para inserir dados nessa tabela através do comando insert into.

Para criar nossa procedure, o primeiro passo será definir o delimitador temporário. Em seguida, usaremos o comando create procedure, passando o nome da nossa procedure e os parâmetros que ela precisa receber.

Os parâmetros necessários que esta procedure precisa receber são as informações que queremos adicionar à nossa tabela. Neste caso, vamos definir os parâmetros cidade (c), estado (e) e região (r), sendo todos eles do tipo varchar.

Feito isso, dentro da procedure vamos criar o nosso bloco begin. Dentro dele, iremos definir o código que iremos executar para inserir os valores nas colunas correspondentes da tabela locais.

Esses valores serão inseridos através do comando insert into, que recebe o nome da tabela e uma lista das colunas presentes na tabela onde serão inseridos esses valores.

Em seguida, passamos os valores que devem ser inseridos nas colunas especificadas, definindo-os na mesma ordem em que declaramos as colunas.

Após adicionar os valores, vamos exibir a tabela com o comando select.

delimiter $$
create procedure insere_locais(c varchar(100), e varchar(100), r varchar(100))
begin
    insert into locais(cidade, estado, região)
    values (c, e, r)
    select * from locais
end $$

delimiter ;

Selecionamos todo esse código e executamos para criar a nossa procedure. Feito isso, basta chamá-la utilizando o comando call e passando os argumentos necessários, nesse caso, os valores para c, e e r.

call insere_locais('Santos', 'SP', 'Sudeste');

Tabela após a inserção

Perceba que a procedure executou todo nosso código corretamente, e com isso, sempre que precisarmos inserir uma informação no nosso banco de dados, ao invés de precisar definir todo o código contido na procedure, basta chamá-la com os argumentos necessários.

As procedures tornam os códigos muito mais práticos, além de evitar a repetição de códigos extensos.

Exclusão de Dados com Procedure

Da mesma forma, podemos criar uma procedure capaz de excluir dados da tabela.

O procedimento para criação da procedure será o mesmo que da anterior, com a diferença que dessa vez ela receberá apenas um parâmetro referente à cidade. Ao encontrar a cidade desejada, toda a linha será deletada.

Para deletar essa linha, vamos usar o comando delete, filtrando a tabela com o comando where. Dessa forma, vamos deletar a linha onde a cidade da coluna Cidade seja igual à cidade fornecida para o parâmetro c.

delimiter $$
create procedure exclui_locais(c varchar(100))
begin
    delete from locais
    where Cidade = c;
    select * from locais
end $$

delimiter ;

Vamos executar esse código para criar de fato a procedure e, em seguida, com o comando call, vamos utilizá-la para deletar a linha da cidade de Santos da tabela.

call exclui_locais('Santos');

Tabela após a exclusão da linha com a cidade de Santos

Perceba que agora não temos mais a cidade de Santos sendo exibida dentro da nossa tabela Locais.

Conclusão – O que é uma Procedure em SQL?

Na aula de hoje, você aprendeu o que é uma procedure em SQL, assim como o passo a passo para criá-la e utilizá-la em seus códigos.

Vimos como as procedures tornam os códigos muito mais práticos e evitam a repetição de códigos extensos.

As procedures são uma ótima ferramenta para simplificar e permitir a fácil reutilização de códigos mais complexos, ficando salvas em seu banco de dados para serem utilizadas sempre que necessário.

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador