Database
 sql >> Database >  >> RDS >> Database

Come creare stored procedure in SQL?

Le procedure sono i sottoprogrammi che possono essere creati e salvati nel database come oggetti del database. Proprio come in altre lingue, puoi creare e rilasciare procedure anche in SQL. In questo articolo, esploriamo le procedure in SQL con sintassi ed esempi.

Gli argomenti trattati nell'articolo sono:

  • Cos'è una procedura in SQL?
  • Sintassi procedura SQL
  • Esempio di procedura in SQL
  • Vantaggi delle procedure SQL

Cos'è una procedura in SQL?

Una procedura in SQL (spesso indicata come stored procedure), è un'unità riutilizzabile che incapsula la logica aziendale specifica dell'applicazione. Una procedura SQL è un gruppo di istruzioni SQL e di logica, compilate e archiviate insieme per eseguire un'attività specifica.

Di seguito sono elencate le caratteristiche chiave delle procedure SQL:

  • Facile da implementare perché utilizza un linguaggio molto semplice di alto livello e fortemente tipizzato
  • Supporta tre tipi di parametri, vale a dire, parametri di input, output e input-output.
  • Più affidabile di procedure esterne equivalenti.
  • Le procedure SQL promuovono la riutilizzabilità e la manutenibilità.
  • Supporta un modello di gestione delle condizioni e degli errori semplice ma potente.
  • Restituisce un valore di stato a una procedura o batch chiamante per indicare l'esito positivo o negativo e il motivo dell'errore.

Ora che sai cosa sono le procedure e perché sono necessarie, discutiamo la sintassi e l'esempio di procedura in SQL.

Sintassi delle procedure in SQL

Di seguito viene illustrata la sintassi di base della creazione di una procedura in 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

Terminologie di sintassi

Parametro

Un parametro è una variabile che contiene un valore di qualsiasi tipo di dati SQL valido attraverso il quale il sottoprogramma può scambiare i valori con il codice principale. In altre parole, i parametri vengono utilizzati per passare i valori alla procedura. Esistono 3 diversi tipi di parametri, che sono i seguenti:

  • IN :Questo è il parametro di default, che riceve sempre i valori dal programma chiamante. È una variabile di sola lettura all'interno dei sottoprogrammi e il suo valore non può essere modificato all'interno del sottoprogramma.
  • FUORI: Viene utilizzato per ottenere l'output dai sottoprogrammi.
  • IN OUT: Questo parametro viene utilizzato sia per fornire input che per ottenere output dai sottoprogrammi.

Altre terminologie

  • nome-procedura specifica il nome della procedura. Dovrebbe essere unico.
  • L'opzione [OR REPLACE] permette di modificare una procedura esistente.
  • SI | AS Clause, impostano il contesto per eseguire la procedura memorizzata. La differenza è che la parola chiave "IS" viene utilizzata quando la procedura è nidificata in altri blocchi e se la procedura è autonoma, viene utilizzato "AS".
  • Code_Block dichiara le istruzioni procedurali che gestiscono tutte le elaborazioni all'interno della procedura memorizzata. Il contenuto del code_block dipende dalle regole e dal linguaggio procedurale utilizzato dal database.

Procedura in SQL:esempi

Esempio1

L'esempio seguente crea una semplice procedura che visualizza il messaggio di benvenuto sullo schermo quando viene eseguita. Quindi, la procedura sarà:

CREATE OR REPLACE PROCEDURE welcome_msg
(para1_name IN VARCHAR2)
IS 
BEGIN 
    dbms_output.put_line (‘Hello World! '|| para1_name);
END; 
/

Eseguire la procedura memorizzata. Una procedura autonoma può essere chiamata in due modi −

  • Utilizzo di EXECUTE parola chiave
  • Richiamare il nome della procedura da un blocco SQL

La procedura di cui sopra può essere chiamata utilizzando la parola chiave Esegui come segue:

 EXEC welcome_msg (‘Welcome to Edureka!’);

Uscita

Hello World! Welcome to Edureka 

La procedura viene eseguita e il messaggio viene stampato come "Hello World! Benvenuto in Edureka”.

Esempio2

Supponiamo di avere una tabella con i dettagli del dipendente, come EmployeId, Firstname, Lastname e DepartmentDetails.

Questo esempio crea una procedura SQL che restituirà il nome di un dipendente quando EmployeId viene fornito come parametro di input alla procedura memorizzata. Quindi, la procedura sarà:

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

Passaggi da eseguire:

  • Dichiara @employeName come nvarchar(50)
  • EXEC GetStudentName 01, output @employeName
  • seleziona @employeName

La procedura precedente per fornire l'ID dipendente come input restituisce il nome di quel particolare dipendente. Supponiamo di avere un parametro di output, quindi dobbiamo prima dichiarare la variabile per raccogliere i valori di output. Ora diamo un'occhiata ai vantaggi della procedura in SQL.

Vantaggi delle procedure in SQL

Lo scopo principale delle stored procedure in SQL è nascondere le query SQL dirette dal codice e migliorare le prestazioni delle operazioni del database come la selezione, l'aggiornamento e l'eliminazione dei dati. Altri vantaggi della procedura in SQL sono:

  • Riduce la quantità di informazioni inviate al server del database. Può diventare un vantaggio più importante quando la larghezza di banda della rete è inferiore.
  • Abilita la riutilizzabilità del codice
  • Migliora la sicurezza poiché puoi concedere all'utente l'autorizzazione per l'esecuzione della stored procedure invece di concedere l'autorizzazione alle tabelle utilizzate nella stored procedure.
  • Supporta chiamate di procedure annidate ad altre procedure SQL o procedure implementate in altri linguaggi.

Per concludere, le procedure in SQL (procedure memorizzate) non solo migliorano la possibilità di riutilizzare il codice ma aumentano anche le prestazioni del database. Come? Riducendo il traffico della rete riducendo la quantità di informazioni inviate sulla rete. Con questo, siamo arrivati ​​alla fine di questo articolo.

Se desideri saperne di più su MySQL e conoscere questo database relazionale open source, dai un'occhiata al nostro Formazione sulla certificazione DBA MySQL che viene fornito con una formazione dal vivo con istruttore e un'esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.

Hai una domanda per noi? Si prega di menzionarlo nella sezione commenti di questo "Procedure in SQL; articolo e ti ricontatteremo.