Pogledi MySQL: Kako ustvariti pogled iz tabel s primeri

Kazalo:

Anonim

Kaj so pogledi v MySQL?

POGLEDI so navidezne tabele, ki ne shranjujejo lastnih podatkov, temveč prikazujejo podatke, shranjene v drugih tabelah. Z drugimi besedami, POGLEDI niso nič drugega kot poizvedbe SQL. Pogled lahko vsebuje vse ali nekaj vrstic iz tabele. Pogled MySQL lahko prikazuje podatke iz ene ali več tabel.

Sintaksa MySQL Views

Poglejmo zdaj osnovno sintakso, uporabljeno za ustvarjanje pogleda v MySQL.

CREATE VIEW `view_name` AS SELECT statement;

KJE

  • "USTVARI POGLED` view_name "" pove strežniku MySQL, naj v zbirki podatkov z imenom "view_name" ustvari predmet pogleda.
  • "AS SELECT statement" je stavek SQL, ki se pakira v poglede MySQL. To je lahko izjava SELECT, ki lahko vsebuje podatke iz ene ali več tabel.

Kako ustvariti poglede v MySQL

Sledi postopek po korakih za ustvarjanje pogleda v MySQL:

Ustvarimo zdaj svoj prvi pogled z uporabo "myflixdb", ustvarili bomo preprost pogled, ki omejuje stolpce, ki jih vidimo v tabeli članov.

Recimo, da zahteve za avtorizacijo navajajo, da lahko računovodska služba vidi samo številko, ime in spol člana iz tabele člana. Da bi to dosegli, lahko ustvarite POGLED -

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

Izvedba zgornjega skripta v delovnem okolju MySQL v primerjavi z myflixdb in razširitev vozlišča pogledov v raziskovalcu baz podatkov nam da naslednje rezultate.

Upoštevajte, da je predmet accounts_v_members zdaj viden v objektih pogledov baze podatkov. Izvedimo zdaj izjavo SELECT, ki izbere vsa polja iz pogleda, kot je prikazano v spodnjem primeru MySQL create view.

SELECT * FROM `accounts_v_members`;

Izvedba zgornjega skripta v delovnem okolju MySQL proti myflixdb nam da naslednje rezultate, prikazane spodaj.

 
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

Vrnjeni so bili samo pooblaščeni stolpci za računovodstvo. Druge podrobnosti v tabeli članov so skrite.

Če želimo videti stavke SQL, ki sestavljajo določen pogled, lahko za to uporabimo spodnji skript.

PRIKAŽI Ustvari pogled "accounts_v_members";

Z izvajanjem zgornjega skripta dobite ime pogleda in stavke SQL SELECT, uporabljene za ustvarjanje pogleda.

Pridružitve in pogledi v MySQL

Poglejmo zdaj dokaj zapleten primer, ki vključuje več tabel in uporablja združevanja.

Ustvarili bomo JOIN, ki dobi informacije iz treh (3) tabel, in sicer članov, filmov in izposoje filmov. Spodaj je scenarij, ki nam pomaga, da to dosežemo.

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

Izvajanje zgornjih skriptov ustvari pogled z imenom general_v_movie_rentals v našem myflixdb

Izberimo zdaj vsa polja iz tabele z imenom general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Izvedba zgornjega skripta v delovnem okolju MySQL proti myflixdb nam da naslednje rezultate, prikazane spodaj.

 
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

Upoštevajte, da nam ni bilo treba napisati zapletene poizvedbe JOIN, da bi dobili informacije o članih, filmih in podrobnostih izposoje filmov. Pogled smo preprosto uporabili v običajnem stavku SELECT kot katero koli drugo običajno tabelo. Pogled lahko pokličete kjer koli v aplikacijskem sistemu, ki se izvaja na vrhu myflixdb.

Spuščanje pogledov v MySQL

Ukaz DROP lahko uporabite za brisanje pogleda iz baze podatkov, ki ni več potreben. Osnovna sintaksa za spuščanje pogleda je naslednja.

DROP VIEW ` general_v_movie_rentals `;

Zakaj uporabljati poglede?

Poglede boste morda želeli uporabljati predvsem iz treh razlogov

  • Na koncu boste svoje znanje SQL uporabili za ustvarjanje aplikacij, ki bodo uporabile bazo podatkov za podatkovne zahteve. Priporočljivo je, da v svoji aplikaciji uporabite POGLED izvirne strukture tabel, namesto da bi uporabili same tabele. To zagotavlja, da bo pri preoblikovanju DB vaša starejša koda videla shemo orignal prek pogleda, ne da bi zlomila aplikacijo.
  • POGLEDI povečajo ponovno uporabnost. Ne bo vam treba večkrat ustvarjati zapletenih poizvedb, ki vključujejo združevanja. Vsa zapletenost se pretvori v eno vrstico poizvedbe z uporabo POGLEDOV. Tako strnjeno kodo boste lažje vključili v svojo aplikacijo. S tem boste odpravili možnosti za napak in vaša koda bo bolj berljiva.
  • POGLEDI pomagajo pri varnosti podatkov. Poglede lahko uporabite za prikaz uporabnikom samo pooblaščenih podatkov in skrivanje občutljivih podatkov, kot so številke kreditnih kartic.

Povzetek

  • Pogledi so navidezne tabele; ne vsebujejo podatkov, ki se vrnejo. Podatki so shranjeni v tabelah, na katere se sklicuje stavek SELECT.
  • Pogledi izboljšajo varnost baze podatkov tako, da pooblaščenim uporabnikom prikažejo samo predvidene podatke. Skrivajo občutljive podatke.
  • Pogledi olajšajo življenje, saj vam vedno znova ni treba pisati zapletenih poizvedb.
  • Na POGLEDU je mogoče uporabiti INSERT, UPDATE in DELETE. Te operacije bodo spremenile osnovne tabele VIEW. Upoštevati je treba le, da mora VIEW vsebovati vse NULL stolpce tabel, na katere se sklicuje. V idealnem primeru za posodabljanje ne smete uporabljati POGLEDOV.