logo

SQL-Ansichten

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

Tischstudent

Studentennoten

Tabelle Schülernoten

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:

Ansichtsbeispiele erstellen

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:

Ausgabe anzeigen

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:

Ausgabe anzeigen

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
  1. Die SELECT-Anweisung, die zum Erstellen der Ansicht verwendet wird, sollte keine GROUP BY-Klausel oder ORDER BY-Klausel enthalten.
  2. Die SELECT-Anweisung sollte nicht das Schlüsselwort DISTINCT enthalten.
  3. Die Ansicht sollte alle NOT NULL-Werte haben.
  4. Die Ansicht sollte nicht mit verschachtelten oder komplexen Abfragen erstellt werden.
  5. 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:

Beispielansicht erstellen oder ersetzen

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:

Zeile im Ansichtsbeispiel einfügen

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:

Zeile aus Beispielansicht löschen

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:

  1. 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.
  2. Datenkomplexität verbergen – Eine Ansicht kann die Komplexität verbergen, die in mehreren verbundenen Tabellen vorhanden ist.
  3. 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.
  4. Komplexe Abfragen speichern – Ansichten können zum Speichern komplexer Abfragen verwendet werden.
  5. 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.
  6. 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.