Inhaltsverzeichnis
Gespeicherte Prozeduren in SQL
Vorteile gespeicherter Prozeduren
Kompilieren und ausführen
Reduzierter Client-/Server-Verkehr
Effiziente Code-Wiederverwendung und Programmierabstraktion
Erweiterte Sicherheitsmaßnahmen
Funktionen in SQL
Eingebaute Funktionen
Skalarfunktion
Ausgabe
Systemaggregatfunktion
Beispiel
Benutzerdefinierte Funktionen
Skalare Operationen
Tabellenwertige Funktionen
Inline-Funktionen
Funktionen mit mehreren Anweisungen
Vorteile benutzerdefinierter Funktionen
Der Unterschied zwischen benutzerdefinierten Funktionen und gespeicherten Prozeduren
Fazit
Heim Datenbank MySQL-Tutorial Schreiben Sie Funktionen und gespeicherte Prozeduren in SQL Server

Schreiben Sie Funktionen und gespeicherte Prozeduren in SQL Server

Sep 16, 2023 pm 03:13 PM

在 SQL Server 中编写函数和存储过程

Eine 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;
Nach dem Login kopieren
  • upper() - Upper("english") gibt Englisch zurück, Lower("ENGLISH") gibt Englisch zurück.

SELECT upper(NAME) FROM Students;
Nach dem Login kopieren

Ausgabe

HARSH
SURESH
PRATIK
DHANRAJ
RAM
Nach dem Login kopieren
  • 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;
Nach dem Login kopieren

Ausgabe

80
Nach dem Login kopieren

Count() Diese Funktion gibt die Anzahl der Zeilen zurück, die die gegebene Bedingung erfüllen.

Beispiel

SELECT COUNT(*) FROM Students;
Nach dem Login kopieren

Ausgabe

5
Nach dem Login kopieren

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
Nach dem Login kopieren

Ausgabe

21
Nach dem Login kopieren

Beispiel

SELECT MIN(AGE) FROM Students;
Nach dem Login kopieren

Ausgabe

18
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Mar 04, 2025 pm 03:52 PM

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

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 So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen Mar 04, 2025 pm 04:01 PM

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

Was ist SQLite? Umfassende Übersicht Was ist SQLite? Umfassende Übersicht Mar 04, 2025 pm 03:55 PM

Was ist SQLite? Umfassende Übersicht

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Mar 04, 2025 pm 03:54 PM

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 Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung Mar 04, 2025 pm 03:49 PM

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)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

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)? Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)? Mar 18, 2025 pm 12:00 PM

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

See all articles