Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was sind die Konzepte und Betriebsfunktionen von MySQL-Ansichten?

王林
Freigeben: 2023-05-27 22:17:08
nach vorne
881 Leute haben es durchsucht

Gemeinsame Datenbankobjekte

# 🎜🎜#Tabelle (TABELLE)Eine Tabelle ist eine logische Einheit zum Speichern von Daten, die in Form von Zeilen und Spalten vorliegen. Spalten sind Felder und Zeilen sind Datensätze #🎜🎜 #Data Dictionary Gespeicherte Prozedur (PROCEDURE)#🎜🎜 # wird zum Abschließen einer bestimmten Berechnung verwendet und hat einen Rückgabewert# 🎜🎜# Auslöser (TRIGGER)#🎜 🎜#

Das Konzept der Ansicht

Eine Ansicht ist eine virtuelle Tabelle, die selbst keine Daten enthält und nur sehr wenig Speicherplatz belegt. Dies ist ein wichtiges Konzept in SQL.

Ansichten werden auf vorhandenen Tabellen erstellt. Diese Tabellen, auf denen Ansichten erstellt werden, werden Basistabellen genannt.

Das Erstellen und Löschen von Ansichten betrifft nur die Ansicht selbst und nicht die entsprechende Basistabelle. Wenn DML-Vorgänge (Hinzufügen, Löschen, Ändern) für die Ansicht ausgeführt werden, werden die Daten in der Ansicht entsprechend aktualisiert, und umgekehrt ändern sich auch die Daten in der Datentabelle.

Die Anweisung, dass die Ansicht den Dateninhalt bereitstellt, ist eine SELECT-Anweisung. Die Ansicht kann als gespeicherte SELECT-Anweisung verstanden werden.

In der Datenbank speichert die Ansicht die Daten nicht, die Daten werden tatsächlich in der Datentabelle gespeichert. Wenn Sie Daten in der Datentabelle hinzufügen, löschen oder ändern, ändern sich die Daten in der Ansicht entsprechend. umgekehrt.

View ist eine weitere Darstellungsform, die Benutzern Basistabellendaten bereitstellt. Unter normalen Umständen muss die Datenbank kleiner Projekte keine Ansichten verwenden, aber in großen Projekten und wenn die Datentabellen relativ komplex sind, wird der Wert von Ansichten deutlich. Sie können uns dabei helfen, häufig abgefragte Ergebnismengen in virtuelle Tabellen einzufügen. Verbesserung der Nutzungseffizienz. Es ist sehr einfach zu verstehen und zu verwenden.

Erstellen Sie eine Ansicht.

Der Alias ​​des Felds in der Abfrageanweisung wird als Alias ​​der Ansicht angezeigt die Ansicht

CREATE VIEW vu_emps
AS 
SELECT employee_id,last_name,salary
FROM emps;
Nach dem Login kopieren

Sehen Sie sich die Ansicht an

Sehen Sie sich die Tabellenobjekte und Anzeigeobjekte der Datenbank an

CREATE VIEW vu_emps2(emp_id,name,monthly_sal)
AS 
SELECT employee_id,last_name,salary
FROM emps;
Nach dem Login kopieren

Sehen Sie sich die Datenbankstruktur an

CREATE VIEW vu_emp_dept
AS
SELECT employee_id,e.department_id,department_name
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
SELECT * FROM vu_emp_dept;
Nach dem Login kopieren

Sehen Sie sich die Attributinformationen der Daten an

CREATE VIEW vu_emp_dept1
AS
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
Nach dem Login kopieren

Sehen Sie sich die detaillierten Definitionsinformationen der Ansicht an

CREATE VIEW vu_emp4
AS 
SELECT department_id,department_name FROM vu_emp_dept;
SELECT * FROM vu_emp4;
Nach dem Login kopieren

Aktualisieren Sie die Ansichtsdaten

Das Aktualisieren der Daten in der Ansicht führt zu Änderungen der Daten in der Tabelle in der Basistabelle.

Das Aktualisieren der Daten in der Tabelle führt auch zu Änderungen der Daten in der Ansicht.

Damit die Damit die Ansicht aktualisierbar ist, muss jede Zeile in der Ansicht einer Zeile in der Basistabelle entsprechen und zwischen den beiden muss eine Eins-zu-eins-Beziehung bestehen. Darüber hinaus unterstützt die Ansicht keine Aktualisierungsvorgänge, wenn die folgenden Bedingungen in der Ansichtsdefinition auftreten:

Wenn beim Definieren der Ansicht „ALGORITHM = TEMPTABLE“ angegeben wird, unterstützt die Ansicht keine INSERT- und DELETE-Vorgänge

    Die Ansicht enthält keine Basis. Für alle Spalten in der Tabelle, die als nicht leer definiert sind und für die kein Standardwert angegeben ist, unterstützt die Ansicht keine INSERT-Operationen.
  • Wenn eine JOIN-Union-Abfrage in SELECT verwendet wird Wenn in der Feldliste nach der SELECT-Anweisung, die die Ansicht definiert, mathematische Ausdrücke oder Unterabfragen verwendet werden, unterstützt die Ansicht weder INSERT noch die Anweisung Unterstützen Sie UPDATE-Feldwerte, die mathematische Ausdrücke oder Unterabfragen verwenden.
  • Wenn in der Feldliste nach der SELECT-Anweisung, die die Ansicht definiert, DISTINCT, Aggregatfunktion, GROUP BY, HAVING, UNION usw. verwendet werden unterstützt INSERT, UPDATE und DELETE nicht;
  • enthält Unterabfragen in der SELECT-Anweisung, die die Ansicht definiert. Wenn die Tabelle nach FROM in der Unterabfrage referenziert wird, unterstützt die Ansicht INSERT, UPDATE und DELETE nicht
  • Die Ansichtsdefinition basiert auf einer nicht aktualisierbaren Ansicht.

  • Obwohl Ansichten Daten aktualisieren können, werden Ansichten als virtuelle Tabellen im Allgemeinen hauptsächlich zur Erleichterung von Abfragen verwendet, und es wird nicht empfohlen, Ansichtsdaten zu aktualisieren. Änderungen an den Ansichtsdaten werden durch Bearbeiten der Daten in der tatsächlichen Datentabelle abgeschlossen.

  • Ändern Sie die Ansicht
  • Methode 1: Verwenden Sie die CREATE OR REPLACE VIEW-Klausel, um die Ansicht zu ändern

    SHOW TABLES;
    Nach dem Login kopieren
    DESC vu_emp4;
    Nach dem Login kopieren
  • Hinweis: Die Aliase jeder Spalte in der CREATE VIEW-Klausel sollten jeder Spalte in der Unterabfrage entsprechen.
  • Methode 2: ALTER VIEW

  • Die Syntax zum Ändern der Ansicht lautet:

ALTER VIEW View Name

AS

Query Statement

mysql> SHOW TABLE STATUS LIKE 'vu_emp4'\G;
*************************** 1. row ***************************
           Name: vu_emp4
         Engine: NULL
        Version: NULL
     Row_format: NULL
           Rows: NULL
 Avg_row_length: NULL
    Data_length: NULL
Max_data_length: NULL
   Index_length: NULL
      Data_free: NULL
 Auto_increment: NULL
    Create_time: NULL
    Update_time: NULL
     Check_time: NULL
      Collation: NULL
       Checksum: NULL
 Create_options: NULL
        Comment: VIEW
1 row in set (0.00 sec)
ERROR: 
No query specified
Nach dem Login kopieren

View löschen

mysql> SHOW CREATE VIEW vu_emp4\G;
*************************** 1. row ***************************
                View: vu_emp4
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `vu_emp4` AS select `vu_emp_dept`.`department_id` AS `department_id`,`vu_emp_dept`.`department_name` AS `department_name` from `vu_emp_dept`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.00 sec)
ERROR: 
No query specified
Nach dem Login kopieren

Vor- und Nachteile der Ansicht

Vorteile:


Einfach zu bedienen. Reduzieren Sie die Datenredundanz :

Hoher Wartungsaufwand Kosten

Schlechte Lesbarkeit

Objekt Beschreibung
ist eine Systemtabelle, eine Tabelle, die datenbankbezogene Informationen speichert. Die Daten von Systemtabellen werden normalerweise vom Datenbanksystem verwaltet. Sie können nur die Überprüfungsregeln anzeigen, die zur Gewährleistung der Datenintegrität verwendet werden. 🎜🎜#Ansicht (VIEW) Daten in einer oder mehreren Datentabellen Die Logik zeigt, dass die Ansicht keine Daten speichert
Index ( INDEX) wird zur Verbesserung der Abfrageleistung verwendet und entspricht dem Inhaltsverzeichnis des Buches#🎜 🎜#
wird verwendet, um einen vollständigen Geschäftsprozess abzuschließen. Es gibt keinen Rückgabewert, aber mehrere Werte können über ausgehende Parameter übergeben werden. # 🎜🎜#Gespeicherte Funktion (FUNCTION)
entspricht einem Ereignis-Listener. Wenn ein bestimmtes Ereignis in der Datenbank auftritt, wird der Trigger ausgelöst und die entsprechende Verarbeitung abgeschlossen. #🎜🎜 #

Das obige ist der detaillierte Inhalt vonWas sind die Konzepte und Betriebsfunktionen von MySQL-Ansichten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage