Schreiben Sie Funktionen und gespeicherte Prozeduren in SQL Server
Sep 16, 2023 pm 03:13 PMEine Sammlung von SQL-Anweisungen, die in gespeicherten Prozeduren und Funktionen enthalten sind, Datenbankobjekten, die zur Ausführung bestimmter Aufgaben verwendet werden (oder auch in der Datenwissenschaft verwendet werden können). Die beiden unterscheiden sich in vielerlei Hinsicht.
In diesem Artikel gehen wir ausführlich auf Funktionen und Abläufe und deren Unterschiede ein.
Beginnen wir mit gespeicherten Prozeduren -
Gespeicherte Prozeduren in SQL
Einfach geschriebener SQL-Code wird zur mehrfachen Wiederverwendung gespeichert und bildet eine gespeicherte Prozedur. Wenn Ihnen eine Abfrage einfällt, die Sie häufig schreiben, können Sie sie als gespeicherte Prozedur speichern und dann diese gespeicherte Prozedur aufrufen, um den SQL-Code auszuführen, den Sie als Teil der gespeicherten Prozedur gespeichert haben. Dies erspart Ihnen das wiederholte Schreiben derselben Fragen.
Sie können denselben SQL-Code wiederholt ausführen und Parameter für gespeicherte Prozeduren bereitstellen. Bei Bedarf reagiert die gespeicherte Prozedur entsprechend den bereitgestellten Parameterwerten.
Die Leistung kann auch durch gespeicherte Prozeduren verbessert werden. Zur Ausführung mehrerer Aufgaben wird eine Reihe von SQL-Anweisungen verwendet. Welche SQL-Anweisungen als nächstes ausgeführt werden, hängt von den Ergebnissen der anfänglichen SQL-Anweisung und der bedingten Logik ab. Diese SQL-Anweisungen und die darin enthaltene bedingte Logik können zu einem einzigen Ausführungsplan auf dem Server zusammengefasst werden, indem sie in eine gespeicherte Prozedur geschrieben werden. Da die gesamte Arbeit auf dem Server ausgeführt wird, kann die bedingte Logik ausgeführt werden, ohne dass die Ergebnisse an den Client übergeben werden.
Vorteile gespeicherter Prozeduren
Kompilieren und ausführen
Jede gespeicherte Prozedur wird einmal von SQL Server kompiliert und dann wird der Ausführungsplan wiederverwendet. Wenn gespeicherte Prozeduren häufig aufgerufen werden, sind die Leistungsverbesserungen enorm.
Reduzierter Client-/Server-Verkehr
Wenn die Netzwerkbandbreite in Ihrer Umgebung ein Problem darstellt, werden Sie es zu schätzen wissen, dass gespeicherte Prozeduren langwierige SQL-Suchen in einer einzigen Zeile komprimieren können, die über die Leitung übertragen werden kann.
Effiziente Code-Wiederverwendung und Programmierabstraktion
Gespeicherte Prozeduren stehen vielen Benutzer- und Clientanwendungen zur Verfügung. Wenn Sie sie auf geplante Weise verwenden, dauert es weniger Zeit, den Entwicklungszyklus abzuschließen.
Erweiterte Sicherheitsmaßnahmen
Unabhängig von den Berechtigungen für die zugrunde liegende Tabelle können Sie Benutzern Zugriff zum Ausführen gespeicherter Prozeduren gewähren.
Funktionen in SQL
SQL Server unterstützt zwei Arten von Funktionen
Eingebaute Funktionen
Eingebaute Funktionen funktionieren gemäß der Transact-SQL-Referenzdefinition und können nicht geändert werden. Nur Transact-SQL-Anweisungen, die der durch die Transact-SQL-Referenz festgelegten Syntax folgen, können diese Funktionen als Referenz verwenden.
Das System hat diese Funktionen bereits definiert. Es ist in zwei Kategorien unterteilt -
In diesem Tutorial beziehen wir uns auf die folgende Tabelle -
ID |
Name |
Tag |
Alter |
---|---|---|---|
1 |
Stern |
90 |
19 |
2 |
Suresh |
50 |
20 |
3 |
Pratik |
80 |
21 |
4 |
Dhanraj |
95 |
19 |
5 |
Ram |
85 |
18 |
Skalarfunktion
Diese Operationen nehmen einen Wert als Eingabe und geben ihn aus. Einige systemische Skalaroperationen umfassen -
round() – Rundet eine Zahl auf die nächsten drei Ziffern. Zum Beispiel ergibt „round(28.64851)“ 28,649
SELECT ROUND(MARKS,0) FROM students;
upper() - Upper("english") gibt Englisch zurück, Lower("ENGLISH") gibt Englisch zurück.
SELECT upper(NAME) FROM Students;
Ausgabe
HARSH SURESH PRATIK DHANRAJ RAM
rand() – Mit der Funktion rand() wird eine Zufallszahl in einem Bereich zurückgegeben. Rand(8) gibt beispielsweise 0,71372242401 oder eine andere zufällig generierte Zahl zurück.
Systemaggregatfunktion
Diese Funktionen geben einen einzelnen Wert zurück, diese Funktionen akzeptieren eine Sammlung von Eingabeargumenten. Beispiele hierfür sind -
Avg() liefert den Durchschnittswert für alle bereitgestellten Eingaben.
Beispiel
SELECT AVG(MARKS) FROM Students;
Ausgabe
80
Count() Diese Funktion gibt die Anzahl der Zeilen zurück, die die gegebene Bedingung erfüllen.
Beispiel
SELECT COUNT(*) FROM Students;
Ausgabe
5
Max() und min() Die Funktionen max() und min() geben den höchsten und niedrigsten Wert unter den angegebenen Argumenten zurück.
Beispiel
SELECT MAX(AGE) FROM Students
Ausgabe
21
Beispiel
SELECT MIN(AGE) FROM Students;
Ausgabe
18
Benutzerdefinierte Funktionen
Erstellen Sie benutzerdefinierte Transact-SQL-Funktionen mit dem Befehl CREATE FUNCTION. Benutzerdefinierte Funktionen stellen einen einzelnen Wert bereit und erfordern null bis mehr Eingabeparameter. Einige benutzerdefinierte Funktionen (UDFs) geben einen einzelnen Datenwert zurück, beispielsweise eine Dezimalzahl, ein Zeichen oder eine Ganzzahl.
Skalare Operationen
Benutzerdefinierte Skalarfunktionen geben für jeden Schritt der Funktionsoperation einen Wert aus. Gibt einen beliebigen Datentypwert in der Funktion zurück.
Tabellenwertige Funktionen
Inline-Funktionen
Inline-Tabellenfunktionen mit benutzerdefinierten Werten führen Operationen aus und geben die Ergebnisse als Tabelle zurück. Es gibt keinen BEGIN/END-Körper. Verwenden Sie einfach eine SELECT-Anweisung, um die Ergebnisse zu erhalten.
Funktionen mit mehreren Anweisungen
Wenn eine benutzerdefinierte Funktion eine nicht änderbare SELECT-Anweisung oder mehrere SELECT-Anweisungen enthält, ändern sich die Ergebnisse nicht. Wir müssen Tabellenvariablen explizit angeben und die Werte beschreiben, die aus verschiedenen SQL-Abfragen abgerufen werden können.
Vorteile benutzerdefinierter Funktionen
Unterstützung der modularen Programmierung
Die Funktion kann einmal erstellt, in der Datenbank gespeichert und dann beliebig oft in der Software verwendet werden. Benutzerdefinierte Funktionen können geändert werden, ohne den Quellcode der Anwendung zu ändern.
Sie beschleunigen die Ausführung
Benutzerdefinierte Transact-SQL-Funktionen (z. B. gespeicherte Prozeduren) reduzieren die Kompilierungskosten, indem sie Pläne zwischenspeichern und für mehrere Ausführungen wiederverwenden. Da benutzerdefinierte Funktionen nicht bei jeder Verwendung erneut analysiert und optimiert werden müssen, wird die Ausführungszeit erheblich verkürzt.
Bei Rechenlasten, Geschäftslogik und String-Operationen schneiden CLR-Funktionen deutlich besser ab als Transact-SQL-Funktionen. Datenzugriffsintensive Logik eignet sich besser für Transact-SQL-Vorgänge.
Sie können die Netzwerkaktivität verringern.
Funktionen können zur Darstellung von Operationen verwendet werden, die Informationen basierend auf komplexen Einschränkungen filtern, die nicht durch einen einzelnen numerischen Ausdruck dargestellt werden können. Um die Anzahl der an den Client bereitgestellten Zeilen zu reduzieren, kann diese Funktion in der WHERE-Klausel verwendet werden.
Der Unterschied zwischen benutzerdefinierten Funktionen und gespeicherten Prozeduren
Die folgende Tabelle zeigt die wichtigsten Unterschiede zwischen benutzerdefinierten Funktionen und gespeicherten Prozeduren in SQL -
Standard |
Benutzerdefinierte Funktionen |
Gespeicherte Prozedur |
---|---|---|
Rückgabewert |
Einzelwert |
Einzeln, mehrfach oder sogar null |
Parameter |
Wert eingeben |
Eingabe- und Ausgabewerte |
Datenbank |
Kann nicht geändert werden |
kann geändert werden |
Statement |
Nur SELECT-Anweisung |
SELECT- und DML-Anweisungen |
Anruf |
Anruf vom Verfahren |
kann nicht von der Funktion aufgerufen werden |
Kompilieren und ausführen |
Muss jedes Mal kompiliert werden |
Nur einmal kompilieren |
Transaktionsmanagement |
Unmöglich |
Unmöglich |
Fazit
In diesem Artikel haben wir uns eingehend mit gespeicherten Prozeduren und ihren Vorteilen, Funktionen, Funktionstypen und Vorteilen von Funktionen befasst und abschließend den Unterschied zwischen Funktionen und gespeicherten Prozeduren erläutert.
Das obige ist der detaillierte Inhalt vonSchreiben Sie Funktionen und gespeicherte Prozeduren in SQL Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)?

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)?
