MySQL Pogledi: Kako stvoriti prikaz iz tablica s primjerima

Š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.

Kako stvoriti prikaze u MySQL

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 odjel računovodstva može vidjeti samo broj člana, ime i spol iz tablice člana. Da biste to postigli, možete stvoriti POGLED –

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.

Stvorite prikaze u MySQL

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čunovodstvo. 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

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.

Ubacivanje prikaza 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 `;

Zašto koristiti prikaze?

Možda ćete htjeti prvenstveno koristiti poglede iz sljedeća 3 razloga

  • U konačnici ćete koristiti svoje SQL znanja, za izradu aplikacija koje će koristiti bazu podataka za potrebe podataka. Preporuča se da koristite PRIKAZE izvorne strukture tablice u svojoj aplikaciji umjesto korištenja samih tablica. Ovo osigurava da će, kada refaktorizirate svoj DB, vaš naslijeđeni kod vidjeti izvornu shemu putem prikaza 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.

rezime

  • Pogledi su virtualne tablice; ne sadrže podatke koji se vraćaju. Podaci su pohranjeni u tablicama na koje se poziva izjava SELECT.
  • Prikazi poboljšavaju sigurnost baze podataka prikazujući samo namijenjene podatke ovlaštenim korisnicima. Skrivaju osjetljive podatke.
  • Pogledi olakšavaju život jer ne morate stalno iznova pisati složene upite.
  • Moguće je koristiti INSERT, UPDATE i DELETE na VIEW. Ove operacije će promijeniti temeljne tablice VIEW-a. Jedino što treba uzeti u obzir je da VIEW treba sadržavati sve NOT NULL stupce tablica na koje upućuje. U idealnom slučaju, ne biste trebali koristiti VIEWS za ažuriranje.