Procedimentos são os subprogramas que podem ser criados e salvos no banco de dados como objetos de banco de dados. Assim como em outras linguagens, você também pode criar e descartar procedimentos em SQL. Neste artigo, vamos explorar procedimentos em SQL com sintaxe e exemplos.
Os tópicos discutidos no artigo são:
- O que é um procedimento em SQL?
- Sintaxe do procedimento SQL
- Exemplo de procedimento em SQL
- Vantagens dos procedimentos SQL
O que é um procedimento em SQL?
Um procedimento em SQL (geralmente chamado de procedimento armazenado) é uma unidade reutilizável que encapsula a lógica de negócios específica do aplicativo. Um procedimento SQL é um grupo de instruções e lógica SQL, compilados e armazenados juntos para executar uma tarefa específica.
A seguir estão listados os principais recursos dos procedimentos SQL:
- Fácil de implementar porque eles usam uma linguagem muito simples de alto nível e fortemente tipada
- Suporta três tipos de parâmetros, ou seja, parâmetros de entrada, saída e entrada-saída.
- Mais confiável do que procedimentos externos equivalentes.
- Os procedimentos SQL promovem a reutilização e a manutenção.
- Suporta uma condição simples, mas poderosa e um modelo de tratamento de erros.
- Retorne um valor de status para um procedimento ou lote de chamada para indicar sucesso ou falha e o motivo da falha.
Agora que você sabe o que são procedimentos e por que eles são necessários, vamos discutir a sintaxe e o exemplo de procedimento em SQL.
Sintaxe de procedimentos em SQL
O seguinte ilustra a sintaxe básica de criação de um procedimento em SQL:
CREATE [ OR REPLACE] PROCEDURE procedure_name [ (parameter_name [IN | OUT | IN OUT] type [ ])] {IS | AS } BEGIN [declaration_section] executable_section //SQL statement used in the stored procedure END GO
Terminologias de sintaxe
Parâmetro
Um parâmetro é uma variável que contém um valor de qualquer tipo de dado SQL válido através do qual o subprograma pode trocar os valores com o código principal. Em outras palavras, os parâmetros são usados para passar valores para o procedimento. Existem 3 tipos diferentes de parâmetros, que são os seguintes:
- IN :Este é o Default Parameter, que sempre recebe os valores do programa chamador. É uma variável somente leitura dentro dos subprogramas e seu valor não pode ser alterado dentro do subprograma.
- SAÍDA: Ele é usado para obter a saída dos subprogramas.
- DENTRO FORA: Este parâmetro é usado tanto para dar entrada quanto para obter saída dos subprogramas.
Outras terminologias
- nome do procedimento especifica o nome do procedimento. Deve ser único. A opção
- [OR REPLACE] permite a modificação de um procedimento existente.
- É | AS Clause, eles definem o contexto para executar o procedimento armazenado. A diferença é que a palavra-chave 'IS' é usada quando o procedimento está aninhado em alguns outros blocos e, se o procedimento for autônomo, então 'AS' é usado.
- Code_Block declara as instruções procedurais que tratam de todo o processamento dentro do procedimento armazenado. O conteúdo do code_block depende das regras e da linguagem procedural usada pelo banco de dados.
Procedimento em SQL:exemplos
Exemplo1
O exemplo a seguir cria um procedimento simples que exibe a mensagem de boas-vindas na tela quando executado. Então, o procedimento será:
CREATE OR REPLACE PROCEDURE welcome_msg (para1_name IN VARCHAR2) IS BEGIN dbms_output.put_line (‘Hello World! '|| para1_name); END; /
Execute o procedimento armazenado. Um procedimento autônomo pode ser chamado de duas maneiras -
- Usando o EXECUTAR palavra-chave
- Chamar o nome do procedimento de um bloco SQL
O procedimento acima pode ser chamado usando a palavra-chave Execute da seguinte forma:
EXEC welcome_msg (‘Welcome to Edureka!’);
Saída
Hello World! Welcome to Edureka
O procedimento é executado e a mensagem é impressa como “Hello World! Bem-vindo à Edureka”.
Exemplo2
Vamos supor que você tenha uma tabela com detalhes do funcionário, como EmployeId, Firstname, Lastname e DepartmentDetails.
Este exemplo cria um procedimento SQL que retornará um nome de funcionário quando o EmployeId é fornecido como o parâmetro de entrada para o procedimento armazenado. Então, o procedimento será:
Create PROCEDURE GetStudentName ( @employeeID INT, --Input parameter , employeID of the employee @employeName VARCHAR(50) OUT --Output parameter, employeeName of employee AS BEGIN SELECT @employeName= Firstname+' '+Lastname FROM Employee_Table WHERE EmployeId=@employeID END
Passos para executar:
- Declare @employeName como nvarchar(50)
- EXEC GetStudentName 01, saída @employeName
- selecione @employeName
O procedimento acima para fornecer o ID do funcionário como entrada retorna o nome desse funcionário em particular. Suponha que, se tivermos um parâmetro de saída, primeiro precisamos declarar a variável para coletar os valores de saída. Agora vamos conferir as vantagens do procedimento no SQL.
Vantagens de procedimentos em SQL
O principal objetivo dos procedimentos armazenados em SQL é ocultar consultas SQL diretas do código e melhorar o desempenho das operações do banco de dados, como selecionar, atualizar e excluir dados. Outras vantagens do procedimento em SQL são:
- Reduz a quantidade de informações enviadas ao servidor de banco de dados. Pode se tornar um benefício mais importante quando a largura de banda da rede é menor.
- Permite a reutilização do código
- Aprimora a segurança, pois você pode conceder permissão ao usuário para executar o procedimento armazenado em vez de conceder permissão nas tabelas usadas no procedimento armazenado.
- Suporte a chamadas de procedimento aninhado para outros procedimentos SQL ou procedimentos implementados em outras linguagens.
Para concluir, os procedimentos em SQL (procedimentos armazenados) não apenas aumentam a possibilidade de reutilização do código, mas também aumentam o desempenho do banco de dados. Como? Reduzindo o tráfego da rede, reduzindo a quantidade de informações enviadas pela rede. Com isso, chegamos ao final deste artigo.
Se você deseja aprender mais sobre MySQL e conhecer esse banco de dados relacional de código aberto, confira nosso Treinamento de certificação de DBA MySQL que vem com treinamento ao vivo conduzido por instrutor e experiência de projeto na vida real. Este treinamento ajudará você a entender o MySQL em profundidade e a dominar o assunto.
Tem alguma pergunta para nós? Por favor, mencione-o na seção de comentários deste ‘Procedures in SQL; artigo e entraremos em contato com você.