mysql create view tutorial with code examples
Ovaj vodič za izradu MySQL-a objašnjava sve o stvaranju pogleda u MySQL-u pomoću različitih klauzula i primjera. Također obuhvaća kako ispuštati i upravljati prikazima:
U MySQL-u je pogled virtualna tablica koja nam omogućuje uvid u podatke u tablici bez blokiranja pristupa tablici drugim programima i time nam pomaže da izbjegnemo mrtve točke.
kako napraviti lažni e-mail
Pogledi se stvaraju na vrhu jedne ili više tablica u kojima se nalaze podaci. Prije nastavka, imajte na umu da se koristimo MySQL verzija 8.0 .
Što ćete naučiti:
MySQL Create View
Sintaksa:
CREATE (REPLACE) VIEW view_name AS SELECT col1, col2, ... FROM table_name WHERE condition;
Objašnjenje sintakse:
- Sintaksa započinje s ključnom riječi „CREATE VIEW“, čime se MySQL poslužitelj obavještava o vrsti aktivnosti koju treba izvršiti. Ovo je obavezna ključna riječ i ne može se izostaviti.
- ZAMJENA je neobavezni parametar. To možemo koristiti dok radimo na postojećem pogledu.
- Slijedi ime pogleda. Trebao bi biti jedinstven baš kao i nazivi tablica i stupaca.
- Zatim odaberite stupce iz tablice. Pogled može imati sve stupce temeljne tablice ili samo nekoliko odabranih.
- Sljedeće dolazi ime tablice na kojoj se mora izvesti prikaz. To je obvezno i ne može se izostaviti.
- Zatim dolazi uvjet WHERE koji ograničava ili filtrira broj ciljnih redaka na koje se mora primijeniti akcija CREATE VIEW. WHERE je također ključna riječ, ali neobvezna.
Klauzula WHERE je, međutim, značajna. Ako nije spomenuto ili ako uvjet nije pravilno postavljen, tada će cijela tablica ili neobvezani retci biti dio prikaza.
Primjer MySQL Create View
Dolje je data tablica primjera kreirana u MYSQL-u.
Naziv sheme: pacifički
Naziv tablice: zaposlenici
Imena stupaca:
empNum : Sadrži cjelobrojne vrijednosti za broj zaposlenika.
prezime : Sadrži varchar vrijednosti za prezime zaposlenika.
ime : Sadrži varchar vrijednosti za ime zaposlenika.
e-mail : Sadrži vrijednosti varchar za e-mail ID zaposlenika.
deptNum : Sadrži varchar za ID odjela kojem zaposlenik pripada.
plaća : Sadrži decimalne vrijednosti plaće za svakog zaposlenika.
početni datum : Sadrži datumske vrijednosti za datum pridruživanja zaposlenika.
Naziv sheme: pacifički
Naziv tablice: odjelima
Imena stupaca:
deptNum; Sadrži varchar za ID odjela unutar organizacije.
Grad: Sadrži ime grada u kojem rade odjeli.
zemlja: Sadrži ime države koja odgovara gradu.
bonus Sadrži postotak vrijednosti bonusa.
MySQL Simple Stvorite pogled
Ajmo sada stvoriti prikaz na vrhu gornje tablice.
Slijedi upit.
Klauzula SELECT može biti s određenim imenima stupaca ili možemo koristiti '*' za dobivanje svih stupaca. Jednom, kada stvorimo prikaz, ne možemo dodavati ili brisati stupce. Ako želimo dodati ili izbrisati stupce, morat ćemo ili stvoriti novi pogled ili zamijeniti ovaj postojeći prikaz.
Izlazni izraz pokazuje da su SQL izrazi CREATE VIEW uspješno izvršeni. Također se kaže da to nije pogođeno nijednim redovima. To podrazumijeva da kada se kreira novi redak to ne utječe na podatke u temeljnoj tablici.
Pitajmo sada pogled.
Upit:
CREATE VIEW employees_view AS SELECT empNum, lastName, firstName, email, deptNum, salary, start_date FROM employees ; SELECT empNum, firstName, lastName, email, deptNum, salary, start_date FROM employees_view ;
Skup rezultata:
empNum | prezime | ime | deptNum | plaća | početni datum | |
---|---|---|---|---|---|---|
1008 | Bailey | Oliver | oliver.bailey@gmail.com | 3 | 24494,4 | 0001-01-01 |
1001 | Andrews | Utičnica | ja@gmail.com | 1 | 3182,7 | 0001-01-01 |
1002 | Schwatz | Mikrofon | ms@gmail.com | 1 | 5304,5 | 0001-01-01 |
1003 | Langley | Margaret | margaret.langley@gmail.com | dva | 8820 | 0001-01-01 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | čitati | Peter | pl@gmail.com | dva | 14332,5 | 0001-01-01 |
1006 | Keith | Jenny | jk@gmail.com | dva | 16537,5 | 0001-01-01 |
1009 | Kupa | Harry | hb@gmail.com | 5 | 30645,6 | 0001-01-01 |
1011 | Hanks | Tom | th@gmail.com | NULL | 10100 | 0001-01-01 |
1012 | Luther | Martine | ml@gmail.com | 3 | 13000 | 0001-01-01 |
1014 | Murray | Keith | km@gmail.com | 1 | 25000 | 0001-01-01 |
1015 | Branson | Ivan | jb@gmail.com | dva | 15000 | 0001-01-01 |
1016 | Martine | Richarde | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Johnson | Predvečerje | ej@gmail.com | 3 | 5500 | 2019-11-25 |
1018 | Veza | Nolan | nb@gmail.com | dva | 15000 | 2019-09-13 |
Stvorite prikaz pomoću GROUP BY i ORDER BY
Pretpostavimo scenarij u kojem trebamo dobiti ukupan iznos plaće, mudro po odjelima.
Slijedi upit:
Umjesto da svaki put pokrećemo ovaj upit u tablici, potrebne su nam informacije, bolje je postaviti upit na upit jer će to potrošiti manje izvora baze podataka.
Sada, pogledajmo sadržaj našeg pogleda. Saznat ćemo koliko svaki odjel šalje svojim zaposlenicima u pogledu plaća.
Upit:
CREATE VIEW salPerDept AS SELECT deptNum, sum(salary) FROM employees GROUP BY deptNum ORDER BY deptNum desc ; SELECT * FROM employees_view ;
Skup rezultata:
deptNum | zbroj (plaća) | |||||
---|---|---|---|---|---|---|
1006 | Keith | Jenny | dva | Charlotte | Ujedinjene države | 5 |
5 | 30645,6 | |||||
4 | 5000 | |||||
3 | 42994,4 | |||||
dva | 69690 | |||||
1 | 44096,2 | |||||
NULL | 10100 |
NULL u deptNum označava da zaposlenik nije dio nijednog odjela, već je na platnim spiskovima organizacije.
MySQL Create View pomoću JOIN-a
Pretpostavimo da želimo dobiti podatke o odjelu, gradu iz kojeg se temelji i bonusu koji se nudi njegovim zaposlenicima. Te su nam informacije potrebne za svakog zaposlenika.
Da bismo to postigli, koristit ćemo ključnu riječ JOIN za dobivanje podataka iz tablice odjela i zaposlenika.
Pogledajmo upit i njegov izlaz.
Ovdje možemo koristiti različite vrste PRIDRUŽIVANJA, poput UNUTARNJEG PRIDRUŽIVANJA, LIJEVOVANJNOG PRIDRUŽIVANJA, DESNOG VANJSKOG PRIDRUŽIVANJA ili PUNOG VANJSKOG PRIDRUŽIVANJA, ovisno o našim zahtjevima.
Upit:
CREATE VIEW join_view AS SELECT A.empNum, A.lastName, A.firstName, A.deptNum, B.city, B.country, B.bonus FROM employees A INNER JOIN departments B USING (deptNum) ; SELECT * FROM join_view ;
Izvršimo sada SELECT upit na ovom prikazu da vidimo izlaz:
Skup rezultata:
empNum | prezime | ime | deptNum | Grad | zemlja | bonus |
---|---|---|---|---|---|---|
1001 | Andrews | Utičnica | 1 | New York | Ujedinjene države | 3 |
1002 | Schwatz | Mikrofon | 1 | New York | Ujedinjene države | 3 |
1004 | Harera | Sandra | 1 | New York | Ujedinjene države | 3 |
1014 | Murray | Keith | 1 | New York | Ujedinjene države | 3 |
1003 | Langley | Margaret | dva | Charlotte | Ujedinjene države | 5 |
1005 | čitati | Peter | dva | Charlotte | Ujedinjene države | 5 |
1015 | Branson | Ivan | dva | Charlotte | Ujedinjene države | 5 |
1018 | Veza | Nolan | dva | Charlotte | Ujedinjene države | 5 |
1008 | Bailey | Oliver | 3 | Chicago | Ujedinjene države | 8 |
1012 | Luther | Martine | 3 | Chicago | Ujedinjene države | 8 |
1017 | Johnson | Predvečerje | 3 | Chicago | Ujedinjene države | 8 |
1016 | Martine | Richarde | 4 | London | Engleska | 10 |
1009 | Kupa | Harry | 5 | Berlin | Njemačka | 13 |
Stvorite pogled pomoću podupita
U ovoj vrsti izraza view view pokušavamo dohvatiti vrijednost stupca u kojem se klauzula temelji na izlazu potupita. Recimo, moramo pronaći sve one zaposlenike čija je plaća veća od prosječne plaće organizacije.
Pogledajmo upit:
Upit:
CREATE VIEW avgSal_view AS SELECT empNum, lastName, firstName, salary FROM employees WHERE salary > ( SELECT avg(salary) FROM employees ) ; SELECT * FROM avgSal_view ;
Skup rezultata:
empNum | prezime | ime | plaća |
---|---|---|---|
1018 | Veza | Nolan | 15000 |
1005 | čitati | Peter | 14332,5 |
1006 | Keith | Jenny | 16537,5 |
1008 | Bailey | Oliver | 24494,4 |
1009 | Kupa | Harry | 30645,6 |
1014 | Murray | Keith | 25000 |
1015 | Branson | Ivan | 15000 |
Upravljanje pogledima
Korištenjem prikaza Alter View ili Create / Replace možemo izmijeniti / zamijeniti bilo koji prikaz. Eksplicitna upotreba ALTER VIEW za ponovno sastavljanje pogleda nije važeća.
Ako imate IZMJENE BILO KOJE sistemske privilegije tablice ili ako je prikaz u vašoj shemi, možete koristiti Izvještaj ALTER VIEW.
Korištenjem upita Alter View možemo pronaći pogreške rekompilacije prije vremena izvođenja. Korištenje izraza ALTER VIEW može utjecati na drugi objekt / prikaz koji ovisi o njemu. Dakle, možemo ponovno sastaviti pogled nakon promjene.
Pogled možemo redefinirati pomoću Stvori pogled, a postojeći pogled možemo zamijeniti upitom Zamijeni prikaz.
najbolji besplatni video pretvarač za Windows
Na primjer, uzeti u obzir zaposlenici_pogled Ovdje imamo stupce lastName i firstName zajedno s nekoliko drugih. Uzmimo u obzir da imamo zahtjev za spajanjem stupaca firstName i lastName.
Dolje je dat snimak prikaza prije izvođenja upita ALTER.
Izvršimo sada upit ALTER VIEW da spojimo firstName i lastName.
Upit je dan u nastavku:
Upit:
ALTER VIEW employees_view AS SELECT empNum, CONCAT(firstName, ' ', lastName) AS empName, email, deptNum, salary, start_date FROM employees ;
Pogledajmo sad sadržaj staff_view:
Ako primijetite, nemamo dva odvojena stupca za imena. Umjesto toga, imamo samo jedan stupac u kojem su spojena i ime i prezime.
Saznajte više = >> MySQL CONCAT funkcija
Upit:
SELECT * FROM employees_view;
Skup rezultata:
empNum | empName | deptNum | plaća | početni datum | |
---|---|---|---|---|---|
1008 | Oliver Bailey | oliver.bailey@gmail.com | 3 | 24494 | 0001-01-01 |
1001 | Jack Andrews | ja@gmail.com | 1 | 3182,7 | 0001-01-01 |
1002 | Mike Schwatz | ms@gmail.com | 1 | 5304,5 | 0001-01-01 |
1003 | Margaret Langley | margaret.langley@gmail.com | dva | 8820 | 0001-01-01 |
1004 | Sandra harera | sh@gmail.com | 1 | 10609 | 0001-01-01 |
1005 | Peter Lee | pl@gmail.com | dva | 14333 | 0001-01-01 |
1006 | Jenny Keith | jk@gmail.com | dva | 16538 | 0001-01-01 |
1009 | Harry Beaker | 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 | 1 | 25000 | 0001-01-01 |
1015 | John Branson | jb@gmail.com | dva | 15000 | 0001-01-01 |
1016 | Richard Martin | rm@gmail.com | 4 | 5000 | 0001-01-01 |
1017 | Eve Johnson | ej@gmail.com | 3 | 5500 | 2019-11-25 |
1018 | Nolan Bond | nb@gmail.com | dva | 15000 | 2019-09-13 |
Ispuštanje pogleda
Pogled možemo ispustiti pomoću izraza DROP VIEW. DROP VIEW se može koristiti ako ima bilo kakvu privilegiju DROP ANY view ili bi to inače trebalo biti u njihovoj shemi. Visok prikaz ne utječe na temeljnu tablicu na kojoj je pogled izgrađen niti na podatke u toj tablici.
Upit:
DROP VIEW (view name);
Najčešća pitanja
P # 1) Kako stvoriti poglede u MySQL-u?
Odgovor: Postoji više načina za stvaranje pogleda u MySQL-u. Prošli smo kroz četiri različita načina kako je prikazano u nastavku.
1. MySQL Simple Stvorite pogled
2. MySQL Create View pomoću GROUP BY i ORDER BY
3. MySQL Create View koristeći JOIN
4. MySQL Create View pomoću podupita
najbolja špijunska telefonska aplikacija za android
P # 2) Što je pogled u MySQL-u?
Odgovor: Prikazi su poput unaprijed izvršenih upita pohranjenih u logičkoj strukturi, tako da ne moramo ponovno izvršavati složene upite na tablici. Možemo samo ispitati prikaz i dobiti svoje podatke bez utjecaja na tablicu.
3. pitanje) Možemo li primijeniti JOIN na poglede dok stvaramo poglede?
Odgovor: Da, JOIN izjave mogu se koristiti na pogledima, na sličan način na koji ga koristimo na tablicama.
P # 4) Možemo li stvoriti pogled iz drugog pogleda?
Odgovor: Pogledi u osnovi djeluju kao tablice, ali kao virtualni. Dakle, način na koji stvaramo poglede na vrhu tablice, na sličan način možemo stvoriti poglede na vrhu drugog prikaza.
P # 5) Zašto koristimo poglede?
Odgovor: Kao rezultat SQL upita, pogled stvara logičku tablicu. Stavove koristimo iz sljedećih razloga.
- Korištenjem pogleda možemo ograničiti vidljivost redaka i stupaca (pomoću klauzule Odaberi i Gdje) za relevantne zadatke.
- Prikazi se koriste kada kombiniramo retke i stupce (pomoću Unija i Pridružite se) iz više tablica.
- Da biste dobili jasniju prezentaciju agregiranja redaka (koristeći Grupiraj po i Imajući) u tablicu s detaljnijim detaljima.
- Prikazi se koriste tijekom preimenovanja ili dekodiranja stupca (pomoću AS-a) ili redaka (pomoću JOIN, IF, CASE ili Oracle-ovog DECODE).
- Kombinirajući bilo što od navedenog sa sigurnosnim postavkama, možemo provjeriti ima li korisnik pristup samo onome što je ovlašten.
Zaključak
U ovom uputstvu istražili smo različite načine stvaranja pogleda u MySQL-u.
1. MySQL Simple Stvorite pogled
2. MySQL Create View pomoću GROUP BY i ORDER BY
3. MySQL Create View koristeći JOIN
4. MySQL Create View pomoću podupita
Možemo odabrati bilo koju od ovih opcija ovisno o projektnim zahtjevima.
Daljnje čitanje = >> MySQL STVORI STOL
Sretno učenje !!
Preporučena literatura
- MySQL ALTER TABLE - Kako dodati stupac tablici u MySQL
- MySQL CONCAT i GROUP_CONCAT funkcije s primjerima
- MySQL BROJ I BROJ RAZLIKUJU SA Primjerima
- MySQL Create Database - Kako stvoriti bazu podataka u MySQL-u
- MySQL STVORI KORISNIKA: Kako stvoriti novog korisnika u MySQL-u
- MySQL Vodič za stvaranje pogleda s primjerima koda
- Klauzula MySQL GROUP BY - Vodič sa primjerima
- MySQL JOIN Vodič: Unutarnji, vanjski, križni, lijevi, desni i ja