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.

  • 🧱 Osnovna definicija: Pogled je imenovana SELECT naredba koja se ponaša kao tablica, ali ne sadrži podatke.
  • 🔐 Sigurnosna prednost: Prikazi otkrivaju samo ovlaštene stupce i skrivaju osjetljiva polja od korisnika.
  • ♻️ Prednost ponovne upotrebe: Složeni višetablični JOIN se piše jednom i ponovno koristi kao jednoredni SELECT.
  • 🛠️ Sintaksa stvaranja: Naredba CREATE VIEW `view_name` AS SELECT definira prikaz unutar baze podataka.
  • 🗑️ Naredbe životnog ciklusa: SHOW CREATE VIEW otkriva pohranjeni upit, a DROP VIEW ga briše bez dodirivanja osnovnih tablica.

MySQL Posjeta

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

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

Pitanja i odgovori

Ponekad INSERT, UPDATE i DELETE rade samo na jednostavnim prikazima koji sadrže svaki NOT NULL stupac osnovne tablice. Prikazi izgrađeni na spajanjima ili agregacijskim funkcijama ne mogu se ažurirati.

Tablica fizički pohranjuje retke na disku. Prikaz pohranjuje samo SELECT naredbu i ponovno gradi svoje retke pri svakom upitu, tako da uvijek odražava trenutne podatke u osnovnim tablicama.

Ne. Pogled pokreće svoj temeljni SELECT pri svakom pozivu, tako da performanse odgovaraju izvornom upitu. MySQL nema materijaliziranih prikaza, a brzina i dalje ovisi o indeksima osnovne tablice.

Da. AI asistenti u alatima kao što su MySQL Radna tezga može izraditi naredbu CREATE VIEW iz opisa. Provjerite popis stupaca i ključeve spajanja prije pokretanja.

Djelomično. Umjetna inteligencija može označiti osjetljive stupce, poput brojeva kartica, i predložiti sigurniji popis stupaca. Konačna odluka i dalje mora biti u skladu s pravilima vaše organizacije o pristupu podacima.

Sažmite ovu objavu uz: