Verwenden Sie Ansichten, um unerwünschte Daten zu filtern
Ansichten sind auch für die Anwendung gewöhnlicher WHERE-Klauseln nützlich. Sie können beispielsweise eine Kunden-E-Mail-Listenansicht definieren, die Kunden ohne E-Mail-Adressen filtert. Zu diesem Zweck kann die folgende Anweisung verwendet werden:
Eingabe:
create view customeremaillist as select cust_id,cust_name,cust_email from customers where cust_email is not null;
Analyse: Wenn Sie eine E-Mail an eine Mailingliste senden, müssen Sie natürlich Benutzer ohne E-Mail-Adresse ausschließen . Die WHERE-Klausel filtert hier die Zeilen mit NULL-Werten in der Spalte cust_email, sodass sie nicht abgerufen werden.
Jetzt kann die Ansicht customeremaillist wie jede andere Tabelle verwendet werden.
Eingabe:
select * fromcustomeremaillist;
Ausgabe:
WHERE-Klausel und WHERE-Klausel, wenn a beim Abrufen von Daten aus der Ansicht WHERE verwendet wird -Klausel werden die beiden Sätze von Klauseln (einer in der Ansicht und der andere an die Ansicht übergeben) automatisch kombiniert.
Ansichten mit berechneten Feldern verwenden
Ansichten sind besonders nützlich, um die Verwendung berechneter Felder zu vereinfachen. Nachfolgend finden Sie eine SELECT-Anweisung, die in Kapitel 10 eingeführt wurde. Es ruft die Artikel in einer bestimmten Reihenfolge ab und berechnet den Gesamtpreis für jeden Artikel:
Eingabe:
select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems where order_num = 20005;
Ausgabe:
Um es in eine Ansicht umzuwandeln, gehen Sie wie folgt vor:
Eingabe:
create view orderitemsexpanded as select prod_id,quantity,item_price,quantity*item_price as expanded_price from orderitems;
Um die Details der Bestellung 20005 (die Ausgabe oben) abzurufen, gehen Sie wie folgt vor:
Eingabe:
select * from orderitemsexpanded where order_num = 20005;
Ausgabe:
Wie Sie sehen, sind Ansichten sehr einfach zu erstellen und einfach zu verwenden. Richtig eingesetzt können Ansichten die komplexe Datenverarbeitung erheblich vereinfachen.
Ansichten aktualisieren
Alle bisherigen Ansichten werden mit SELECT-Anweisungen verwendet. Können die Daten der Ansicht jedoch aktualisiert werden? Die Antwort hängt von der Situation ab.
Typischerweise sind Ansichten aktualisierbar (d. h. INSERT , UPDATE und DELETE können für sie verwendet werden). Durch das Aktualisieren einer Ansicht wird deren Basistabelle aktualisiert (denken Sie daran, dass die Ansicht selbst keine Daten enthält). Wenn Sie einer Ansicht Zeilen hinzufügen oder daraus löschen, fügen Sie tatsächlich Zeilen zu ihrer Basistabelle hinzu oder löschen sie.
Allerdings sind nicht alle Ansichten aktualisierbar. Grundsätzlich lässt sich sagen, dass Aktualisierungen (einschließlich Einfügungen und Löschungen) nicht zulässig sind, wenn MySQL die zu aktualisierenden Basisdaten nicht korrekt ermitteln kann. Dies bedeutet tatsächlich, dass die Ansicht nicht aktualisiert werden kann:
1 >
3. Unterabfrage; 5. Aggregationsfunktion (Min(), Sum() usw.); > 6.DISTINCT;7. Spalte exportieren (berechnen). Mit anderen Worten: Die Ansichten in vielen Beispielen in diesem Kapitel sind nicht aktualisierbar. Das mag wie eine ernsthafte Einschränkung klingen, ist es aber nicht, da Ansichten hauptsächlich für den Datenabruf verwendet werden. Mögliche Änderungen Die oben aufgeführten Einschränkungen gelten ab MySQL 5. Zukünftige Versionen von MySQL werden jedoch wahrscheinlich einige Einschränkungen aufheben. Ansichten zum Abruf verwenden Im Allgemeinen sollten Sie Ansichten zum Abruf (SELECT-Anweisungen) und nicht für Aktualisierungen (INSERT, UPDATE und DELETE) verwenden. Zusammenfassung:
Ansicht ist eine virtuelle Tabelle. Sie enthalten keine Daten, sondern Abfragen, um die Daten nach Bedarf abzurufen. Ansichten bieten eine hierarchische Kapselung von MySQL-SELECT-Anweisungen, die zur Vereinfachung der Datenverarbeitung und zur Neuformatierung oder zum Schutz der zugrunde liegenden Daten verwendet werden können.
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Rolle von MySQL-Ansichten (2) – Daten filtern, Felder berechnen und Ansichten aktualisieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!