MySQL-i vaated: kuidas luua näidetega tabelitest vaade

Lang L: none (table-of-contents):

Anonim

Mis on vaated MySQL-is?

VIEWS on virtuaalsed tabelid, mis ei salvesta mingeid oma andmeid, kuid kuvavad teistesse tabelitesse salvestatud andmeid. Teisisõnu, VAADED pole muud kui SQL-päringud. Vaade võib sisaldada kõiki või mõnda tabeli rida. MySQL-i vaade võib näidata andmeid ühest või mitmest tabelist.

MySQL kuvab süntaksit

Vaatame nüüd MySQL-i vaate loomiseks kasutatud põhisüntaksit.

CREATE VIEW `view_name` AS SELECT statement;

KUS

  • "CREATE VIEW" view_name " käsib MySQL-serveril luua vaates objekt andmebaasi nimega" view_name "
  • "AS SELECT-lause" on SQL-laused, mis tuleb pakkida MySQL-i vaadetesse. See võib olla lause SELECT võib sisaldada andmeid ühest tabelist või mitmest tabelist.

Kuidas luua vaateid MySQL-is

Järgmine on samm-sammuline protsess vaate loomiseks MySQL-is:

Loome nüüd oma esimese vaate "myflixdb" abil, loome lihtsa vaate, mis piirab liikmetabelis näha olevaid veerge.

Oletame, et autoriseerimisnõuetes on kirjas, et raamatupidamisosakond näeb liikme numbrit, nime ja sugu ainult liikme tabelist. Selle saavutamiseks saate luua VAADE -

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

Ülaltoodud skripti käivitamine MySQL-i töölaual myflixdb-ga ja vaadete sõlme laiendamine andmebaaside uurijas annab meile järgmised tulemused.

Pange tähele, et objekt account_v_members on nüüd andmebaasivaadete objektides nähtav. Käivitame nüüd SELECT-lause, mis valib vaates kõik väljad, nagu on näidatud allpool MySQL-i loomise vaate näites.

SELECT * FROM `accounts_v_members`;

Ülaltoodud skripti käivitamine MySQL-i töölaual myflixdb vastu annab meile järgmised tulemused.

 
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

Tagastatud on ainult kontode osakonna volitatud veerud. Muud liikmete tabelist leitud üksikasjad on peidetud.

Kui tahame näha konkreetse vaate moodustavaid SQL-lauseid, võime selleks kasutada allpool näidatud skripti.

NÄITA LOOA VAADET `kontosid_v_liikmeid`;

Ülaltoodud skripti käivitamine annab teile vaate nime ja vaate loomiseks kasutatud SQL SELECT-lause.

Liitub ja vaatab MySQL-is

Vaatame nüüd üsna keerukat näidet, mis hõlmab mitut tabelit ja kasutab liitumisi.

Pakime loodud JOINi, mis saab teavet kolmest (3) tabelist, nimelt liikmetest, filmidest ja filmilaenutusest. Allpool on skript, mis aitab meil seda saavutada.

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

Ülaltoodud skriptide käivitamine loob meie myflixdb-s vaate general_v_movie_rentals

Valime nüüd kõik väljad tabelist nimega general_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

Ülaltoodud skripti käivitamine MySQL-i töölaual myflixdb vastu annab meile järgmised tulemused.

 
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

Pange tähele, et liikmete, filmide ja filmilaenutuse üksikasjade kohta teabe saamiseks ei pidanud me kirjutama keerukat JOIN-päringut. Me kasutasime lihtsalt tavalises SELECT-väljaandes vaadet nagu muud tavalist tabelit. Vaate saab välja kutsuda myflixdb peal töötavas rakendussüsteemis kõikjalt.

Vaatamiste kukutamine MySQL-is

DROP-käsu abil saab andmebaasist kustutada vaate, mis pole enam vajalik. Vaate viskamise põhisüntaks on järgmine.

DROP VIEW ` general_v_movie_rentals `;

Miks vaateid kasutada?

Vaateid võiksite kasutada peamiselt kolmel põhjusel

  • Lõppkokkuvõttes kasutate oma SQL-teadmisi rakenduste loomiseks, mis kasutavad andmenõuete jaoks andmebaasi. Soovitatav on kasutada oma rakenduses VIEWS algse tabelistruktuuri asemel tabeleid. See tagab, et kui te oma DB-d ümber töötate, näeb teie pärandkood vaate kaudu orignaalskeemi rakendust rikkumata.
  • VAADED suurendavad taaskasutatavust. Te ei pea korduvaid liitumisi hõlmavaid keerukaid päringuid looma. Kogu keerukus teisendatakse üheks päringureaks VIEWS. Sellist tihendatud koodi on teie rakendusse lihtsam integreerida. See välistab kirjavigade tekkimise võimaluse ja teie kood on loetavam.
  • VIEWS aitab andmete turvalisust. Vaateid saate kasutada, et näidata kasutajatele ainult volitatud teavet ja peita tundlikke andmeid, näiteks krediitkaardinumbrid.

Kokkuvõte

  • Vaated on virtuaalsed tabelid; need ei sisalda tagastatavaid andmeid. Andmed salvestatakse SELECT-lauses viidatud tabelitesse.
  • Vaated parandavad andmebaasi turvalisust, kuvades volitatud kasutajatele ainult kavandatud andmeid. Nad peidavad tundlikke andmeid.
  • Vaated muudavad elu lihtsaks, kuna teil pole keerulisi päringuid ikka ja jälle kirjutada.
  • Vaates on võimalik kasutada valikuid INSERT, UPDATE ja DELETE. Need toimingud muudavad VIEW-i aluseks olevaid tabeleid. Ainus kaalutlus on see, et VIEW peaks sisaldama kõiki viidatud tabelite veerge NOT NULL. Ideaalis ei tohiks te värskendamiseks kasutada VIEWS-i.