SQL Inline Weergave (Inline View)





SQL > Geavanceerde SQL > Inline Weergave

Een inline weergave is een SELECT-instructie in de FROM-clausule. Een weergave is een virtuele tabel die de kenmerken van een tabel heeft, maar geen daadwerkelijke gegevens bevat. In een constructie voor een inline weergave, in plaats van het specificeren van de naam of namen van tabellen na het trefwoord FROM, komt de bron van de gegevens eigenlijk uit de inline weergave.

Een inline weergave wordt soms aangeduid als een afgeleide tabel. Deze twee termen worden door elkaar gebruikt.

Syntaxis

De syntaxis voor een inline weergave is de volgende:

SELECT "Kolom_Naam" FROM (Inline_Weergave);

Voorbeeld

Laten we aannemen dat we twee tabellen hebben: De eerste tabel is User_Address, die elke gebruiker koppelt aan een postcode; de tweede tabel is User_Score, die alle scores van elke gebruiker registreert. De vraag is: hoe schrijf je een SQL-query om het aantal gebruikers te vinden dat hoger heeft gescoord dan 200 voor elke postcode?

Zonder een inline weergave te gebruiken, kunnen we dit in twee stappen bereiken:

Query 1

CREATE TABLE User_Higher_Than_200
SELECT User_ID, SUM(Score) FROM User_Score
GROUP BY User_ID
HAVING SUM(Score) > 200;

Query 2

SELECT a2.ZIP_CODE, COUNT(a1.User_ID)
FROM User_Higher_Than_200 a1, User_Address a2
WHERE a1.User_ID = a2.User_ID
GROUP BY a2.ZIP_CODE;

In de bovenstaande code hebben we een tijdelijke tabel geïntroduceerd, User_Higher_Than_200, om de lijst van gebruikers die hoger hebben gescoord dan 200 op te slaan. User_Higher_Than_200 wordt vervolgens gebruikt om zich bij de tabel User_Address aan te sluiten en het uiteindelijke resultaat te krijgen.

We kunnen de bovenstaande SQL vereenvoudigen met behulp van de constructie voor een inline weergave als volgt:

Query 3

SELECT a2.ZIP_CODE, COUNT(a1.User_ID)
FROM
(SELECT User_ID, SUM(Score) FROM User_Score GROUP BY User_ID HAVING SUM(Score) > 200) a1,
User_Address a2
WHERE a1.User_ID = a2.User_ID
GROUP BY a2.ZIP_CODE;

De rode code vertegenwoordigt een inline weergave. Er zijn twee voordelen bij het gebruik van een inline weergave hier:

1. We hoeven de tijdelijke tabel niet te maken. Dit voorkomt dat de database te veel objecten heeft, wat positief is omdat elk extra object in de database middelen kost om te beheren.

2. We kunnen een enkele SQL-query gebruiken om te bereiken wat we willen.

Let op dat we de inline weergave precies op dezelfde manier behandelen als een tabel. Bij het vergelijken van Query 2 en Query 3 zien we dat het enige verschil is dat we de naam van de tijdelijke tabel in Query 2 vervangen door de inline weergave-verklaring in Query 3. Al het andere blijft hetzelfde.

SQL INTERSECT >>

Deze pagina is voor het laatst bijgewerkt op 27-12-2023



Copyright © 2024   1keydata.com   Alle rechten voorbehouden