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:
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
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
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:
|
<<: Vue implementiert eine gleitende Navigation oben links und rechts
>>: Tutorial zum Einrichten geplanter Aufgaben zum Sichern der Oracle-Datenbank unter Linux
Inhaltsverzeichnis Ich habe vor Kurzem React gele...
Inhaltsverzeichnis 1. Vier Konzepte 1. JavaScript...
Tabelle erstellen und Index erstellen Tabelle tbl...
Eine direkte Verwendung von Breite und Höhe ist ni...
In diesem Artikelbeispiel wird der spezifische Co...
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
var numA = 0,1; var numB = 0,2; Alarm (Zahl A + Z...
Inhaltsverzeichnis Vorwort Einführung in Dockerfi...
Über let, um Probleme durch Schließung zu vermeid...
Einfache Funktion: Klicken Sie auf das Plug-In-Sy...
1. Was ist ein Proxyserver? Proxyserver: Wenn der...
Inhaltsverzeichnis 1. MySQL herunterladen 1.1 Her...
Die Frage wird zitiert von: https://www.zhihu.com...
In SQL wird GROUP BY verwendet, um Daten in den E...
1. Definition von offsetParent: offsetParent ist ...