Heim  >  Artikel  >  Datenbank  >  Details zur SQL-Ansicht

Details zur SQL-Ansicht

黄舟
黄舟Original
2017-02-27 13:34:422537Durchsuche

Ansicht

Ansicht ist eine virtuelle Tabelle. Im Gegensatz zu Tabellen mit enthaltenen Daten enthalten Ansichten nur Daten, die dynamisch abgerufen werden, wenn sie von einer Abfrage verwendet werden. Als Ansicht enthält sie keine Spalten oder Daten, sondern nur eine Abfrage.

Warum Ansichten verwenden?

1: SQL-Anweisungen wiederverwenden.

2: Vereinfachen Sie komplexe SQL-Vorgänge. Nachdem Sie eine Abfrage geschrieben haben, können Sie sie problemlos wiederverwenden, ohne die Details der zugrunde liegenden Abfrage zu kennen.

3: Verwenden Sie einen Teil der Tabelle anstelle der gesamten Tabelle.

4: Daten schützen. Benutzern kann Zugriff auf bestimmte Teile einer Tabelle statt auf die gesamte Tabelle gewährt werden.

5: Datenformat und Darstellung ändern. Ansichten können Daten zurückgeben, die anders dargestellt und formatiert werden als die zugrunde liegende Tabelle.

Nachdem Sie Ansichten erstellt haben, können Sie diese auf die gleiche Weise wie Tabellen verwenden. Sie können SELECT-Vorgänge für Ansichten ausführen, Daten filtern und sortieren sowie Ansichten mit anderen Ansichten oder Tabellen verbinden.

Es ist wichtig zu wissen, dass eine Ansicht einfach eine Einstellung zum Anzeigen von Daten ist, die an anderer Stelle gespeichert sind. Die Ansicht selbst enthält keine Daten, daher werden die zurückgegebenen Daten aus anderen Tabellen abgerufen. Wenn Sie Daten in diesen Tabellen hinzufügen oder ändern, gibt die Ansicht die geänderten Daten zurück.

Einige der häufigsten Regeln und Einschränkungen bezüglich der Erstellung und Verwendung von Ansichten

(1) Ansichten müssen wie Tabellen eindeutig benannt werden

(2) Für Wearables Dort Es gibt keine Begrenzung für die Anzahl der Ansichten

(3) Um eine Ansicht zu erstellen, müssen Sie über ausreichende Zugriffsrechte verfügen. Diese Berechtigungen werden normalerweise vom Datenbankadministrator erteilt.

(4) Ansichten können verschachtelt werden, das heißt, eine Ansicht kann mithilfe von Abfragen erstellt werden, die Daten aus anderen Ansichten abrufen.

(5) Viele DBMS verbieten die Verwendung der ORDER BY-Klausel in Ansichtsabfragen.

(6) Einige DBMS erfordern die Benennung aller zurückgegebenen Spalten. Wenn es sich bei der Spalte um ein berechnetes Feld handelt, müssen Sie Aliase verwenden.

(7) Ansichten können nicht indiziert werden und dürfen keine zugeordneten Trigger oder Standardwerte haben.

(8) Einige DBMS verwenden Ansichten als schreibgeschützte Abfragen, was bedeutet, dass Daten aus der Ansicht abgerufen, aber nicht in die zugrunde liegende Tabelle geschrieben werden können.

(9) Einige DBMS ermöglichen die Erstellung von Ansichten, die keine Einfügungen oder Aktualisierungen zulassen, die dazu führen, dass Zeilen nicht mehr zur Ansicht gehören.



Ansichten erstellen

Ansichten werden mit der CREATE VIEW-Anweisung erstellt.

Verwenden Sie die DROP-Anweisung, um eine Ansicht zu löschen. Die Syntax lautet: DROP VIEW viewname;

Verwenden Sie Ansichten, um komplexe Verbindungen zu vereinfachen

CREATE VIEW ProductCustomers ASSELECT cust_name,cust_contact,prod_idFROM Customers,Orders,
OrderItemsWHERE Customers.cust_id = Order.cust_id AND OrderItems.order_num = Order.order_num;

Diese Anweisung erstellt eine Ansicht namens „ProductCustomers“, die drei Tabellen verknüpft, um eine Liste aller Kunden zurückzugeben, die ein Produkt bestellt haben.

Kunden abrufen, die das Produkt RGAN01 bestellt haben

SELECT cust_name,cust_contactFROM ProductCustomersWHERE prod_id = 'RGAN01';

用视图重新格式化检索出的数据

创建格式化视图

CREATE VIEW VendorsLocations ASSELECT RTRM(vend_name) || ' ( ' || RTRIM(vend_country) || ' ) ' AS vend_titleFROM Vendors;

用试图过滤不想要的数据

定义CustomerEMailList 视图,过滤没有电子邮件地址的客户。

CREATE VIEW CustomerEMailList ASSELECT cust_id, cust_name, cust_emailFROM CustomersWHERE cust_email IS NOT NULL;

使用视图与计算字段

检索某个特定订单中的物品,计算每种物品的总价格

CREATE VIEW OrderItemExpanded ASSELECT order_num, prod_id, quantity, item_price, quantity*item_price AS expanded_price
FROM OrderItems;

根据视图检索订单20008的详细内容

SELECT *FROM OrderItemsExpandedWHERE order_num = 20008;

 以上就是SQL视图 详细介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Stellungnahme:
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