Ansichten in SQL sind eine Art virtueller Tisch. Eine Ansicht hat auch Zeilen und Spalten wie Tabellen, aber eine Ansicht speichert Daten nicht wie eine Tabelle auf der Festplatte. View definiert eine benutzerdefinierte Abfrage, die Daten aus einer oder mehreren Tabellen abruft und die Daten so darstellt, als kämen sie aus einer einzigen Quelle.
Wir können eine Ansicht erstellen, indem wir Felder aus einer oder mehreren in der Datenbank vorhandenen Tabellen auswählen. Eine Ansicht kann entweder alle Zeilen einer Tabelle oder bestimmte Zeilen basierend auf bestimmten Bedingungen enthalten.
In diesem Artikel erfahren Sie, wie Sie Ansichten in SQL erstellen, aktualisieren und löschen.
D emo SQL-Datenbank
Wir werden diese nutzen zwei SQL-Tabellen zum Beispiel.
Studentendetails

Studentennoten

Sie können diese Tabellen auf Ihrem System erstellen, indem Sie die folgende SQL-Abfrage schreiben:
MySQL -- Create StudentDetails table CREATE TABLE StudentDetails ( S_ID INT PRIMARY KEY, NAME VARCHAR(255), ADDRESS VARCHAR(255) ); INSERT INTO StudentDetails (S_ID, NAME, ADDRESS) VALUES (1, 'Harsh', 'Kolkata'), (2, 'Ashish', 'Durgapur'), (3, 'Pratik', 'Delhi'), (4, 'Dhanraj', 'Bihar'), (5, 'Ram', 'Rajasthan'); -- Create StudentMarks table CREATE TABLE StudentMarks ( ID INT PRIMARY KEY, NAME VARCHAR(255), Marks INT, Age INT ); INSERT INTO StudentMarks (ID, NAME, Marks, Age) VALUES (1, 'Harsh', 90, 19), (2, 'Suresh', 50, 20), (3, 'Pratik', 80, 19), (4, 'Dhanraj', 95, 21), (5, 'Ram', 85, 18);>
ANSICHTEN in SQL ERSTELLEN
Wir können eine Ansicht erstellen mit ANSICHT ERSTELLEN Stellungnahme. Eine Ansicht kann aus einer einzelnen Tabelle oder mehreren Tabellen erstellt werden.
Syntax
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parameter:
- Ansichtsname : Name für die Ansicht
- Tabellenname : Name der Tabelle
- Zustand : Bedingung zum Auswählen von Zeilen
Beispiele für SQL CREATE VIEW-Anweisungen
Schauen wir uns einige Beispiele der CREATE VIEW-Anweisung in SQL an, um besser zu verstehen, wie Ansichten in SQL erstellt werden.
Beispiel 1: Ansicht aus einer einzelnen Tabelle erstellen
In diesem Beispiel erstellen wir eine Ansicht mit dem Namen DetailsView aus der Tabelle StudentDetails. Abfrage:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Um die Daten in der Ansicht anzuzeigen, können wir die Ansicht auf die gleiche Weise abfragen wie eine Tabelle.
SELECT * FROM DetailsView;>
Ausgabe:

Beispiel 2: Ansicht aus Tabelle erstellen
In diesem Beispiel erstellen wir eine Ansicht mit dem Namen „StudentNames“ aus der Tabelle „StudentDetails“. Abfrage:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Wenn wir nun die Ansicht abfragen als:
SELECT * FROM StudentNames;>
Ausgabe:

Beispiel 3: Ansicht aus mehreren Tabellen erstellen
In diesem Beispiel erstellen wir eine Ansicht mit dem Namen MarksView aus den beiden Tabellen StudentDetails und StudentMarks. Um eine Ansicht aus mehreren Tabellen zu erstellen, können wir einfach mehrere Tabellen in die SELECT-Anweisung einschließen. Abfrage:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
So zeigen Sie Daten von View MarksView an:
SELECT * FROM MarksView;>
Ausgabe:

ALLE ANSICHTEN IN EINER DATENBANK AUFLISTEN
Wir können View mit auflisten VOLLSTÄNDIGE TABELLEN ANZEIGEN Aussage oder mit der information_schema-Tabelle . Eine Ansicht kann aus einer einzelnen Tabelle oder mehreren Tabellen erstellt werden.
Syntax
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Verwendung von information_schema
Wie viele MB sind in einem GB?
SELECT table_name FROM information_schema.views WHERE table_schema = 'database_name'; OR SELECT table_schema, table_name, view_definition FROM information_schema.views WHERE table_schema = 'database_name';>
ANSICHTEN LÖSCHEN in SQL
Mit SQL können wir eine vorhandene Ansicht löschen. Wir können die Ansicht mit löschen oder löschen DROP-Anweisung .
Syntax
DROP VIEW view_name;>
Beispiel
In diesem Beispiel löschen wir die Ansicht MarksView.
DROP VIEW MarksView;>
UPDATE-ANSICHT in SQL
Wenn Sie die vorhandenen Daten innerhalb der Ansicht aktualisieren möchten, verwenden Sie die AKTUALISIEREN Stellungnahme.
Syntax
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Notiz: Nicht alle Ansichten können mit der UPDATE-Anweisung aktualisiert werden.
Wenn Sie die Ansichtsdefinition aktualisieren möchten, ohne die Daten zu beeinträchtigen, verwenden Sie die ANSICHT ERSTELLEN ODER ERSETZEN Stellungnahme. Sie können diese Syntax verwenden
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Regeln zum Aktualisieren von Ansichten in SQL:
Um eine Ansicht zu aktualisieren, müssen bestimmte Bedingungen erfüllt sein. Wenn eine dieser Bedingungen zutrifft nicht erfüllt, kann die Ansicht nicht aktualisiert werden.
Römische Zahlen 1 bis 100
- Die SELECT-Anweisung, die zum Erstellen der Ansicht verwendet wird, sollte keine GROUP BY-Klausel oder ORDER BY-Klausel enthalten.
- Die SELECT-Anweisung sollte nicht das Schlüsselwort DISTINCT enthalten.
- Die Ansicht sollte alle NOT NULL-Werte haben.
- Die Ansicht sollte nicht mit verschachtelten oder komplexen Abfragen erstellt werden.
- Die Ansicht sollte aus einer einzelnen Tabelle erstellt werden. Wenn die Ansicht mit mehreren Tabellen erstellt wird, dürfen wir die Ansicht nicht aktualisieren.
Beispiele
Schauen wir uns verschiedene Anwendungsfälle zum Aktualisieren einer Ansicht in SQL an. Wir werden diese Anwendungsfälle anhand von Beispielen abdecken, um ein besseres Verständnis zu erhalten.
Beispiel 1: Ansicht aktualisieren, um ein Ansichtsfeld hinzuzufügen oder zu ersetzen
Wir können das nutzen ANSICHT ERSTELLEN ODER ERSETZEN Anweisung zum Hinzufügen oder Ersetzen von Feldern aus einer Ansicht.
Wenn wir die Ansicht aktualisieren möchten MarksView und fügen Sie das Feld AGE zu dieser Ansicht hinzu Studentennoten Tabelle, wir können dies tun durch:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Wenn wir jetzt alle Daten von MarksView abrufen als:
SELECT * FROM MarksView;>
Ausgabe:

Beispiel 2: Ansicht aktualisieren, um eine Zeile in eine Ansicht einzufügen
Wir können eine Zeile in eine Ansicht auf die gleiche Weise einfügen wie in eine Tabelle. Wir können das nutzen EINFÜGEN IN Anweisung von SQL zum Einfügen einer Zeile in eine Ansicht.
Im folgenden Beispiel fügen wir eine neue Zeile in die View DetailsView ein, die wir oben im Beispiel der Erstellung von Ansichten aus einer einzelnen Tabelle erstellt haben.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Wenn wir jetzt alle Daten aus DetailsView abrufen als:
SELECT * FROM DetailsView;>
Ausgabe:

Beispiel 3: Löschen einer Zeile aus einer Ansicht
Das Löschen von Zeilen aus einer Ansicht ist ebenso einfach wie das Löschen von Zeilen aus einer Tabelle. Wir können die DELETE-Anweisung von SQL verwenden, um Zeilen aus einer Ansicht zu löschen. Auch das Löschen einer Zeile aus einer Ansicht löscht zunächst die Zeile aus der tatsächlichen Tabelle und die Änderung wird dann in der Ansicht widergespiegelt.
In diesem Beispiel löschen wir die letzte Zeile aus der Ansicht DetailsView, die wir gerade im obigen Beispiel zum Einfügen von Zeilen hinzugefügt haben.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Wenn wir jetzt alle Daten aus DetailsView abrufen als:
SELECT * FROM DetailsView;>
Ausgabe:

WITH CHECK OPTION-Klausel
Der MIT CHECK-OPTION -Klausel in SQL ist eine sehr nützliche Klausel für Ansichten. Es gilt für eine aktualisierbare Ansicht.
Die WITH CHECK OPTION-Klausel wird verwendet, um Datenänderungen (mit INSERT oder UPDATE) zu verhindern, wenn die Bedingung in der WHERE-Klausel in der CREATE VIEW-Anweisung nicht erfüllt ist.
Wenn wir die WITH CHECK OPTION-Klausel in der CREATE VIEW-Anweisung verwendet haben und die UPDATE- oder INSERT-Klausel die Bedingungen nicht erfüllt, wird ein Fehler zurückgegeben.
Beispiel einer WITH CHECK OPTION-Klausel:
Im folgenden Beispiel erstellen wir eine View SampleView aus der StudentDetails-Tabelle mit einer WITH CHECK OPTION-Klausel.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
Wenn wir in dieser Ansicht nun versuchen, eine neue Zeile mit einem Nullwert in die Spalte „NAME“ einzufügen, wird ein Fehler ausgegeben, da die Ansicht mit der Bedingung für die Spalte „NAME“ als NICHT NULL erstellt wird. Obwohl die Ansicht beispielsweise aktualisierbar ist, ist auch die folgende Abfrage für diese Ansicht nicht gültig:
INSERT INTO SampleView(S_ID) VALUES (6);>
NOTIZ : Der Standardwert der Spalte NAME ist Null .
Verwendung einer Ansicht
Eine gute Datenbank sollte aus folgenden Gründen Ansichten enthalten:
- Einschränkung des Datenzugriffs – Ansichten bieten eine zusätzliche Ebene der Tabellensicherheit, indem sie den Zugriff auf einen vorgegebenen Satz von Zeilen und Spalten einer Tabelle beschränken.
- Datenkomplexität verbergen – Eine Ansicht kann die Komplexität verbergen, die in mehreren verbundenen Tabellen vorhanden ist.
- Vereinfachen Sie Befehle für den Benutzer – Mithilfe von Ansichten kann der Benutzer Informationen aus mehreren Tabellen auswählen, ohne dass der Benutzer tatsächlich wissen muss, wie eine Verknüpfung durchgeführt wird.
- Komplexe Abfragen speichern – Ansichten können zum Speichern komplexer Abfragen verwendet werden.
- Spalten umbenennen – Ansichten können auch zum Umbenennen der Spalten verwendet werden, ohne dass dies Auswirkungen auf die Basistabellen hat, vorausgesetzt, die Anzahl der Spalten in der Ansicht muss mit der Anzahl der in einer SELECT-Anweisung angegebenen Spalten übereinstimmen. Somit hilft das Umbenennen, die Namen der Spalten der Basistabellen auszublenden.
- Möglichkeit zur Mehrfachansicht – Für verschiedene Benutzer können auf derselben Tabelle unterschiedliche Ansichten erstellt werden.
Wichtige Erkenntnisse zu SQL-Ansichten
- Ansichten in SQL sind eine Art virtuelle Tabelle.
- Die Felder in einer Ansicht können aus einer oder mehreren Tabellen stammen.
- Wir können eine Ansicht mit der CREATE VIEW-Anweisung erstellen und eine Ansicht mit der DROP VIEW-Anweisung löschen.
- Wir können eine Ansicht mit der CREATE OR REPLACE VIEW-Anweisung aktualisieren.
- Die WITH CHECK OPTION-Klausel wird verwendet, um das Einfügen neuer Zeilen zu verhindern, die die Filterbedingung der Ansicht nicht erfüllen.