MySQL Nézetek: Nézet létrehozása táblázatokból példákkal
Miben vannak a nézetek MySQL?
NÉZETEK olyan virtuális táblák, amelyek nem tárolnak saját adatokat, hanem más táblákban tárolt adatokat jelenítenek meg. Más szóval, a VIEWS nem más, mint SQL lekérdezések. Egy nézet tartalmazhat egy táblázat összes vagy néhány sorát. A MySQL nézet egy vagy több tábla adatait is megjelenítheti.
MySQL Megtekintések szintaxisa
Most nézzük meg a nézet létrehozásához használt alapvető szintaxist MySQL.
CREATE VIEW `view_name` AS SELECT statement;
AHOL
- „NÉZET LÉTREHOZÁSA `view_name`” megmondja MySQL szervert, hogy létrehozzon egy nézetobjektumot a `view_name` nevű adatbázisban
- „AS SELECT utasítás” a csomagba csomagolandó SQL utasítások MySQL Nézetek. Ez lehet egy SELECT utasítás, amely egy táblából vagy több táblából is tartalmazhat adatokat.
Nézetek létrehozása itt MySQL
Az alábbiakban egy lépésről lépésre bemutatjuk a nézet létrehozásának folyamatát MySQL:
Step 1) Készítse el első nézetünket a „myflixdb” segítségével
Most hozzuk létre az első nézetünket a „myflixdb” használatával, és egy egyszerű nézetet hozunk létre, amely korlátozza a tagok táblájában látható oszlopokat.
Tegyük fel, hogy az engedélyezési követelmények kimondják, hogy a számviteli osztály csak a tag számát , nevét és nemét láthatja a tagok táblázatában. Ennek eléréséhez létrehozhat egy NÉZETet –
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
Step 2) A nézetek csomópontjának bővítése
A fenti szkript végrehajtása MySQL munkapadot a myflixdb ellen, és az adatbázis-kezelőben a nézetek csomópontjának kibővítésével a következő eredményeket kapjuk.
Vegye figyelembe, hogy az accounts_v_members objektum most már látható az adatbázisnézeti objektumokban.
Step 3) Hajtson végre egy SELECT utasítást
Most hajtsuk végre a SELECT utasítás amely kijelöli az összes mezőt a nézetből az alábbiak szerint MySQL nézet létrehozása példa.
SELECT * FROM `accounts_v_members`;
Step 4) Futtasson le egy szkriptet
A fenti szkript végrehajtása MySQL A myflixdb elleni munkapad az alábbi eredményeket adja.
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 |
Csak a számviteli osztály engedélyezett oszlopai kerültek visszaadásra. A tagok táblázatában található egyéb részletek el lettek rejtve .
Ha egy adott nézetet alkotó SQL-utasításokat szeretnénk látni, használhatjuk az alábbi szkriptet.
SHOW CREATE VIEW `accounts_v_members`;
A fenti parancsfájl végrehajtása megadja a nézet nevét és a nézet létrehozásához használt SQL SELECT utasításokat.
Csatlakozik és megtekinti MySQL
Nézzünk most egy meglehetősen összetett példát, amely több táblát és felhasználást foglal magában csatlakozik.
Csomagoljuk a létrehozott JOIN-t, amely három (3) táblázatból kap információkat, nevezetesen a tagokról, a filmekről és a filmkölcsönzésről. Az alábbiakban látható a forgatókönyv, amely segít ennek elérésében.
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`;
A fenti szkriptek végrehajtása létrehozza a general_v_movie_rentals nevű nézetet a myflixdb-ben
Most jelöljük ki az összes mezőt egy general_v_movie_rentals nevű táblából.
SELECT * FROM `general_v_movie_rentals`;
A fenti szkript végrehajtása MySQL munkapad a myflixdb ellen az alábbi eredményeket adjuk.
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 |
Megjegyzés: nem kellett megírnunk az összetett JOIN lekérdezést, hogy információkat kapjunk a tagokról, a filmekről és a filmkölcsönzés részleteiről. Egyszerűen a nézetet egy szokásos SELECT utasításban használtuk, mint bármely más szokásos táblát. A nézet a myflixdb tetején futó alkalmazásrendszer bárhonnan hívható.
Nézetek bezárása MySQL
A DROP paranccsal törölhet egy nézetet a adatbázis arra már nincs szükség. A nézet eldobásának alapvető szintaxisa a következő.
DROP VIEW ` general_v_movie_rentals `;
Miért érdemes nézeteket használni?
A nézeteket elsősorban a következő 3 ok miatt érdemes használni
- Végül a sajátját fogja használni SQL tudás , olyan alkalmazások létrehozásához, amelyek adatbázist használnak az adatigényekhez. Javasoljuk, hogy az alkalmazásban az eredeti táblaszerkezet VIEWS elemét használja, ahelyett, hogy magukat a táblázatokat használná. Ez biztosítja, hogy a DB átalakítása során a régi kód az eredeti sémát látja a nézeten keresztül anélkül, hogy az alkalmazás megtörne.
- A NÉZETEK növelik az újrafelhasználhatóságot. Nem kell összetett lekérdezéseket létrehoznia, amelyek ismétlődő csatlakozásokat tartalmaznak. Az összes bonyolultság egyetlen sor lekérdezéssé konvertálódik a VIEWS használatával. Az ilyen tömörített kód könnyebben integrálható az alkalmazásba. Ez kiküszöböli az elírások esélyét, és a kód jobban olvasható lesz.
- A VIEWS segít az adatbiztonságban. A nézetek segítségével csak engedélyezett információkat jeleníthet meg a felhasználók számára, és elrejtheti az érzékeny adatokat, például a hitelkártyaszámokat.
Összegzésként
- A nézetek virtuális táblák; nem tartalmazzák a visszaküldött adatokat. Az adatok a SELECT utasításban hivatkozott táblákban tárolódnak.
- A nézetek javítják az adatbázis biztonságát azáltal, hogy csak a tervezett adatokat jelenítik meg a jogosult felhasználók számára. Érzékeny adatokat rejtenek el.
- A nézetek megkönnyítik az életet, mivel nem kell újra és újra bonyolult lekérdezéseket írnia.
- A VIEW-ben az INSERT, UPDATE és DELETE használható. Ezek a műveletek megváltoztatják a VIEW mögöttes táblákat. Az egyetlen szempont az, hogy a VIEW-nek tartalmaznia kell a hivatkozott táblák összes NOT NULL oszlopát. Ideális esetben ne használja a VIEWS-t frissítéshez.