In MySQL een VIEW is een virtuele tabel gebaseerd op de resultatenset van een SQL-instructie. Er worden geen gegevens rechtstreeks opgeslagen. In plaats daarvan slaat het de *query* op die definieert hoe de gegevens moeten worden opgehaald. Wanneer u een weergave opvraagt, voert MySQL de onderliggende zoekopdracht uit en retourneert het resultaat alsof het een echte tabel is.
Zie het als een opgeslagen query.
Hier volgt een overzicht van de belangrijkste aspecten:
Belangrijkste kenmerken en kenmerken van MySQL-weergaven:
* Virtuele tafel: Een weergave is geen fysieke tabel. Het kost geen opslagruimte om gegevens op te slaan. Het is slechts een definitie van een zoekopdracht.
* Gebaseerd op een zoekopdracht: Een weergave wordt gemaakt met behulp van een `CREATE VIEW`-instructie, die een `SELECT`-instructie bevat. Deze `SELECT`-instructie specificeert hoe de weergave de gegevens moet ophalen en presenteren.
* Gegevensafleiding: Views ontlenen hun gegevens aan een of meer onderliggende basistabellen (of andere views).
* Dynamische gegevens: De gegevens die via een weergave worden weergegeven, zijn altijd actueel. Wanneer u een weergave opvraagt, voert MySQL de onderliggende zoekopdracht opnieuw uit. Dit zorgt ervoor dat u de nieuwste gegevens uit de basistabellen ziet.
* Opvragen van weergaven: U kunt query's uitvoeren op een weergave, net zoals u query's zou uitvoeren op een gewone tabel, met behulp van 'SELECT'-instructies.
* Bijwerkbaar versus niet-bijwerkbaar: Sommige weergaven kunnen worden bijgewerkt, wat betekent dat u de instructies 'INSERT', 'UPDATE' en 'DELETE' kunt gebruiken om de onderliggende gegevens via de weergave te wijzigen. Veel weergaven kunnen echter niet worden bijgewerkt, vooral de weergaven die aggregaties, samenvoegingen of berekende kolommen bevatten.
* Rechten: U kunt bevoegdheden voor weergaven verlenen en intrekken, vergelijkbaar met de manier waarop u bevoegdheden voor tabellen beheert.
Voordelen van het gebruik van weergaven:
* Gegevensabstractie: Weergaven verbergen de complexiteit van de onderliggende tabellen en query's. U kunt weergaven maken die alleen de relevante kolommen weergeven voor specifieke gebruikers of applicaties.
* Beveiliging: Weergaven kunnen de toegang tot bepaalde kolommen of rijen van een tabel beperken. U kunt gebruikers toegang verlenen tot een weergave die slechts een subset van de gegevens toont, zonder hen directe toegang tot de onderliggende tabel te geven.
* Vereenvoudiging van complexe zoekopdrachten: Met weergaven kunt u complexe zoekopdrachten opsplitsen in kleinere, beter beheersbare stukken. U kunt voor elke stap van het proces een weergave maken en deze weergaven vervolgens combineren om het eindresultaat te krijgen.
* Gegevensconsistentie: Als u dezelfde query op meerdere plaatsen wilt gebruiken, kunt u deze als weergave definiëren. Dit zorgt ervoor dat de query consistent is voor al het gebruik. Als u de query moet wijzigen, hoeft u alleen de weergavedefinitie te wijzigen.
* Herbruikbaarheid van code: In weergaven zijn query's ingekapseld, zodat u ze in verschillende toepassingen of rapporten kunt hergebruiken.
* De naam van kolommen wijzigen: Met weergaven kunt u de naam van kolommen uit de onderliggende tabellen wijzigen, zodat u meer beschrijvende of gebruiksvriendelijkere namen krijgt.
Voorbeeld:
Stel dat u een tabel heeft met de naam 'werknemers' met de volgende kolommen:
* `werknemer_id`
* `voornaam`
* `achternaam`
* `afdeling`
* `salaris`
U kunt een weergave maken met de naam 'managers' waarin alleen de werknemers worden weergegeven die manager zijn en hun volledige naam:
```sql
CREËER VIEW-managers AS
SELECTEER
medewerker_id,
CONCAT(voornaam, ' ', achternaam) AS volledige_naam,
afdeling,
salaris
VAN
medewerkers
WAAR
afdeling ='Beheer';
```
Nu kunt u de weergave 'managers' als volgt opvragen:
```sql
SELECTEER * VAN managers;
```
Hierdoor worden alleen de medewerkers teruggegeven die op de afdeling 'Management' werken, samen met hun ID, volledige naam (berekend op basis van voor- en achternaam), afdeling en salaris. U hoeft de `CONCAT`-functie of de `WHERE`-clausule niet elke keer te herhalen als u deze informatie wilt zien.
Een weergave maken:
```sql
CREËER WEERGAVE weergavenaam AS
SELECTEER kolom1, kolom2, ...
FROM tabelnaam
WAAR voorwaarde;
```
Een weergave neerzetten:
```sql
DROP VIEW weergavenaam;
```
Belangrijke overwegingen:
* Prestaties: Hoewel weergaven veel voordelen bieden, kunnen ze soms de prestaties beïnvloeden als de onderliggende query complex is. MySQL moet de query uitvoeren telkens wanneer de weergave wordt geopend. Overweeg het gebruik van gerealiseerde weergaven (indien ondersteund door uw MySQL-versie of -installatie) of optimaliseer de query zorgvuldig als de prestaties een probleem worden.
* Beperkingen van de updatemogelijkheden: Niet alle weergaven kunnen worden bijgewerkt. Weergaven met joins, aggregaties (bijvoorbeeld `SUM`, `AVG`), `DISTINCT`, `GROUP BY` of bepaalde subquery's kunnen doorgaans niet worden bijgewerkt. MySQL geeft u vaak een foutmelding als u een niet-bijwerkbare weergave probeert te wijzigen.
* Afhankelijkheden: Weergaven zijn afhankelijk van de onderliggende tabellen. Als u een tabel die door een weergave wordt gebruikt verwijdert of wijzigt, kan de weergave ongeldig worden.
Samenvattend zijn weergaven een krachtig hulpmiddel in MySQL voor het vereenvoudigen van zoekopdrachten, het verbeteren van gegevensabstractie en het verbeteren van de beveiliging. Ze bieden een manier om virtuele tabellen te maken die gegevens op een aangepaste en herbruikbare manier presenteren. Houd bij het ontwerpen en gebruiken van weergaven rekening met de implicaties voor updatemogelijkheden en prestaties. |