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.