Detaillierte Analyse der Prinzipien und der Verwendung von MySQL-Ansichten

Detaillierte Analyse der Prinzipien und der Verwendung von MySQL-Ansichten

Vorwort:

In MySQL sind Ansichten wahrscheinlich eines der am häufigsten verwendeten Datenbankobjekte. Kennen Sie den Unterschied zwischen Ansichten und Tabellen? Wissen Sie, worauf Sie beim Erstellen und Verwenden von Ansichten achten müssen? Viele Leute haben möglicherweise nur ein oberflächliches Verständnis von Ansichten. Wenn Sie mehr über Ansichten erfahren möchten, lesen Sie bitte diesen Artikel. In diesem Artikel werden das Konzept, die Erstellung und die Verwendung von Ansichten ausführlich vorgestellt.

1. Definition und kurze Einführung anzeigen

Eine Ansicht ist eine visualisierte Tabelle, die auf dem Ergebnissatz einer SQL-Anweisung basiert. Das heißt, eine Ansicht ist eine virtuelle Tabelle, die alle oder einen Teil der Datensätze einer Tabelle enthalten kann und auch aus einer oder mehreren Tabellen erstellt werden kann. Durch die Verwendung einer Ansicht müssen Sie nicht alle Daten der Datentabelle sehen, sondern möchten nur die Daten abrufen, die Sie benötigen. Wenn wir eine Ansicht erstellen, führen wir tatsächlich eine SELECT-Anweisung in der Datenbank aus. Die SELECT-Anweisung enthält Feldnamen, Funktionen und Operatoren, um dem Benutzer Daten anzuzeigen.

Die Daten in der Ansicht hängen von den Daten in der Originaltabelle ab. Wenn sich also die Daten in der Originaltabelle ändern, ändern sich auch die Daten in der angezeigten Ansicht. Wenn Sie beispielsweise Daten in die Datentabelle einfügen, werden Sie beim Anzeigen der Ansicht feststellen, dass dieselben Daten auch in die Ansicht eingefügt wurden. Eine Ansicht besteht tatsächlich aus Tabellen in Form vordefinierter Abfragen.

2. Erstellung und Nutzung anzeigen

Erstellen Sie eine Standard-Syntax für Ansichten:

ERSTELLEN
 [ODER ERSETZEN]
 [ALGORITHMUS = {UNDEFINED | MERGE | VERSUCHBAR}]
 [DEFINER = Benutzer]
 [SQL-SICHERHEIT { DEFINER | INVOKER }]
 VIEW Ansichtsname [(Spaltenliste)]
 Als Select-Anweisung
 [MIT PRÜFOPTION [KASKADIERT | LOKAL]]

Grammatische Interpretation:

1) OR REPLACE: bedeutet das Ersetzen einer vorhandenen Ansicht. Wenn die Ansicht nicht vorhanden ist, ist CREATE OR REPLACE VIEW dasselbe wie CREATE VIEW.

2) ALGORITHMUS: Gibt den Ansichtsauswahlalgorithmus an. Der Standardalgorithmus ist UNDEFINED (undefiniert): MySQL wählt automatisch den zu verwendenden Algorithmus aus; Zusammenführen; temporäre Tabelle zum Anpassen, im Allgemeinen wird dieser Parameter nicht explizit angegeben.

3) DEFINER: Gibt an, wer der Ersteller oder Definierer der Ansicht ist. Wenn diese Option nicht angegeben ist, ist der Benutzer, der die Ansicht erstellt, der Definierer.

4) SQL-SICHERHEIT: SQL-Sicherheit, der Standard ist DEFINER

5) select_statement: stellt eine Select-Anweisung dar, die aus Basistabellen oder anderen Ansichten auswählen kann.

6) MIT CHECK-OPTION: Gibt an, dass die Ansicht beim Aktualisieren Einschränkungen sicherstellt. Der Standardwert ist CASCADED.

Tatsächlich müssen wir beim täglichen Erstellen von Ansichten nicht jeden Parameter angeben. Im Allgemeinen wird empfohlen, Ansichten wie folgt zu erstellen:

Ansicht erstellen <Ansichtsname> [(Spaltenliste)]
als Select-Anweisung mit Check-Option;

Hier sind einige konkrete Erstellungsbeispiele:

# Einzelne Tabellenansicht mysql> Ansicht erstellen v_F_players(Nummer, Name, Geschlecht, Telefonnummer)
 -> als
 -> wähle PLAYERNO,NAME,SEX,PHONENO aus PLAYERS
 -> wobei SEX='F'
 -> mit Prüfoption;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)
mysql> desc v_F_players;
+--------+----------+------+-----+---------+---------+----------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+--------+----------+------+-----+---------+---------+----------+
| Zahl | int(11) | NEIN | | NULL | |
| Name | char(15) | NEIN | | NULL | |
| Geschlecht | char(1) | NEIN | | NULL | |
| Telefon| char(13) | JA | | NULL | |
+--------+----------+------+-----+---------+---------+----------+
4 Zeilen im Satz (0,00 Sek.)
mysql> wähle * aus v_F_players;
+--------+----------+--------+------------+
| ID| Name| Geschlecht| Telefon|
+--------+----------+--------+------------+
| 8 | Newcastle | F | 070-458458 |
| 27 | Collins | F | 079-234857 |
| 28 | Collins | F | 010-659599 |
| 104 | Moorman | F | 079-987571 |
| 112 | Bailey | F | 010-548745 |
+--------+----------+--------+------------+
5 Zeilen im Satz (0,02 Sek.)
# Mehrtabellenansicht mysql> Ansicht v_match erstellen
 -> als 
 -> wähle a.SPIELERNR.,a.NAME.,SPIELNR.,GEWONNEN,VERLOREN.,c.TEAMNR.,c.DIVISION
 -> von 
 -> SPIELER a, SPIELE b, TEAMS c
 -> wobei a.PLAYERNO=b.PLAYERNO und b.TEAMNO=c.TEAMNO;
Abfrage OK, 0 Zeilen betroffen (0,03 Sek.)
mysql> wähle * aus v_match;
+----------+--------------+---------+------+----------+--------+----------+
| SPIELERNR. | NAME | SPIELNR. | GEWONNEN | VERLOREN | TEAMNR. | DIVISION |
+----------+--------------+---------+------+----------+--------+----------+
| 6 | Partner | 1 | 3 | 1 | 1 | erster |
| 44 | Bäcker | 4 | 3 | 2 | 1 | erster |
| 83 | Hoffnung | 5 | 0 | 3 | 1 | erste |
| 112 | Bailey | 12 | 1 | 3 | 2 | zweite |
| 8 | Newcastle | 13 | 0 | 3 | 2 | Zweiter |
+----------+--------------+---------+------+----------+--------+----------+
5 Zeilen im Satz (0,04 Sek.)

Ansichten werden auf die gleiche Weise wie Basistabellen verwendet. Beispielsweise können wir select * from view_name oder select * from view_name where ... verwenden. Ansichten können unnötige Daten herausfiltern und zugehörige Spaltennamen durch benutzerdefinierte Spaltennamen ersetzen. Als Zugriffsschnittstelle spielt es für eine View keine Rolle, wie komplex die Tabellenstruktur und die Tabellennamen der Basistabelle sind. Im Allgemeinen werden Ansichten nur für Abfragen verwendet. Ansichten selbst enthalten keine Daten. Daher werden DML-Operationen für Ansichten letztendlich in der Basistabelle widergespiegelt. Wenn eine Ansicht gelöscht, aktualisiert oder eingefügt wird, wird auch die ursprüngliche Tabelle aktualisiert. Wenn eine Ansicht gelöscht wird, ändert sich die ursprüngliche Tabelle nicht. Ansichten können nicht abgeschnitten werden. Aber im Allgemeinen sollten wir das Aktualisieren von Ansichten vermeiden, und DML-Operationen können die ursprüngliche Tabelle direkt aktualisieren.

3. Best Practices für Ansichten

Nachfolgend finden Sie eine kurze Einführung in die Vorteile von Ansichten. Anhand dieser Vorteile können wir die anwendbaren Szenarien von Ansichten leicht zusammenfassen.

1) Einfach: Benutzer, die Ansichten verwenden, müssen sich nicht um die Struktur, die Verknüpfungsbedingungen und die Filterbedingungen der entsprechenden Tabellen kümmern. Für Benutzer wird der Ergebnissatz bereits durch die zusammengesetzten Bedingungen gefiltert.

2) 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 problemlos erreichen.

3) 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.

Kurz gesagt werden Ansichten meistens verwendet, um die Datensicherheit zu gewährleisten und die Abfrageeffizienz zu verbessern. Wenn wir beispielsweise häufig die Assoziationsergebnisse mehrerer Tabellen verwenden, können wir Ansichten verwenden, um sie zu verarbeiten. Oder wenn ein Drittanbieterprogramm unsere Geschäftsbibliothek aufrufen muss, können wir bei Bedarf Ansichten erstellen, die das Drittanbieterprogramm abfragen kann.

Im täglichen Gebrauch und bei der Pflege von Ansichten habe ich die folgenden Vorgehensweisen als Referenz zusammengefasst:

  • Es wird empfohlen, dass Ansichtsnamen zur einfacheren Identifizierung mit einem einheitlichen Präfix wie v_ oder view_ beginnen.
  • SQL SECURITY verwendet den Standard-DEFINER, was bedeutet, dass der Ansichtsdefinierer über die Berechtigungen zum Abfragen der Ansicht verfügt.
  • Der Ansichtsdefinierer schlägt den entsprechenden Programmbenutzer vor.
  • Um Datenredundanz zu vermeiden, verknüpfen Sie die Ansicht nicht zu viele Tabellen.
  • Beim Abfragen einer Ansicht müssen Sie Bedingungen angeben. Es wird nicht empfohlen, jedes Mal alle Daten abzufragen.
  • Achten Sie bei der Migration von Ansichten darauf, dass in der neuen Umgebung ein definierender Benutzer für die Ansicht vorhanden ist.
  • Aktualisieren Sie Daten in Ansichten nicht direkt. Ansichten werden nur für Abfragen verwendet.

Zusammenfassen:

Ansichten werden in MySQL häufig verwendet. Dieser Artikel stellt das Konzept von Ansichten und deren Erstellung vor. Außerdem werden die Verwendungsszenarien und Vorteile von Ansichten beschrieben. Möglicherweise bemerken Sie bei der Verwendung von Ansichten und Tabellen keinen Unterschied, aber es gibt tatsächlich viele Tricks. Es wird empfohlen, Ansichten nur für Abfragen zu verwenden. Wenn Sie die Spezifikationen befolgen, sind Ansichten sehr praktisch. Ich hoffe, dieser Artikel hilft Ihnen.

Oben finden Sie eine detaillierte Analyse der Details der MySQL-Ansicht. Weitere Informationen zur MySQL-Ansicht finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung zum Erstellen einer Ansicht (CREATE VIEW) und zu Nutzungsbeschränkungen in MySQL
  • So erstellen Sie eine Ansicht in MySQL
  • Detaillierte Erklärung der Verwendung und Unterschiede von MySQL-Ansichten und -Indizes
  • Eine kurze Diskussion über MySql-Ansichten, Trigger und gespeicherte Prozeduren
  • Detaillierte Erläuterung der gespeicherten Prozedur „MySql View Trigger“
  • Detaillierte Erklärung des Prinzips und der Verwendung von MySQL-Ansichten
  • Detaillierte Erläuterung des Ansichtsbeispiels zur MySQL-Ansichtsverwaltung [Hinzufügen-, Löschen-, Ändern- und Abfragevorgänge]
  • Detaillierte Erklärung zum Erstellen einer aktualisierbaren Ansicht in MySQL
  • Der Unterschied zwischen Update und Select in MySQL für einzelne und mehrere Tabellen sowie Ansichten und temporäre Tabellen
  • mysql drei Tabellen verbunden, um eine Ansicht zu erstellen
  • MySQL View-Prinzipanalyse

<<:  Erläuterung des Vue.js $refs-Anwendungsfalls

>>:  Ubuntu installiert mehrere Versionen von CUDA und wechselt jederzeit

Artikel empfehlen

So überwachen Sie Array-Änderungen in JavaScript

Vorwort Als ich zuvor „defineProperty“ vorgestell...

So implementieren Sie den Selbststart eines Docker-Containers

Container-Autostart Docker bietet einen Neustartr...

Eine kurze Diskussion über den Unterschied zwischen src und href in HTML

Einfach ausgedrückt bedeutet src „Ich möchte dies...

Schritte zum Bereitstellen von Ingress-Nginx auf K8s

Inhaltsverzeichnis Vorwort 1. Bereitstellung und ...

JS implementiert Click-Drop-Effekt

js realisiert den Spezialeffekt des Klickens und ...

Implementieren einer benutzerdefinierten Bildlaufleiste mit nativem JS

In diesem Artikelbeispiel wird der spezifische JS...

3D-Tunneleffekt implementiert durch CSS3

Der erzielte EffektImplementierungscode html <...