SQL VIEW (Weergave)

Weergaven zijn visuele tabellen.

Dit hoofdstuk legt uit hoe je weergaven kunt maken, bijwerken en verwijderen.

SQL CREATE VIEW statement

Wat is een weergave?

In SQL is een weergave een visuele tabel gebaseerd op het resultaat van een SQL-uiting.

Weergaven bevatten rijen en kolommen, net als een echte tabel. De velden in de weergave zijn velden uit een of meerdere daadwerkelijke tabellen in de database. We kunnen SQL-functies, WHERE- en JOIN-uitingen toevoegen aan de weergave en gegevens indienen, net als deze afkomstig zijn van een enkele tabel.

Opmerking:Het ontwerp en de structuur van de database worden niet beïnvloed door functies, WHERE-of JOIN-uitingen in de weergave.

SQL CREATE VIEW syntaxis

CREATE VIEW view_name AS
SELECT kolomnaam(s)
FROM tabelnaam
WHERE voorwaarde

Opmerking:Weergaven tonen altijd de meest recente gegevens. Elke keer dat een gebruiker een weergave queryt, bouwt de database-engine de gegevens opnieuw op met behulp van SQL-uitingen.

Voorbeeld van SQL CREATE VIEW

Weergaven kunnen worden gebruikt vanuit een query, een opgeslagen procedure of een andere weergave. Door functies, joins toe te voegen aan de weergave, kunnen we exact de gegevens leveren die we willen leveren aan de gebruiker.

De sampledatabase Northwind bevat enkele standaard geïnstalleerde weergaven. De weergave "Current Product List" lijst alle in gebruik zijnde producten uit de tabel Products. Deze weergave is gecreëerd met het volgende SQL:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

We kunnen de bovenstaande weergave queryen:

SELECT * FROM [Current Product List]

Een andere weergave uit de Northwind-samenhangende database selecteert alle producten uit de tabel Products met een eenheidsprijs hoger dan het gemiddelde eenheidsprijs:

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 

We kunnen de bovenstaande view op deze manier raadplegen:

SELECT * FROM [Products Above Average Price]

Een andere voorbeeldweergave uit de Northwind-database berekent het totale verkooptotaal van elk type in 1997. Let op, deze weergave haalt gegevens op van een andere weergave genaamd "Product Sales for 1997":

CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName, Som(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName 

We kunnen de bovenstaande view op deze manier raadplegen:

SELECT * FROM [Category Sales For 1997]

We kunnen ook voorwaarden toevoegen aan de query. Nu willen we alleen de totale verkoop van alle "Beverages"-categorieën bekijken:

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

SQL update view

U kunt de volgende syntaxis gebruiken om de view bij te werken:

SQL CREATE OR REPLACE VIEW syntaxis
CREATE OR REPLACE VIEW view_name AS
SELECT kolomnaam(s)
FROM tabelnaam
WHERE voorwaarde

Nu willen we de "Current Product List"-view de "Category"-kolom toevoegen. We zullen de volgende SQL gebruiken om de view bij te werken:

CREATE VIEW [Current Product List] AS
SELECT ProductID, ProductName, Category
FROM Products
WHERE Discontinued=No

SQL herroepen van de view

U kunt de DROP VIEW-opdracht gebruiken om een view te verwijderen.

SQL DROP VIEW syntaxis

DROP VIEW view_name