mysql create view tutorial with code examples
Deze MySQL Create View-zelfstudie legt alles uit over het maken van een weergave in MySQL met behulp van verschillende clausules en voorbeelden. Het behandelt ook hoe u weergaven kunt neerzetten en beheren:
In MySQL is view een virtuele tabel waarmee we de gegevens in de tabel kunnen bekijken zonder dat de tabel wordt geblokkeerd voor toegang door andere programma's, waardoor we impassesituaties kunnen voorkomen.
Weergaven worden gemaakt bovenop een of meer tabellen die gegevens bevatten. Voordat u verder gaat, moet u er rekening mee houden dat we MySQL versie 8.0
Wat je leert:
MySQL Create View
Syntaxis:
Syntaxis Uitleg:
- De syntaxis begint met het sleutelwoord “CREATE VIEW”, waardoor de MySQL-server wordt geïnformeerd over het type activiteit dat moet worden uitgevoerd. Dit is een verplicht trefwoord en kan niet worden weggelaten.
- REPLACE is een optionele parameter. We kunnen dit gebruiken terwijl we aan een bestaande weergave werken.
- Vervolgens komt de naam van de weergave. Het moet uniek zijn, net als de namen van tabellen en kolommen.
- Selecteer vervolgens de kolommen uit de tabel. Een weergave kan alle kolommen van de onderliggende tabel bevatten of slechts een paar geselecteerde.
- Vervolgens komt de naam van de tafel waarop de weergave moet worden uitgevoerd. Dit is verplicht en kan niet worden weggelaten.
- Dan komt de WHERE-voorwaarde, die het aantal doelrijen beperkt of filtert waarop de CREATE VIEW-actie moet worden toegepast. WAAR is ook een trefwoord, maar een optioneel trefwoord.
De WHERE-clausule is echter significant. Als dit niet wordt vermeld, of als de voorwaarde niet correct is ingesteld, zullen ofwel de hele tabel of niet-vereiste rijen deel uitmaken van de weergave.
MySQL Create View-voorbeeld
Hieronder is een voorbeeldtabel gemaakt in MYSQL.
Schema naam: grote Oceaan
Tafel naam: medewerkers
Kolomnamen:
empNum : Bevat gehele getallen voor het werknemersnummer.
achternaam : Bevat varchar-waarden voor de achternaam van de werknemer.
Voornaam : Bevat varchar-waarden voor de voornaam van de werknemer.
e-mail : Bevat varchar-waarden voor de e-mail-ID van de werknemer.
afdelingNum : Bevat varchar voor de afdelings-ID waartoe een werknemer behoort.
salaris : Bevat decimale waarden van het salaris voor elke werknemer.
begin datum : Bevat datumwaarden voor de toetredingsdatum van de werknemer.
Schema naam: grote Oceaan
Tafel naam: afdelingen
Kolomnamen:
departNum; Bevat varchar voor de afdelings-ID binnen een organisatie.
stad: Bevat de naam van de stad waarvandaan de afdelingen werken.
land: Bevat de naam van het land dat overeenkomt met de stad.
bonus Bevat de procentuele waarde van de bonus.
MySQL Simple Maak een weergave
Laten we nu een weergave maken bovenop de bovenstaande tabel.
Hieronder is de vraag gegeven.
De SELECT-clausule kan met specifieke kolomnamen zijn of we kunnen '*' gebruiken om alle kolommen op te halen. Als we eenmaal een weergave hebben gemaakt, kunnen we de kolommen niet toevoegen of verwijderen. Als we kolommen willen toevoegen of verwijderen, zullen we een nieuwe weergave moeten maken of deze bestaande weergave moeten vervangen.
De output-instructie laat zien dat de CREATE VIEW SQL-instructies met succes zijn uitgevoerd. Er staat ook dat er geen rijen zijn aangetast. Dit houdt in dat wanneer een nieuwe rij wordt gemaakt, dit geen invloed heeft op de gegevens in de onderliggende tabel.
Laten we nu eens naar de weergave gaan.
Vraag:
Resultaatset:
empNum | achternaam | Voornaam | afdelingNum | salaris | begin datum | |
---|---|---|---|---|---|---|
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494.4 | 0001-01-01 |
1001 | Andrews | Jack | ja@gmail.com | een | 3182,7 | 0001-01-01 |
1002 | Schwatz | Mike | ms@gmail.com | een | 5304.5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | twee | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | een | 10609 | 0001-01-01 |
1005 | lezen | Peter | pl@gmail.com | twee | 14332.5 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | twee | 16537,5 | 0001-01-01 |
1009 | Beker | Harry | hb@gmail.com | 5 | 30645.6 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NUL | 10100 | 0001-01-01 |
1012 | Luther | Martin | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | een | 25000 | 0001-01-01 |
1015 | Branson | John | jb@gmail.com | twee | 15000 | 0001-01-01 |
1016 | Martin | Richard | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Vooravond | ej@gmail.com | 3 | 5500 | 25-11-2019 |
1018 | Bond | Nolan | nb@gmail.com | twee | 15000 | 13-09-2019 |
Maak een weergave met GROUP BY en ORDER BY
Laten we een scenario aannemen waarin we het totale bedrag aan salaris moeten krijgen, afdelingsgewijs.
Hieronder is de vraag gegeven:
In plaats van deze zoekopdracht elke keer in de tabel uit te voeren, hebben we de informatie nodig. Het is beter om de weergave te doorzoeken, aangezien dit minder databasebronnen zal verbruiken.
Laten we nu eens kijken naar de inhoud van onze visie. We zullen zien hoeveel elke afdeling aan haar werknemers uitzendt in termen van salarissen.
Vraag:
Resultaatset:
afdelingNum | som (salaris) | |||||
---|---|---|---|---|---|---|
1006 | Keith | Jenny | twee | Charlotte | Verenigde Staten | 5 |
5 | 30645.6 | |||||
4 | 5000 | |||||
3 | 42994.4 | |||||
twee | 69690 | |||||
een | 44096.2 | |||||
NUL | 10100 |
De NULL in deptNum geeft aan dat een werknemer geen deel uitmaakt van een afdeling, maar op de loonlijst van de organisatie staat.
MySQL Create View met JOIN
Laten we aannemen dat we gegevens willen ontvangen over de afdeling, de stad waar deze is gevestigd en de bonus die wordt aangeboden aan haar werknemers. We hebben deze gegevens nodig voor elke medewerker.
Om dit te bereiken, zullen we het trefwoord JOIN gebruiken om gegevens van de afdelingen en de medewerkerstabel op te halen.
Laten we de zoekopdracht en de uitvoer ervan eens bekijken.
We kunnen hier verschillende soorten JOIN gebruiken, zoals INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN of FULL OUTER JOIN, afhankelijk van onze vereisten.
Vraag:
Laten we nu een SELECT-query uitvoeren op deze weergave om de uitvoer te zien:
Resultaatset:
empNum | achternaam | Voornaam | afdelingNum | stad | land | bonus |
---|---|---|---|---|---|---|
1001 | Andrews | Jack | een | New York | Verenigde Staten | 3 |
1002 | Schwatz | Mike | een | New York | Verenigde Staten | 3 |
1004 | Harera | Sandra | een | New York | Verenigde Staten | 3 |
1014 | Murray | Keith | een | New York | Verenigde Staten | 3 |
1003 | Langley | Margaret | twee | Charlotte | Verenigde Staten | 5 |
1005 | lezen | Peter | twee | Charlotte | Verenigde Staten | 5 |
1015 | Branson | John | twee | Charlotte | Verenigde Staten | 5 |
1018 | Bond | Nolan | twee | Charlotte | Verenigde Staten | 5 |
1008 | Bailey | Oliver | 3 | Chicago | Verenigde Staten | 8 |
1012 | Luther | Martin | 3 | Chicago | Verenigde Staten | 8 |
1017 | Johnson | Vooravond | 3 | Chicago | Verenigde Staten | 8 |
1016 | Martin | Richard | 4 | Londen | Engeland | 10 |
1009 | Beker | Harry | 5 | Berlijn | Duitsland | 13 |
Maak een weergave met behulp van een subquery
In dit soort create view-instructie proberen we de waarde op te halen van een kolom waarin de clausule is gebaseerd op de uitvoer van een subquery. Stel dat we al die werknemers moeten vinden wier salaris hoger is dan het gemiddelde salaris van de organisatie.
Laten we eens kijken naar de vraag:
Vraag:
Resultaatset:
empNum | achternaam | Voornaam | salaris |
---|---|---|---|
1018 | Bond | Nolan | 15000 |
1005 | lezen | Peter | 14332.5 |
1006 | Keith | Jenny | 16537,5 |
1008 | Bailey | Oliver | 24494.4 |
1009 | Beker | Harry | 30645.6 |
1014 | Murray | Keith | 25000 |
1015 | Branson | John | 15000 |
Weergaven beheren
Door View Alter of Create / Replace view te gebruiken, kunnen we elke view wijzigen / vervangen. ALTER VIEW expliciet gebruiken voor het opnieuw compileren van een view is niet geldig.
Als u ALTER ANY Table-systeembevoegdheden heeft of als de weergave in uw schema staat, kunt u de ALTER VIEW-instructie gebruiken.
youtube naar mp4 converter van hoge kwaliteit
Door de Alter View-query te gebruiken, kunnen we de hercompilatiefouten vóór uitvoeringstijd lokaliseren. Het gebruik van de ALTER VIEW-instructie kan van invloed zijn op het andere object / de andere weergave die ervan afhankelijk is. We kunnen dus een weergave opnieuw compileren na het wijzigen.
We kunnen een weergave opnieuw definiëren met behulp van Weergave maken en de bestaande weergave vervangen door de query Weergave vervangen.
Bijvoorbeeld, overweeg employee_view. Hier hebben we de kolommen achternaam en voornaam, samen met een paar andere. Bedenk dat we een vereiste hebben om de kolommen voornaam en achternaam samen te voegen.
Hieronder ziet u de momentopname van de weergave voordat de ALTER-query wordt uitgevoerd.
Laten we nu de ALTER VIEW-query uitvoeren om de voornaam en achternaam samen te voegen.
De vraag wordt hieronder gegeven:
Vraag:
Laten we nu eens kijken naar de inhoud van de employee_view:
Als u merkt, hebben we geen twee aparte kolommen voor namen. In plaats daarvan hebben we slechts één kolom waarin zowel de voornaam als de achternaam zijn samengevoegd.
Meer informatie = >> MySQL CONCAT-functie
Vraag:
Resultaatset:
empNum | empName | afdelingNum | salaris | begin datum | |
---|---|---|---|---|---|
1008 | Oliver Bailey | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1001 | Jack Andrews | ja@gmail.com | een | 3182,7 | 0001-01-01 |
1002 | Mike Schwatz | ms@gmail.com | een | 5304.5 | 0001-01-01 |
1003 | Margaret Langley | margaret.langley@gmail.com | twee | 8820 | 0001-01-01 |
1004 | Sandra harera | sh@gmail.com | een | 10609 | 0001-01-01 |
1005 | Peter Lee | pl@gmail.com | twee | 14333 | 0001-01-01 |
1006 | Jenny Keith | jk@gmail.com | twee | 16538 | 0001-01-01 |
1009 | Harry Beker | hb@gmail.com | 5 | 30646 | 0001-01-01 |
1011 | Tom Hanks | th@gmail.com | 10100 | 0001-01-01 | |
1012 | Martin Luther | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1014 | Keith Murray | km@gmail.com | een | 25000 | 0001-01-01 |
1015 | John Branson | jb@gmail.com | twee | 15000 | 0001-01-01 |
1016 | Richard Martin | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Eve Johnson | ej@gmail.com | 3 | 5500 | 25-11-2019 |
1018 | Nolan Bond | nb@gmail.com | twee | 15000 | 13-09-2019 |
Een weergave laten vallen
We kunnen een weergave neerzetten met behulp van de DROP VIEW-instructie. Men kan een DROP VIEW gebruiken als ze DROP ANY view-privileges hebben, anders zou het in hun schema moeten staan. De hangende weergave heeft geen invloed op de onderliggende tabel waarop de weergave is gebouwd of op de gegevens in die tabel.
Vraag:
Veelgestelde vragen
V # 1) Hoe maak je views in MySQL?
Antwoord: Er zijn meerdere manieren om views te creëren in MySQL. We hebben vier verschillende manieren doorlopen, zoals hieronder weergegeven.
1. MySQL Simple Maak een weergave
2. MySQL Create View met GROUP BY en ORDER BY
3. MySQL Create View met JOIN
4. MySQL Create View met behulp van Subquery
Q # 2) Wat is een weergave in MySQL?
Antwoord: Weergaven zijn als vooraf uitgevoerde query's die zijn opgeslagen in een logische structuur, zodat we de complexe query's op de tabel niet opnieuw hoeven uit te voeren. We kunnen gewoon de weergave opvragen en onze gegevens ophalen zonder de tabel te beïnvloeden.
Q # 3) Kunnen we JOIN toepassen op views terwijl we views maken?
Antwoord: Ja, JOIN-instructies kunnen op weergaven worden gebruikt, op een vergelijkbare manier waarop we het op de tabellen gebruiken.
Q # 4) Kunnen we een weergave creëren vanuit een andere weergave?
Antwoord: Weergaven fungeren in wezen als tabellen, maar als een virtuele. De manier waarop we aanzichten bovenop een tabel creëren, kunnen we op dezelfde manier boven op een andere weergave creëren.
Vraag 5 Waarom gebruiken we weergaven?
Antwoord: Als resultaat van de SQL-query creëert de view een logische tabel. We gebruiken weergaven om de volgende redenen.
- Door view te gebruiken, kunnen we de zichtbaarheid van rijen en kolommen beperken (met behulp van de Select and Where-clausule) voor relevante taken.
- Weergaven worden gebruikt wanneer we rijen en kolommen combineren (met Unie en Join) van meerdere tafels.
- Om een duidelijkere presentatie te krijgen van samenvoegende rijen (met behulp van Group by en Having) in een tabel met fijnere details.
- Weergaven worden gebruikt bij het hernoemen of decoderen van kolommen (met AS) of rijen (met JOIN, IF, CASE of Oracle's DECODE).
- Door een van de bovenstaande te combineren met beveiligingsinstellingen, kunnen we controleren of de gebruiker alleen toegang heeft tot datgene waarvoor hij is geautoriseerd.
Gevolgtrekking
In deze tutorial hebben we de verschillende manieren onderzocht om een weergave in MySQL te maken.
1. MySQL Simple Maak een weergave
2. MySQL Create View met GROUP BY en ORDER BY
3. MySQL Create View met JOIN
4. MySQL Create View met behulp van Subquery
We kunnen uit een van deze opties kiezen, afhankelijk van de projectvereisten.
Verder lezen = >> MySQL MAAK TABEL
Veel plezier met leren !!
Aanbevolen literatuur
- MySQL ALTER TABLE - Kolom toevoegen aan een tabel in MySQL
- MySQL CONCAT- en GROUP_CONCAT-functies met voorbeelden
- MySQL COUNT en COUNT DISTINCT met voorbeelden
- MySQL Create Database - Hoe maak je een database aan in MySQL
- MySQL GEBRUIKER MAKEN: hoe u een nieuwe gebruiker kunt maken in MySQL
- MySQL Create Bekijk zelfstudie met codevoorbeelden
- MySQL GROUP BY-clausule - Tutorial met voorbeelden
- MySQL JOIN-zelfstudie: binnen, buiten, kruis, links, rechts en zelf