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.

Nézetek létrehozása itt MySQL

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.