Einführung in die MySQL-Ansicht und Tutorial zur grundlegenden Bedienung

Einführung in die MySQL-Ansicht und Tutorial zur grundlegenden Bedienung

Vorwort

Ansicht ist ein sehr nützliches Datenbankobjekt im Datenbanksystem. MySQL 5.0 und spätere Versionen haben Unterstützung für Ansichten hinzugefügt.

Ansichten verstehen

Eine Ansicht ist eine virtuelle Tabelle, deren Inhalt durch eine Abfrage definiert wird. Wie eine echte Tabelle enthält eine Ansicht eine Reihe benannter Spalten und Zeilendaten, aber eine Ansicht ist keine Datentabelle, die tatsächlich in der Datenbank gespeichert ist.

Eine Ansicht ist eine aus einer oder mehreren Tabellen oder Ansichten abgeleitete Tabelle, die eine Reihe benannter Spalten und eine Anzahl Zeilen enthält.

Ansichten unterscheiden sich in folgenden Punkten von Tabellen:

  • Eine View ist keine reale Tabelle in der Datenbank, sondern eine virtuelle Tabelle, deren Struktur und Daten auf Abfragen realer Tabellen in der Datenbank basieren.
  • Der Inhalt der Ansicht wird durch die in der Datenbank gespeicherte SQL-Anweisung der Abfrageoperation definiert. Die Spalten- und Zeilendaten stammen aus der tatsächlichen Tabelle, auf die die Ansichtsabfrage verweist, und werden dynamisch generiert, wenn auf die Ansicht verwiesen wird.
  • Eine Ansicht hat keine tatsächlichen physischen Datensätze und wird nicht in Form eines Datensatzes in der Datenbank gespeichert. Die entsprechenden Daten werden tatsächlich in der realen Tabelle gespeichert, auf die die Ansicht verweist.
  • Ansichten sind Fenster zu den Daten und Tabellen sind der Inhalt. Eine Tabelle ist eine Speichereinheit für tatsächliche Daten, während eine Ansicht Daten nur auf unterschiedliche Weise anzeigt. Ihre Datenquelle ist immer noch die eigentliche Tabelle.
  • Eine Ansicht ist eine Methode zum Anzeigen einer Datentabelle. Sie kann die Daten abfragen, die aus bestimmten Feldern in der Datentabelle bestehen. Es handelt sich lediglich um eine Sammlung von SQL-Anweisungen. Aus Sicherheitssicht bieten Ansichten eine höhere Datensicherheit, da Benutzer, die Ansichten verwenden, die Datentabellen nicht berühren und die Tabellenstruktur nicht kennen.
  • Das Erstellen und Löschen einer Ansicht wirkt sich nur auf die Ansicht selbst aus, nicht auf die zugehörige Basistabelle.

Obwohl sich Ansichten und Tabellen grundsätzlich unterscheiden, ist die Struktur einer Ansicht nach der Definition mit der einer Tabelle identisch und es können Vorgänge wie Abfragen, Ändern, Aktualisieren und Löschen daran ausgeführt werden.

1. Vorbereitung

Erstellen Sie in der MySQL-Datenbank zwei Tabellen, „Balance“ und „Customer“, und fügen Sie die Daten ein.

Tabelle Kunde erstellen(
 id int(10) Primärschlüssel,
 Name char(20) nicht null,
 Rolle char(20) nicht null,
 Telefon char(20) nicht null,
 sex char(10) nicht null,
 Adresse char(50) nicht null
)ENGINE=InnoDB STANDARD-CHARSET=utf8;

#Fremdschlüssel ist customerId
Tabellensaldo erstellen(
 id int(10) Primärschlüssel,
 customerId int(10) ungleich null,
 Saldo DECIMAL(10,2),
 Fremdschlüssel (Kunden-ID) verweist auf Kunden-ID 

)ENGINE=InnoDB STANDARD-CHARSET=utf8;

Fügen Sie jeweils 3 Datensätze in die Kundentabelle und die Saldentabelle ein.

in Kundenwerte einfügen (0001, „Xiaoming“, „VIP1“, „12566666“, „männlich“, „Nr. 888, Bezirk Jiangning“);
in Kundenwerte einfügen (0002, „xiaohong“, „vip10“, „15209336760“, „männlich“, „Nr. 888, Bezirk Jianye“);
in Kundenwerte einfügen (0003, „xiaocui“, „vip11“, „15309336760“, „weiblich“, „新街口888号“);

in den Saldo Werte (1.0001.900,55) einfügen;
in den Saldo Werte (2.0002.900,55) einfügen;
in Saldowerte einfügen (3.0003.10000);

2. Einführung anzeigen

Eine Ansicht kann einfach als virtuelle Tabelle verstanden werden. Sie unterscheidet sich von der realen Datentabelle in der Datenbank. Die Daten in der Ansicht werden basierend auf der Abfrage der realen Tabelle abgerufen. Ansichten haben eine ähnliche Struktur wie echte Tabellen. Ansichten unterstützen auch Vorgänge wie das Aktualisieren, Abfragen und Löschen realer Tabellen. Warum brauchen wir also Ansichten?

a. Verbessern Sie die Sicherheit der realen Tabelle: Ansichten sind virtuell. Benutzern können nur Anzeigeberechtigungen erteilt werden, ohne Berechtigungen für die reale Tabelle zu erteilen. Dadurch wird die reale Tabelle geschützt.

b. Angepasste Datenanzeige: Basierend auf derselben tatsächlichen Tabelle können verschiedene Ansichten verwendet werden, um die Datenanzeige an Benutzer mit unterschiedlichen Anforderungen anzupassen.

c. Vereinfachen Sie Datenoperationen: Dies eignet sich für Szenarien, in denen Abfrageanweisungen komplex und häufig verwendet werden, und kann über Ansichten erreicht werden.

......

Es ist zu beachten, dass für ansichtsbezogene Vorgänge Benutzer mit entsprechenden Berechtigungen erforderlich sind. Die folgenden Vorgänge werden mit dem Root-Benutzer ausgeführt und der Standardbenutzer verfügt über die entsprechenden Vorgangsberechtigungen.

Syntax zum Erstellen von Ansichten

Erstellen Sie die Ansicht <Ansichtsname> als <Select-Anweisung>.

Ansichtssyntax ändern

Um den Ansichtsnamen zu ändern, können Sie ihn zuerst löschen und dann mit derselben Anweisung erstellen.

#Aktualisieren Sie die Ansichtsstruktur. Alter View <Ansichtsname> als <Select-Anweisung>.
#Das Aktualisieren von Ansichtsdaten entspricht dem Aktualisieren der tatsächlichen Tabelle und gilt nicht für Ansichten, die basierend auf mehreren Tabellen erstellt wurden.

Hinweis: Die Daten in einigen Ansichten können nicht aktualisiert werden, das heißt, sie können nicht mit Anweisungen wie „update“ und „insert“ aktualisiert werden, zum Beispiel:

a. Die Select-Anweisung enthält mehrere Tabellen

b. Die Ansicht enthält eine Having-Klausel

c. Der Versuch enthält das Schlüsselwort „distinct“

......

Ansichtssyntax entfernen

Ansicht löschen <Ansichtsname>

3. Bedienung anzeigen

Erstellen einer Ansicht basierend auf einer einzelnen Tabelle

mysql> Ansicht bal_view erstellen 
 -> als
 -> wähle * aus dem Guthaben;
Abfrage OK, 0 Zeilen betroffen (0,22 Sek.)

Zeigen Sie nach Abschluss der Erstellung die Struktur und Datensätze von bal_view an. Es kann festgestellt werden, dass die durch Abfragen von Daten über die Ansicht erzielten Ergebnisse genau dieselben sind wie die durch Abfragen der realen Tabelle erzielten Ergebnisse.

#Fragen Sie die Struktur von bal_viewmysql> desc bal_view ab;
+------------+---------------+------+-----+---------+---------+----------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+------------+---------------+------+-----+---------+---------+----------+
| Ich würde | int(10) | NEIN | | NULL | |
| Kunden-ID | int(10) | NEIN | | NULL | |
| Saldo | Dezimalzahl(10,2) | JA | | NULL | |
+------------+---------------+------+-----+---------+---------+----------+
3 Reihen im Satz (0,07 Sek.)
#Abfrage der Datensätze in bal_viewmysql> select * from bal_view;
+----+------------+----------+
| ID | Kunden-ID | Guthaben |
+----+------------+----------+
| 1 | 1 | 900,55 |
| 2 | 2 | 900,55 |
| 3 | 3 | 10000,00 |
+----+------------+----------+
3 Zeilen im Satz (0,01 Sek.)

Aus der Anweisung, mit der die Ansicht erstellt wird, lässt sich unschwer schließen: Wenn sich die Daten in der realen Tabelle ändern, ändern sich auch die Daten in der Ansicht entsprechend. Wenn sich also die Daten in der Ansicht ändern, ändern sich dann auch die Daten in der tatsächlichen Tabelle? Lassen Sie uns experimentieren und den Saldo des Kunden mit der ID=1 auf 2000 ändern.

mysql> aktualisiere bal_view, setze Balance=2000, wobei ID=1 ist;
Abfrage OK, 1 Zeile betroffen (0,05 Sek.)
Übereinstimmende Zeilen: 1 Geändert: 1 Warnungen: 0

Werfen wir einen Blick auf die Daten der realen Tabellenbilanz.

mysql> wähle * aus bal_view, wobei id=1;
+----+------------+---------+
| ID | Kunden-ID | Guthaben |
+----+------------+---------+
| 1 | 1 | 2000,00 |
+----+------------+---------+
1 Zeile im Satz (0,03 Sek.)

Fazit: Wenn sich die Daten in der Ansichtstabelle ändern, ändern sich auch die Daten in der realen Tabelle entsprechend.

Erstellen einer Ansicht basierend auf mehreren Tabellen

Erstellen Sie eine Ansicht cus_bal mit zwei Feldern: Kundenname und Saldo.

mysql> Ansicht cus_bal erstellen
 -> (cname, bal)
 -> als
 -> wählen Sie customer.name,balance.balance aus customer ,balance
 -> wobei customer.id=balance.customerId;
Abfrage OK, 0 Zeilen betroffen (0,05 Sek.)
#Daten in cus_balmysql anzeigen> select * from cus_bal;
+----------+----------+
| cname | bal |
+----------+----------+
| 2000,00 |
| xiao hong | 900,55 |
| 10000,00 |
+----------+----------+
3 Reihen im Satz (0,28 Sek.)

Ändern einer Ansicht

Ändern Sie in der Ansicht cus_bal „cname“ in „cusname“.

mysql> Ansicht ändern cus_bal
 -> (Benutzername, Bal)
 -> als
 -> wählen Sie customer.name,balance.balance aus customer ,balance
 -> wobei customer.id=balance.customerId;
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)
#Sehen Sie sich die geänderte Ansichtsstruktur an.
mysql> Beschreibung cus_bal;
+---------+---------------+------+-----+---------+---------+----------+
| Feld | Typ | Null | Schlüssel | Standard | Extra |
+---------+---------------+------+-----+---------+---------+----------+
| cusname | char(20) | NEIN | | NULL | |
| bal | Dezimalzahl(10,2) | JA | | NULL | |
+---------+---------------+------+-----+---------+---------+----------+
2 Zeilen im Satz (0,00 Sek.)

Ändern einer auf Basis mehrerer Tabellen erstellten Ansicht

mysql> in cus_bal einfügen (cusname, bal) Werte ("ee", 11);
FEHLER 1393 (HY000): Über eine Join-Ansicht „rms.cus_bal“ kann nicht mehr als eine Basistabelle geändert werden.

Löschen einer Ansicht

Löschen Sie die Ansicht cus_bal

Ansicht cus_bal löschen;
mysql> Ansicht cus_bal löschen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So erstellen Sie eine Ansicht für mehrere Tabellen in MySQL
  • Detaillierte Erläuterung der Verwendung von Ansichten in MySQL-Hinweisen
  • Tipps zur Verwendung von Ansichten in MySQL und Multi-Table INNER JOIN
  • Detaillierte Erklärung der Verwendung und Unterschiede zwischen Indizes und Ansichten in MySQL
  • Zusammenfassung der MySQL-Ansichtsprinzipien und Anwendungsbeispiele
  • Anwendungsanalyse basierend auf MySQL-Transaktionen, Ansichten, gespeicherten Prozeduren und Triggern
  • Mysql-Angelegenheiten, Ansichten, Funktionen, Trigger-Befehle (ausführliche Erklärung)
  • MySQL-Ansichtsprinzipien und grundlegende Bedienungsbeispiele
  • Analyse der MySQL-Ansichtsfunktionen und Anwendungsbeispiele
  • Erweiterte Verwendung von Ansichten, Transaktionen, Indizes, Selbstverbindungen und Benutzerverwaltung in der MySQL-Datenbank – Beispielanalyse
  • Detaillierte Erklärung zum Erstellen einer aktualisierbaren Ansicht in MySQL

<<:  Vue implementiert eine gleitende Navigation oben links und rechts

>>:  Tutorial zum Einrichten geplanter Aufgaben zum Sichern der Oracle-Datenbank unter Linux

Artikel empfehlen

Javascript-Betriebsmechanismus „Event Loop“

Inhaltsverzeichnis 1. Vier Konzepte 1. JavaScript...

So verwenden Sie Indizes zur Optimierung von MySQL ORDER BY-Anweisungen

Tabelle erstellen und Index erstellen Tabelle tbl...

Die Element-UI-Tabelle realisiert die Dropdown-Filterfunktion

In diesem Artikelbeispiel wird der spezifische Co...

js genaue Berechnung

var numA = 0,1; var numB = 0,2; Alarm (Zahl A + Z...

Implementierung zum Erstellen benutzerdefinierter Images mit Dockerfile

Inhaltsverzeichnis Vorwort Einführung in Dockerfi...

Vermeidung von durch Closures verursachten Problemen in JavaScript

Über let, um Probleme durch Schließung zu vermeid...

Der gesamte Prozess der Entwicklung eines Google-Plug-Ins mit vue+element

Einfache Funktion: Klicken Sie auf das Plug-In-Sy...

JavaScript-OffsetParent-Fallstudie

1. Definition von offsetParent: offsetParent ist ...