Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was ist MySQL-Ansicht?

藏色散人
Freigeben: 2023-04-04 10:39:59
Original
4151 Leute haben es durchsucht

MySQL-Ansicht ist eine virtuelle Tabelle, deren Inhalt durch eine Abfrage definiert wird; die Ansicht enthält eine Reihe benannter Spalten- und Zeilendaten, und die Zeilen- und Spaltendaten stammen aus der Tabelle, auf die durch die Abfrage verwiesen wird, die die Ansicht anpasst, und sind dynamisch Wird generiert, wenn auf die Ansicht verwiesen wird. Einfach ausgedrückt ist eine Ansicht eine Tabelle, die aus ausgewählten Ergebnissen besteht.

Was ist MySQL-Ansicht?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, MySQL Version 5.7, Dell G3-Computer.

Was sind MySQL-Ansichten? Bedeutungs- und Verwendungsanalyse anzeigen

Was ist eine Ansicht?

  • 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.
  • Die Zeilen- und Spaltendaten stammen aus der Tabelle, auf die die Abfrage der benutzerdefinierten Ansicht verweist, und werden dynamisch generiert, wenn auf die Ansicht verwiesen wird.
  • Einfach ausgedrückt ist eine Ansicht eine Tabelle, die aus ausgewählten Ergebnissen besteht.

Zum Beispiel
Verwenden Sie den Abfragetabellenbefehl

SELECT * FROM 表名 ;
Nach dem Login kopieren

Sie können eine Tabelle sehen und was Sie sehen, wird als Ansicht bezeichnet.

Eigenschaften von Ansichten

  • Eine Ansicht ist ein Verweis auf mehrere Basistabellen, eine virtuelle Tabelle und das Ergebnis der Ausführung einer Abfrageanweisung.
  • Es werden keine spezifischen Daten gespeichert (wenn sich die grundlegenden Tabellendaten ändern, ändert sich auch die Ansicht).
  • Es kann wie die Basistabelle Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge ausführen (es gibt bedingte Einschränkungen für die Hinzufügungs-, Lösch- und Änderungsvorgänge).

Die Rolle der Ansicht

  • Verbesserung der Sicherheit: Erstellen Sie eine Ansicht und definieren Sie die von der Ansicht verarbeiteten Daten. Binden Sie dann die Benutzerberechtigungen an die Ansicht. Diese Methode verwendet eine Funktion: Die Grant-Anweisung kann der Ansicht Berechtigungen erteilen.
    Zum Beispiel: Die vom Administrator abgefragten Daten enthalten die Passwörter jedes Benutzers, und der Administrator möchte nicht, dass der Benutzer das Passwort sieht. Er kann eine Ansicht erstellen, um dem Benutzer nur das zu zeigen, was der Administrator von ihm verlangt . Datenabfrageleistung verbessert. Verbesserte Datenunabhängigkeit.
Ansicht erstellen

Angenommen, wir haben eine Schülertabelle wie folgt:

Anforderungen: Erstellen Sie eine Ansicht und fragen Sie Schüler ab, die älter als 20 sind gerade erstellt
Was ist MySQL-Ansicht? Der Inhalt in der Tabelle ist der erforderliche Inhalt

Basierend auf der Ansicht können wir weiterhin den gewünschten Inhalt abfragen, z. B. die Abfrage von Personen mit dem Namen ls, die über 21 Jahre alt sind, kann die Effizienz verbessern und Betriebskosten senken.

Was ist MySQL-Ansicht?
Was ist MySQL-Ansicht?Ändern Sie die Ansicht

rrree

Zum Beispiel: Die oben erstellte Ansicht „stu_age_view“ ist für Schüler über 20 Jahre und jetzt für alle Schüler geändert.
CREATE VIEW stu_age_view 
AS(SELECT * FROM stu WHERE age>20);
Nach dem Login kopieren

Ansicht löschen

CREATE OR REPLACE VIEW 视图名  AS(SELECT  [...]  FROM [...] );
Nach dem Login kopieren

Ansichtsmechanismus

Ersetzung Beim Bedienen einer Ansicht wird der Ansichtsname direkt durch die Ansichtsdefinition ersetzt

Reifizierung


mysq | Das Ergebnis der Ansichtsausführung wird zunächst abgerufen, und das Ergebnis bildet ein Zwischenergebnis und wird vorübergehend im Speicher gespeichert.

Die äußere Select-Anweisung ruft diese Zwischenergebnisse (temporäre Tabellen) auf.


Der Unterschied zwischen Ersetzung und Verdinglichung.

Ersetzung: Nach dem Ersetzen der Ansichtsformel wird sie als ganzes Quadrat behandelt.

Spezifikation
    : Konkrete Methode: Verarbeiten Sie zuerst die Ansichtsergebnisse und dann die externen Abfrageanforderungen.
  • Lassen Sie uns ein Beispiel geben, um unser Verständnis zu vertiefen
  • Bei der Erstellung der obigen Ansicht haben wir bereits eine Ansicht erstellt, die Schüler ab 20 Jahren erfordert

Dann schauen wir uns diese Ansicht an

CREATE OR REPLACE VIEW stu_age_view 
AS(SELECT * FROM stu );
Nach dem Login kopieren
Wenn ja Ersatz
, dann ist seine interne Betriebslogik

SELECT * FROM (SELECT *FROM stu WHERE age >20) tihuan;
Nach dem Login kopieren

直接将stu_age_view的代码替换出来;
如果是具化式,那么它就是先把符合条件的查询出来放在一张表(内存)里,然后直接查询这张表。

(SELECT * FROM stu WHERE age >20) AS TEMPTABLE;SELECT * FROM TEMPTABLE;
Nach dem Login kopieren

上面这两条语句无法运行,只是为了方便举例提出

那么我们再说回创建视图

ALGORITHM参数(三个)

merge TEMPTABLE UNDEFINED
处理方式替换式,可以进行更新真实表中的数据 具化式,由于数据存储在临时表中,所以不可以进行更新操作 没有定义ALGORITHM参数,mysq更倾向于选择替换方式,因为它更加有效。

用参数创建视图

CREATE ALGORITHM = MERGE VIEW stu_age_viewAS(SELECT * FROM stu WHERE age >20);
Nach dem Login kopieren

还有两个需要注意的东西是

  • WITH CHECK OPTION

更新数据时不能插入或更新不符合视图限制条件的记录。
比如上面我们查询了一张年龄大于20的视图,那么在这张视图里面更新数据时如果年龄小于20则会报错。

  • LOCAL和CASCADED

为可选参数,决定了检查测试的范围,默认值为CASCADED

视图不可更新部分

  • 聚合函数
  • DISTINCT关键字
  • GROUP BY子句
  • HAVING子句
  • UNION运算符
  • FROM子句中包含多个表
  • SELECT语句中引用了不可更新视图
  • 只要视图当中的数据不是来自于基表,就不能够直接修改

【相关推荐:mysql视频教程

Das obige ist der detaillierte Inhalt vonWas ist MySQL-Ansicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!