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

Wie erstelle ich gespeicherte Prozeduren in SQL?

Prozeduren sind die Unterprogramme, die erstellt und als Datenbankobjekte in der Datenbank gespeichert werden können. Genau wie in anderen Sprachen können Sie auch in SQL Prozeduren erstellen und löschen. Lassen Sie uns in diesem Artikel Prozeduren in SQL mit Syntax und Beispielen untersuchen.

Die im Artikel behandelten Themen sind:

  • Was ist eine Prozedur in SQL?
  • SQL-Prozedursyntax
  • Beispielprozedur in SQL
  • Vorteile von SQL-Prozeduren

Was ist eine Prozedur in SQL?

Eine Prozedur in SQL (häufig als gespeicherte Prozedur bezeichnet) ist eine wiederverwendbare Einheit, die die spezifische Geschäftslogik der Anwendung kapselt. Eine SQL-Prozedur ist eine Gruppe von SQL-Anweisungen und -Logik, die zusammen kompiliert und gespeichert werden, um eine bestimmte Aufgabe auszuführen.

Im Folgenden sind die wichtigsten Merkmale der SQL-Prozeduren aufgelistet:

  • Einfach zu implementieren, da sie eine sehr einfache, hochgradig typisierte Sprache verwenden
  • Unterstützt drei Arten von Parametern, nämlich Eingabe-, Ausgabe- und Eingabe-Ausgabe-Parameter.
  • Zuverlässiger als vergleichbare externe Verfahren.
  • SQL-Prozeduren fördern die Wiederverwendbarkeit und Wartbarkeit.
  • Unterstützt ein einfaches, aber leistungsstarkes Bedingungs- und Fehlerbehandlungsmodell.
  • Gibt einen Statuswert an eine aufrufende Prozedur oder einen Batch zurück, um Erfolg oder Misserfolg und den Grund für den Misserfolg anzuzeigen.

Nachdem Sie nun wissen, was Prozeduren sind und warum sie benötigt werden, lassen Sie uns die Syntax und das Beispiel einer Prozedur in SQL besprechen.

Syntax von Prozeduren in SQL

Das Folgende veranschaulicht die grundlegende Syntax zum Erstellen einer Prozedur 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

Syntaxterminologien

Parameter

Ein Parameter ist eine Variable, die einen Wert eines beliebigen gültigen SQL-Datentyps enthält, über den das Unterprogramm die Werte mit dem Hauptcode austauschen kann. Mit anderen Worten, Parameter werden verwendet, um Werte an die Prozedur zu übergeben. Es gibt 3 verschiedene Arten von Parametern, die wie folgt sind:

  • IN :Dies ist der Default-Parameter, der immer die Werte vom aufrufenden Programm erhält. Es ist eine Nur-Lese-Variable innerhalb der Unterprogramme und ihr Wert kann innerhalb des Unterprogramms nicht geändert werden.
  • AUS: Es wird verwendet, um die Ausgabe der Unterprogramme zu erhalten.
  • IN OUT: Dieser Parameter wird sowohl zum Geben von Eingaben als auch zum Erhalten von Ausgaben von den Unterprogrammen verwendet.

Andere Terminologien

  • Verfahrensname gibt den Namen der Prozedur an. Es sollte eindeutig sein.
  • Die Option [ODER ERSETZEN] ermöglicht die Änderung einer bestehenden Prozedur.
  • IST | AS-Klausel legen sie den Kontext fest, um die gespeicherte Prozedur auszuführen. Der Unterschied besteht darin, dass das Schlüsselwort „IS“ verwendet wird, wenn die Prozedur in einige andere Blöcke eingebettet ist, und wenn die Prozedur eigenständig ist, wird „AS“ verwendet.
  • Code_Block deklariert die prozeduralen Anweisungen, die die gesamte Verarbeitung innerhalb der gespeicherten Prozedur handhaben. Der Inhalt des Codeblocks hängt von den Regeln und der prozeduralen Sprache ab, die von der Datenbank verwendet werden.

Prozedur in SQL:Beispiele

Beispiel1

Das folgende Beispiel erstellt eine einfache Prozedur, die bei Ausführung die Willkommensnachricht auf dem Bildschirm anzeigt. Dann ist die Prozedur:

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

Führen Sie die gespeicherte Prozedur aus. Eine eigenständige Prozedur kann auf zwei Arten aufgerufen werden −

  • Mit EXECUTE Schlüsselwort
  • Aufruf des Namens der Prozedur aus einem SQL-Block

Die obige Prozedur kann mit dem Schlüsselwort Execute wie folgt aufgerufen werden:

 EXEC welcome_msg (‘Welcome to Edureka!’);

Ausgabe

Hello World! Welcome to Edureka 

Die Prozedur wird ausgeführt und die Nachricht wird als „Hello World! Willkommen bei Edureka“.

Beispiel2

Nehmen wir an, Sie haben eine Tabelle mit Mitarbeiterdetails wie EmployeId, Firstname, Lastname und DepartmentDetails.

Dieses Beispiel erstellt eine SQL-Prozedur, die einen Mitarbeiternamen zurückgibt, wenndie EmployeId wird als Eingabeparameter an die gespeicherte Prozedur übergeben. Dann ist die Prozedur:

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

Auszuführende Schritte:

  • Deklarieren Sie @employeName als nvarchar(50)
  • EXEC GetStudentName 01, @employeName-Ausgabe
  • wählen Sie @employeName
  • aus

Das obige Verfahren zur Angabe der Mitarbeiter-ID als Eingabe gibt den Namen dieses bestimmten Mitarbeiters zurück. Angenommen, wir haben einen Ausgabeparameter, dann müssen wir zuerst die Variable deklarieren, um die Ausgabewerte zu sammeln. Schauen wir uns nun die Vorteile von Prozeduren in SQL an.

Vorteile von Prozeduren in SQL

Der Hauptzweck gespeicherter Prozeduren in SQL besteht darin, direkte SQL-Abfragen vor dem Code zu verbergen und die Leistung von Datenbankoperationen wie Auswählen, Aktualisieren und Löschen von Daten zu verbessern. Weitere Vorteile der Prozedur in SQL sind:

  • Reduziert die Menge an Informationen, die an den Datenbankserver gesendet werden. Es kann ein wichtigerer Vorteil werden, wenn die Bandbreite des Netzwerks geringer ist.
  • Ermöglicht die Wiederverwendbarkeit von Code
  • Verbessert die Sicherheit, da Sie dem Benutzer die Berechtigung zum Ausführen der gespeicherten Prozedur erteilen können, anstatt die Berechtigung für die in der gespeicherten Prozedur verwendeten Tabellen zu erteilen.
  • Unterstützt verschachtelte Prozeduraufrufe zu anderen SQL-Prozeduren oder Prozeduren, die in anderen Sprachen implementiert sind.

Abschließend lässt sich sagen, dass Prozeduren in SQL (gespeicherte Prozeduren) nicht nur die Möglichkeit der Wiederverwendung des Codes verbessern, sondern auch die Leistung der Datenbank erhöhen. Wie? Durch Reduzierung des Netzwerkverkehrs durch Reduzierung der über das Netzwerk gesendeten Informationsmenge. Damit sind wir am Ende dieses Artikels angelangt.

Wenn Sie mehr über MySQL erfahren und diese relationale Open-Source-Datenbank kennenlernen möchten, sehen Sie sich unsere MySQL-DBA-Zertifizierungsschulung an Dazu gehören von einem Kursleiter geleitete Live-Schulungen und reale Projekterfahrung. Dieses Training wird Ihnen helfen, MySQL gründlich zu verstehen und das Thema zu beherrschen.

Haben Sie eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieser „Procedures in SQL; Artikel und wir melden uns bei Ihnen.