MySQL Vaated: kuidas luua vaadet tabelitest
โก Nutikas kokkuvรตte
MySQL Vaated on virtuaalsed tabelid, mis ei salvesta ise andmeid, vaid esitavad salvestatud SELECT-pรคringu tulemuse. See ressurss selgitab, kuidas vaateid luua, pรคringuid esitada, liita ja eemaldada, tuues nรคiteid myflixdb andmebaasist.

Milles on vaated MySQL?
VAADUSED on virtuaalsed tabelid, mis ei salvesta oma andmeid, vaid kuvavad teistes tabelites salvestatud andmeid. Teisisรตnu, VIEWS pole midagi muud kui SQL-pรคringud. Vaade vรตib sisaldada kรตiki vรตi mรตnda tabeli rida. A MySQL vaade vรตib nรคidata andmeid รผhest vรตi mitmest tabelist.
MySQL Vaatamiste sรผntaks
Vaatame nรผรผd pรตhisรผntaksit, mida kasutatakse vaate loomiseks MySQL.
CREATE VIEW `view_name` AS SELECT statement;
KUS
- โLOO VAADE โvaate_nimiโ รผtleb MySQL serverisse, et luua andmebaasis vaateobjekt nimega "vaate_nimi".
- "AS SELECT avaldus" on SQL-laused, mis tuleb pakkida MySQL Vaated. See vรตib olla SELECT-lause, mis vรตib sisaldada andmeid รผhest vรตi mitmest tabelist.
Miks kasutada vaateid?
Enne selle ehitamist on kasulik teada, mida vaade sulle tegelikult ostab.
Vaateid vรตiksite kasutada peamiselt jรคrgmistel kolmel pรตhjusel
- Lรตppkokkuvรตttes kasutate oma SQL teadmisi, et luua rakendusi, mis kasutavad andmenรตuete jaoks andmebaasi. Soovitatav on rakenduses kasutada algse tabeli struktuuri VAATEID tabelite endi asemel. See tagab, et andmebaasi รผmberkujundamisel nรคeb pรคrandkood vaate kaudu algset skeemi ilma rakendust rikkumata.
- VAADED suurendavad taaskasutatavust. Teil ei ole vaja luua keerulisi pรคringuid, mis hรตlmavad korduvalt liitumisi. Kogu keerukus teisendatakse VIEWS-i pรคringu รผheks reale. Sellist lรผhendatud koodi on teie rakendusse lihtsam integreerida. See vรคlistab kirjavigade vรตimaluse ja teie kood on loetavam.
- VIEWS abi andmeturbe vallas. Saate kasutada vaateid, et kuvada kasutajatele ainult volitatud teavet ja peita tundlikke andmeid, nรคiteks krediitkaardinumbreid.
Kuidas luua vaateid MySQL
Kui sรผntaks ja eelised on kindlaks tehtud, loovad allolevad sammud otsast lรตpuni toimiva vaate.
Jรคrgnev on samm-sammult vaate loomise protsess MySQL:
Step 1) Looge meie esimene vaade "myflixdb" abil
Loome nรผรผd oma esimese vaate "myflixdb" abil, loome lihtsa vaate, mis piirab liikmete tabelis nรคhtavaid veerge.
Oletame, et autoriseerimisnรตuded sรคtestavad, et raamatupidamisosakond nรคeb liikmete tabelist ainult liikme numbrit, nime ja sugu. Selle saavutamiseks saate luua VAATE โ
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Step 2) Vaadete sรตlme laiendamine
รlaltoodud skripti kรคivitamine MySQL tรถรถlaud myflixdb vastu ja vaadete sรตlme laiendamine andmebaasiuurijas annab meile jรคrgmised tulemused.
Pange tรคhele, et objekt accounts_v_members on nรผรผd andmebaasivaadete objektides nรคhtav.
Step 3) Kรคivitage kรคsk SELECT
Teostame nรผรผd a SELECT avaldus mis valib vaatest kรตik vรคljad, nagu allpool nรคidatud MySQL luua vaate nรคide.
SELECT * FROM `accounts_v_members`;
Step 4) Kรคivitage skript
รlaltoodud skripti kรคivitamine MySQL tรถรถlaud myflixdb vastu annab meile jรคrgmised allpool nรคidatud 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 raamatupidamisosakonna autoriseeritud veerud. Muud liikmete tabelis olevad andmed on peidetud.
Kui tahame nรคha SQL-lauseid, mis moodustavad konkreetse vaate, saame selleks kasutada allpool nรคidatud skripti.
SHOW CREATE VIEW `accounts_v_members`;
รlaltoodud skripti kรคivitamine annab teile vaate nime ja vaate loomiseks kasutatud SQL SELECT-laused.
Liitub ja vaatab sisse MySQL
รhe tabeli vaade on kรตige lihtsam juhtum. Vaated muutuvad palju vรครคrtuslikumaks, kui need hรตlmavad mitme tabeli pรคringut.
Vaatame nรผรผd รผsna keerulist nรคidet, mis hรตlmab mitut tabelit ja kasutusala liitub.
Pakendame loodud JOIN-i, mis saab teavet kolmest (3) tabelist, nimelt liikmed, filmid ja filmilaenutused. 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 nimega 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 tรถรถlaud myflixdb vastu annab meile jรคrgmised allpool nรคidatud 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 filmide laenutamise รผksikasjade kohta teabe saamiseks ei pidanud me kirjutama keerulist JOIN-pรคringut. Me lihtsalt kasutasime vaadet tavalises SELECT-lauses nagu mis tahes muud tavalist tabelit. Vaadet saab kutsuda kรตikjalt myflixdb peal tรถรถtavas rakendussรผsteemis.
Dropping Vaated sisse MySQL
DROP-kรคsku saab kasutada vaate kustutamiseks andmebaas mida enam ei nรตuta. Vaate tรผhistamise pรตhisรผntaks on jรคrgmine.
DROP VIEW `general_v_movie_rentals`;
Dropping Vaade eemaldab ainult salvestatud pรคringu; aluseks olevad tabelid ja nende andmed jรครคvad puutumata.

