MySQL Prikazi: Kako stvoriti prikaz iz tablica
⚡ Pametni sažetak
MySQL Prikazi su virtualne tablice koje ne pohranjuju vlastite podatke, već umjesto toga prikazuju rezultat pohranjenog SELECT upita. Ovaj resurs objašnjava kako stvoriti, upitati, spojiti i ukloniti prikaze, s primjerima koje je moguće pokrenuti iz baze podataka myflixdb.
Što su Views in MySQL?
POGLED su virtualne tablice koje ne pohranjuju vlastite podatke, već prikazuju podatke pohranjene u drugim tablicama. Drugim riječima, VIEWS nisu ništa drugo nego SQL upiti. Pogled može sadržavati sve ili nekoliko redaka iz tablice. A MySQL pogled može prikazati podatke iz jedne tablice ili više tablica.
MySQL Sintaksa prikaza
Pogledajmo sada osnovnu sintaksu koja se koristi za stvaranje prikaza MySQL.
CREATE VIEW `view_name` AS SELECT statement;
GDJE
- “KREIRAJ PRIKAZ `view_name`” govori MySQL poslužitelj za stvaranje objekta pogleda u bazi podataka pod nazivom `view_name`
- “AS SELECT izjava” je SQL naredbe koje treba upakirati u MySQL Pogledi. To može biti izjava SELECT koja može sadržavati podatke iz jedne tablice ili više tablica.
Zašto koristiti prikaze?
Prije nego što ga izgradite, korisno je znati što vam pogled zapravo donosi.
Možda ćete htjeti prvenstveno koristiti poglede iz sljedeća 3 razloga
- U konačnici, koristit ćete svoje SQL znanje, za izradu aplikacija koje će koristiti bazu podataka za zahtjeve za podacima. Preporučuje se korištenje POGLEDA izvorne strukture tablice u vašoj aplikaciji umjesto korištenja samih tablica. To osigurava da će, kada refaktorirate svoju bazu podataka, vaš naslijeđeni kod vidjeti izvornu shemu putem pogleda bez prekida aplikacije.
- PRIKAZI povećavaju mogućnost ponovne upotrebe. Nećete morati iznova stvarati složene upite koji uključuju spajanja. Sva se složenost pretvara u jedan redak upita koji koristi VIEWS. Takav sažeti kod bit će lakše integrirati u vašu aplikaciju. To će eliminirati mogućnost tipfelera i vaš će kôd biti čitljiviji.
- VIEWS pomoć u sigurnosti podataka. Možete koristiti prikaze da biste korisnicima prikazali samo ovlaštene podatke i sakrili osjetljive podatke poput brojeva kreditnih kartica.
Kako stvoriti prikaze u MySQL
Nakon što su sintaksa i prednosti utvrđene, sljedeći koraci omogućuju izgradnju radnog prikaza od početka do kraja.
Slijedi korak po korak proces stvaranja prikaza MySQL:
Korak 1) Stvorite naš prvi prikaz pomoću “myflixdb”
Kreirajmo sada naš prvi prikaz pomoću “myflixdb” stvorit ćemo jednostavan prikaz koji ograničava stupce koji se vide u tablici članova.
Pretpostavimo da zahtjevi za autorizaciju navode da računovodstveni odjel može vidjeti samo broj, ime i spol člana iz tablice člana. Da biste to postigli, možete stvoriti VIEW –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Korak 2) Proširivanje čvora prikaza
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb i proširenje čvora pogleda u istraživaču baze podataka daje nam sljedeće rezultate.
Imajte na umu da je objekt accounts_v_members sada vidljiv u objektima prikaza baze podataka.
Korak 3) Izvršite naredbu SELECT
Izvršimo sada a SELECT izraz koji odabire sva polja iz prikaza kao što je prikazano u nastavku MySQL stvoriti primjer prikaza.
SELECT * FROM `accounts_v_members`;
Korak 4) Izvršite skriptu
Izvršavanje gornje skripte u MySQL workbench u odnosu na myflixdb daje nam sljedeće rezultate prikazane u nastavku.
| 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 |
Vraćeni su samo ovlašteni stupci za računovodstveni odjel. Ostali detalji pronađeni u tablici članova su skriveni.
Ako želimo vidjeti SQL naredbe koje čine određeni prikaz, za to možemo koristiti skriptu prikazanu u nastavku.
SHOW CREATE VIEW `accounts_v_members`;
Izvršavanje gornje skripte daje vam naziv prikaza i SQL SELECT naredbe koje se koriste za stvaranje pogleda.
Pridružuje se i pregledava MySQL
Prikaz s jednom tablicom je najjednostavniji slučaj. Prikazi postaju puno vrijedniji kada okružuju upit s više tablica.
Pogledajmo sada prilično složen primjer koji uključuje više tablica i upotreba pridružuje.
Zapakirat ćemo kreirani JOIN koji dobiva informacije iz tri (3) tablice, odnosno članova, filmova i posudbi filmova. Ispod je skripta koja nam pomaže da to postignemo.
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`;
Izvršavanjem gornjih skripti stvara se pogled pod nazivom general_v_movie_rentals u našoj myflixdb
Odaberimo sada sva polja iz tablice pod nazivom general_v_movie_rentals.
SELECT * FROM `general_v_movie_rentals`;
Izvršavanje gornje skripte u MySQL radna tezga u odnosu na myflixdb daje nam sljedeće rezultate prikazane u nastavku.
| 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 |
Imajte na umu da nismo morali napisati složeni upit JOIN da bismo dobili informacije o članovima, filmovima i pojedinostima o najmu filmova. Jednostavno smo koristili pogled u redovnoj SELECT naredbi kao bilo koju drugu običnu tablicu. Pogled se može pozvati s bilo kojeg mjesta u aplikacijskom sustavu koji radi na vrhu myflixdb-a.
Ispustitiping Pogledi u MySQL
Naredba DROP može se koristiti za brisanje prikaza iz baza podataka to više nije potrebno. Osnovna sintaksa za ispuštanje prikaza je sljedeća.
DROP VIEW `general_v_movie_rentals`;
Ispustitiping Prikaz uklanja samo pohranjeni upit; temeljne tablice i njihovi podaci ostaju netaknuti.


