Database
 sql >> Base de Dados >  >> RDS >> Database

Como criar procedimentos armazenados em SQL?

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ê.