MySQL Weergaven: Hoe maak je een weergave van tabellen?
⚡ Slimme samenvatting
MySQL Views zijn virtuele tabellen die geen eigen gegevens opslaan, maar in plaats daarvan het resultaat van een opgeslagen SELECT-query weergeven. Deze handleiding legt uit hoe u views kunt maken, opvragen, samenvoegen en verwijderen, met werkende voorbeelden uit de myflixdb-database.
Wat zijn weergaven in MySQL?
ZICHTEN zijn virtuele tabellen die zelf geen gegevens opslaan, maar gegevens weergeven die in andere tabellen zijn opgeslagen. Met andere woorden: VIEWS zijn niets anders dan SQL-query's. Een weergave kan alle of enkele rijen uit een tabel bevatten. A MySQL weergave kan gegevens uit één tabel of uit meerdere tabellen weergeven.
MySQL Syntaxis van weergaven
Laten we nu kijken naar de basissyntaxis die wordt gebruikt om een weergave te maken MySQL.
CREATE VIEW `view_name` AS SELECT statement;
WAAR
- “CREËER WEERGAVE `view_name`” vertelt MySQL server om een view-object in de database te maken met de naam `view_name`
- “AS SELECT-instructie” zijn de SQL-instructies die moeten worden ingepakt in de MySQL Keer bekeken. Het kan een SELECT-instructie zijn die gegevens uit één tabel of meerdere tabellen bevat.
Waarom weergaven gebruiken?
Voordat je gaat bouwen, is het handig om te weten wat een uitzicht je eigenlijk oplevert.
U wilt weergaven mogelijk voornamelijk gebruiken om de volgende 3 redenen
- Uiteindelijk zul je je SQL Je hebt de kennis nodig om applicaties te ontwikkelen die een database gebruiken voor hun datavereisten. Het is aan te raden om in je applicatie weergaven (VIEWS) van de oorspronkelijke tabelstructuur te gebruiken in plaats van de tabellen zelf. Dit zorgt ervoor dat wanneer je je database herstructureert, je bestaande code het oorspronkelijke schema via de weergave kan zien zonder dat de applicatie niet meer werkt.
- VIEWS verhogen de herbruikbaarheid. U hoeft geen complexe query's te maken met herhaaldelijke joins. Alle complexiteit wordt omgezet in een enkele regel query met VIEWS. Zulke gecondenseerde code is gemakkelijker te integreren in uw applicatie. Dit elimineert de kans op typefouten en uw code is beter leesbaar.
- VIEWS helpen bij gegevensbeveiliging. U kunt views gebruiken om alleen geautoriseerde informatie aan gebruikers te tonen en gevoelige gegevens zoals creditcardnummers te verbergen.
Weergaven maken in MySQL
Nu de syntaxis en de voordelen duidelijk zijn, bouwen de onderstaande stappen een volledig werkende weergave op.
Hieronder volgt een stapsgewijs proces om een weergave te maken in MySQL:
Stap 1) Creëer onze eerste weergave met behulp van de “myflixdb”
Laten we nu onze eerste weergave maken met behulp van "myflixdb". We zullen een eenvoudige weergave maken die de kolommen beperkt die te zien zijn in de ledentabel.
Stel dat de autorisatievereisten voorschrijven dat de financiële afdeling alleen het lidmaatschapsnummer, de naam en het geslacht van het lid mag inzien vanuit de ledentabel. Om dit te bereiken kunt u een VIEW maken.
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Stap 2) Het knooppunt views uitvouwen
Voer het bovenstaande script uit in MySQL workbench tegen myflixdb en het uitbreiden van het views-knooppunt in de database-explorer geeft ons de volgende resultaten.
Merk op dat het accounts_v_members-object nu zichtbaar is in de databaseview-objecten.
Stap 3) Voer een SELECT-instructie uit
Laten we nu a uitvoeren SELECT-instructie waarmee alle velden uit de weergave worden geselecteerd, zoals hieronder weergegeven MySQL bekijk voorbeeld maken.
SELECT * FROM `accounts_v_members`;
Stap 4) Voer een script uit
Voer het bovenstaande script uit in MySQL workbench tegen myflixdb geeft ons de volgende resultaten, zoals hieronder weergegeven.
| membership_number | full_names | gender |
|---|---|---|
| 1 | Janet Jones | Female |
| 2 | Janet Smith Jones | Female |
| 3 | Robert Phil | Male |
| 4 | Gloria Williams | Female |
| 5 | Leonard Hofstadter | Male |
| 6 | Sheldon Cooper | Male |
| 7 | Rajesh Koothrappali | Male |
| 8 | Leslie Winkle | Male |
| 9 | Howard Wolowitz | Male |
Alleen de geautoriseerde kolommen voor de boekhouding zijn weergegeven. Andere gegevens in de ledenlijst zijn verborgen.
Als we de SQL-instructies willen zien waaruit een bepaalde weergave bestaat, kunnen we daarvoor het onderstaande script gebruiken.
SHOW CREATE VIEW `accounts_v_members`;
Als u het bovenstaande script uitvoert, krijgt u de weergavenaam en de SQL SELECT-instructies die zijn gebruikt om de weergave te maken.
Voegt zich bij en bekijkt in MySQL
Een weergave van één tabel is het eenvoudigste geval. Weergaven worden veel waardevoller wanneer ze een query over meerdere tabellen omvatten.
Laten we nu eens kijken naar een vrij complex voorbeeld dat meerdere tabellen en toepassingen omvat sluit zich aan.
We zullen de gemaakte JOIN verpakken die informatie uit drie (3) tabellen haalt, namelijk leden, films en filmverhuur. Hieronder vindt u het script dat ons helpt dat te bereiken.
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
Door de bovenstaande scripts uit te voeren, wordt de weergave met de naam general_v_movie_rentals in onze myflixdb gemaakt
Laten we nu alle velden selecteren uit een tabel met de naam general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Voer het bovenstaande script uit in MySQL werkbank tegen myflixdb geeft ons de volgende resultaten, zoals hieronder weergegeven.
| membership_number | full_names | title | transaction_date | return_date |
|---|---|---|---|---|
| 1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
| 1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
| 3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
| 2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
| 3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
Let op, we hoefden de complexe JOIN-query niet te schrijven om informatie over leden, films en filmverhuurdetails te krijgen. We gebruikten de view gewoon in een gewone SELECT-instructie, net als elke andere gewone tabel. De view kan overal in het applicatiesysteem worden aangeroepen dat boven op myflixdb draait.
Valping Uitzicht in MySQL
Het DROP-commando kan worden gebruikt om een weergave uit het databank dat is niet meer nodig. De basissyntaxis voor het verwijderen van een weergave is als volgt.
DROP VIEW `general_v_movie_rentals`;
Valping Een view verwijdert alleen de opgeslagen query; de onderliggende tabellen en hun gegevens blijven onaangeraakt.


