Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren

Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren

Sicht

Was ist eine Ansicht? Welche Rolle spielt eine Ansicht?

Eine Ansicht ist eine virtuelle Tabelle, eine logische Tabelle , die selbst keine Daten enthält . Im Datenwörterbuch als Select-Anweisung gespeichert .

Über die Ansicht können Teile der Daten der Basistabelle (die Tabelle, aus der die Ansicht erstellt wurde, wird als Basistabelle bezeichnet) angezeigt werden. Vereinfacht ausgedrückt stammen die Daten der Ansicht aus der Basistabelle.

Vorteile von Ansichten:

  • Einfach: Benutzer, die Ansichten verwenden, müssen sich nicht um die Struktur, Join-Bedingungen und Filterbedingungen der entsprechenden Tabellen kümmern. Für Benutzer ist der Ergebnissatz bereits durch die zusammengesetzten Bedingungen gefiltert.
  • Sicherheit: Benutzer, die Ansichten verwenden, können nur auf die Ergebnismengen zugreifen, die sie abfragen dürfen. Die Berechtigungsverwaltung für Tabellen kann nicht auf eine bestimmte Zeile oder Spalte beschränkt werden, dies lässt sich jedoch über Ansichten leicht erreichen.
  • Datenunabhängigkeit: Sobald die Struktur der Ansicht festgelegt ist, können die Auswirkungen von Änderungen der Tabellenstruktur auf Benutzer abgeschirmt werden. Das Hinzufügen von Spalten zur Quelltabelle hat keine Auswirkungen auf die Ansicht. Wenn die Quelltabelle den Spaltennamen ändert, kann dies durch Ändern der Ansicht gelöst werden, ohne dass dies Auswirkungen auf die Besucher hat.
  • Es wird kein Platz belegt: Ansichten sind logische Tabellen und belegen keinen Speicherplatz.

Kurz gesagt werden Ansichten meistens verwendet, um die Datensicherheit zu gewährleisten und die Abfrageeffizienz zu verbessern.

Nachteile von Ansichten:

  • Schlechte Leistung: SQL Server muss Ansichtsabfragen in Abfragen für Basistabellen umwandeln. Wenn die Ansicht durch eine komplexe Abfrage mit mehreren Tabellen definiert ist, wird selbst eine einfache Abfrage der Ansicht von SQL Server in eine komplexe Kombination umgewandelt, was eine gewisse Zeit in Anspruch nimmt.
  • Änderungseinschränkungen: Wenn ein Benutzer versucht, bestimmte Informationen in einer Ansicht zu ändern, muss die Datenbank dies in eine Änderung bestimmter Informationen in der Basistabelle umwandeln. Dies ist bei einfachen Ansichten sehr praktisch, bei komplexeren Ansichten ist es jedoch möglicherweise nicht änderbar.

Erstellen und Ändern von Ansichten

--Die grundlegende Syntax zum Erstellen lautet:
Erstellen Sie die Ansicht <Ansichtsname> als Select-Anweisung.
Erstellen Sie die Ansicht <Ansichtsname> (Feld) als Select-Anweisung.
Ansicht <Ansichtsname> erstellen oder ersetzen;

--Die geänderte Syntax lautet:
Ändern Sie die Ansicht <Ansichtsname> als Select-Anweisung.

--Löschsyntax anzeigen:
Ansicht löschen <Ansichtsname>;

auslösen

Was ist ein Trigger?

Ein Trigger überwacht eine bestimmte Situation und löst eine Aktion aus.

Syntax zum Erstellen und Löschen von Triggern:

--Syntax zum Erstellen eines Triggers:
Trigger erstellen Triggername nach/vor Einfügen/Aktualisieren/Löschen auf Tabellenname für jede Zeile
beginnen
SQL-Anweisung;
Ende

--after/before: kann vor oder nach dem Auftreten des Ereignisses festgelegt werden --insert/update/delete: kann während der Ausführung von insert, update oder delete ausgelöst werden --for each row: führt in jeder zweiten Zeile eine Aktion aus --delete Triggersyntax:
Auslösername löschen;

Demo

--Erstellen Sie eine Tabelle mit Angaben zu den Verspätungen der Mitarbeiter:
Tabelle „work_time_delay“ erstellen (
empno int nicht null Kommentar 'Mitarbeiternummer',
ename varchar(50) Kommentar 'Mitarbeitername',
Status int Kommentar 'Status'
);

--delimiter // Benutzerdefiniertes Anweisungsendesymbol​
Trennzeichen //

Trigger trig_work nach Einfügen bei work_time_delay erstellen
für jede Zeile
beginnen
 Mitarbeiter aktualisieren, sal=sal-100 festlegen, wobei empno=new.empno;
Ende
//

--new: bezieht sich auf die neuen Daten, die vor oder nach dem Auftreten des Ereignisses gespeichert wurden

Gespeicherte Prozeduren

Was ist eine gespeicherte Prozedur?

Eine gespeicherte Prozedur kapselt eine komplexe Reihe von Operationen in einem Prozess. Ähnlich wie Shell, Python-Skripte usw.

Vorteile gespeicherter Prozeduren:

  • Komplexe Operationen, einfache Anrufe
  • Schnelle Geschwindigkeit

Nachteile gespeicherter Prozeduren:

  • Komplexe Verpackung
  • Keine Flexibilität

Erstellen einer gespeicherten Prozedursyntax

--Syntax zum Erstellen gespeicherter Prozeduren:
Prozedurnamen erstellen (Parameter …)
beginnen
 Verfahrensorgan;
 Verfahrensorgan;
Ende
--Parameter:
-- in|out|inout Parametername Typ (Länge)
-- in: zeigt an, dass der Anrufer einen Wert an die Prozedur übergibt (der übergebene Wert kann ein Literal oder eine Variable sein)
--out: gibt an, dass die Prozedur einen Wert an den Aufrufer übergibt (es können mehrere Werte zurückgegeben werden) (der Ausgabewert kann nur eine Variable sein)
-- inout: gibt an, dass der Anrufer einen Wert an die Prozedur übergibt und die Prozedur einen Wert an den Anrufer übergibt (der Wert kann nur eine Variable sein)

--Variablen deklarieren: Variablenname, Typ (Länge), Standardwert deklarieren;
--Weisen Sie einer Variablen einen Wert zu: set @variable name = value;
--Aufrufspeicherbefehl: call name(@variable name);
--Befehl zum Löschen gespeicherter Prozeduren: Prozedurnamen löschen;
--Befehl zum Anzeigen der erstellten gespeicherten Prozedur: show create procedure name\G;

Demo

--Erstellen Sie eine einfache gespeicherte Prozedur:
Trennzeichen //
Prozedurnamen erstellen (in n int)
beginnen
 Wählen Sie * aus dem Mitarbeiterlimit n;
Ende
//

--Rufen Sie die gespeicherte Prozedur set @n=5 auf;
//

Rufname(@n);
Prozedurname erstellen()
beginnen
 deklariere n int default 6;
 Wählen Sie * aus dem Mitarbeiterlimit n;
Ende
//

--Rufen Sie die gespeicherte Prozedur call name() auf.
//

Oben finden Sie eine kurze Erläuterung der Details zu MySql-Ansichten, Triggern und gespeicherten Prozeduren. Weitere Informationen zu MySql-Ansichten, Triggern und gespeicherten Prozeduren finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Entschlüsselung gespeicherter Prozeduren (Knackung von Funktionen, Prozeduren, Triggern, Ansichten. Nur für SQLSERVER2000 verfügbar)
  • SQLSERVER entschlüsselt verschlüsselte gespeicherte Prozeduren, Ansichten und Trigger (empfohlen)
  • Anwendungsanalyse basierend auf MySQL-Transaktionen, Ansichten, gespeicherten Prozeduren und Triggern
  • Detaillierte Erläuterung der gespeicherten Prozedur „MySql View Trigger“
  • MySQL-Serie fünf Ansichten, gespeicherte Funktionen, gespeicherte Prozeduren, Trigger

<<:  Beheben Sie den abnormalen Fehler beim Erstellen einer Vue-Umgebung mit Webpack

>>:  Fallstudie zum Löschen und Neuinstallieren eines Mac-Knotens

Artikel empfehlen

Detailliertes Beispiel für das Datenbankbetriebsobjektmodell in Spring jdbc

Detailliertes Beispiel für das Datenbankbetriebso...

Verwendung von Umgebungsvariablen in Docker und Lösungen für häufige Probleme

Vorwort Docker kann Umgebungsvariablen für Contai...

Ausführliche Erläuterung der InnoDB-Sperren in der MySQL-Technologie

Inhaltsverzeichnis Vorwort 1. Was ist ein Schloss...

So erstellen Sie ein Tomcat-Image basierend auf Dockerfile

Dockerfile ist eine Datei, die zum Erstellen eine...

Tipps zum Importieren von CSV-, Excel- oder SQL-Dateien in MySQL

1. CSV-Datei importieren Verwenden Sie den folgen...

Detaillierte grafische Erklärung zum Löschen des Keep-Alive-Cache

Inhaltsverzeichnis Eröffnungsszene Direktes Rende...

JavaScript implementiert Feuerwerkseffekte mit Soundeffekten

Ich habe eine halbe Stunde gebraucht, um den Code...

Beispielcode zur Implementierung eines Hintergrundunschärfeeffekts mit CSS

Ist es der unten gezeigte Effekt? Wenn ja, lesen ...

PostgreSQL-Materialisierte Ansichtsprozessanalyse

Dieser Artikel stellt hauptsächlich die Prozessan...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.18 winx64

Die Installation komprimierter Pakete hat sich se...

Tipps zum Schreiben prägnanter React-Komponenten

Inhaltsverzeichnis Vermeiden Sie die Verwendung d...