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

SQL-Aggregation, Gruppierung und Sortierung

Inhaltsverzeichnis 1. Aggregierte Abfrage 1. COUN...

Vue+Websocket implementiert einfach die Chat-Funktion

In diesem Artikel wird der spezifische Code von V...

Detaillierte Erklärung der React-Ereignisbindung

1. Was ist In react Anwendungen werden Ereignisna...

Binäre Typoperationen in MySQL

Dieser Artikel stellt hauptsächlich die binären O...

Detaillierte Erklärung des virtuellen DOM und des Diff-Algorithmus in React

Die Rolle des virtuellen DOM Zunächst müssen wir ...

CentOS 8 offiziell veröffentlicht, basierend auf Red Hat Enterprise Linux 8

Das CentOS-Projekt, ein 100 % kompatibler Neuaufb...

Lösung zum Vergessen des Root-Passworts von MySQL5.7 unter Windows 8.1

【Hintergrund】 Mir ist beim Lernen kürzlich etwas ...

Beispielcode für die Konvertierung von MySQL-Zeilen und -Spalten

1. Nachfrage Wir haben drei Tabellen. Wir müssen ...

Sammlung von 12 praktischen Web-Online-Tools

1. Favicon.cc Um ICO-Symbol-Websites online zu er...

Implementierung der Docker-Bereitstellung von Tomcat- und Webanwendungen

1. Docker online herunterladen yum install -y epe...

js implementiert einen einfachen Rechner

Verwenden Sie natives JS, um einen einfachen Rech...

Adaptive Breitentabelle für HTML-Seiten

Auf den Seiten von Webanwendungen werden häufig T...

Detaillierte Erläuterung der MySQL-Datenbankisolationsebene und des MVCC

Inhaltsverzeichnis 1. Isolationsstufe LESEN SIE U...