MySQL Weergaven: weergave maken van tabellen met voorbeelden

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.

Weergaven maken in MySQL

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 bepalen dat de boekhoudafdeling alleen het nummer, de naam en het geslacht van het lid uit de ledentabel kan zien. Om dit te bereiken kunt u een VIEW creëren –

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.

Weergaven maken in MySQL

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 afdeling boekhouding zijn geretourneerd. Andere details in de ledentabel 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

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.

Weergaven neerzetten 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 `;

Waarom weergaven gebruiken?

U wilt weergaven mogelijk voornamelijk gebruiken om de volgende 3 redenen

  • Uiteindelijk zul je jouw SQL kennis, om toepassingen te creëren, die een database zullen gebruiken voor gegevensvereisten. Het wordt aanbevolen dat u VIEWS van de oorspronkelijke tabelstructuur in uw toepassing gebruikt in plaats van de tabellen zelf te gebruiken. Dit zorgt ervoor dat wanneer u uw DB refactort, uw oude code het originele schema via de weergave ziet zonder de applicatie te verbreken.
  • 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.

Samenvatting

  • Weergaven zijn virtuele tabellen; ze bevatten niet de gegevens die worden geretourneerd. De gegevens worden opgeslagen in de tabellen waarnaar wordt verwezen in de SELECT-instructie.
  • Weergaven verbeteren de beveiliging van de database door alleen de beoogde gegevens aan geautoriseerde gebruikers te tonen. Ze verbergen gevoelige gegevens.
  • Weergaven maken het leven gemakkelijker, omdat u niet steeds opnieuw complexe query's hoeft te schrijven.
  • Het is mogelijk om INSERT, UPDATE en DELETE te gebruiken op een VIEW. Deze bewerkingen veranderen de onderliggende tabellen van de VIEW. De enige overweging is dat VIEW alle NOT NULL kolommen moet bevatten van de tabellen waarnaar het verwijst. Idealiter zou u VIEWS niet moeten gebruiken voor het updaten.