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

Analyse der Prinzipien von MySQL Dirty Page Flush und Shrinking Table Space

MySQL-Dirty-Pages Aufgrund des WAL-Mechanismus er...

Detaillierte Zusammenfassung von MySQL und verbindungsbezogenen Timeouts

MySQL und verbindungsbezogene Timeouts Vorwort: H...

Detaillierte Schritte zum Starten des Django-Projekts mit nginx+uwsgi

Wenn wir ein Webprojekt mit Django entwickeln, wi...

Detaillierte Erklärung der Truncate-Verwendung in MySQL

Anleitung in diesem Artikel: Es gibt zwei Möglich...

Lösung, wenn der Docker-Container nicht auf den Host-Port zugreifen kann

Ich bin kürzlich bei der Arbeit auf ein Problem g...

Detaillierte Einführung in Robots.txt

Grundlegende Einführung in robots.txt Robots.txt i...

Typische Fälle von MySQL-Indexfehlern

Inhaltsverzeichnis Typische Fälle Anhang: Häufige...

So komprimieren Sie Bilder effektiv mit JS

Inhaltsverzeichnis Vorwort Konvertierungsbeziehun...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.22 winx64

Das grafische Tutorial zur Installation und Konfi...