MySQL Nézetek: Hogyan hozhatunk létre nézetet táblázatokból

⚡ Okos összefoglaló

MySQL A nézetek virtuális táblázatok, amelyek nem tárolnak saját adatokat, ehelyett egy tárolt SELECT lekérdezés eredményét jelenítik meg. Ez az anyag a myflixdb adatbázisból futtatható példákkal ismerteti a nézetek létrehozását, lekérdezését, összekapcsolását és elvetését.

  • 🧱 Alapvető definíció: A nézet egy elnevezett SELECT utasítás, amely táblázatként viselkedik, de nem tartalmaz adatokat.
  • 🔐 Biztonsági előny: A nézetek csak a jogosult oszlopokat teszik elérhetővé, a bizalmas mezőket pedig rejtve tartják a felhasználók elől.
  • ♻️ Újrafelhasználhatósági előny: Egy összetett, többtáblás JOIN utasítást egyszer írunk meg, majd egysoros SELECT utasításként használunk fel újra.
  • 🇧🇷 Létrehozási szintaxis: A CREATE VIEW `view_name` AS SELECT utasítás definiálja a nézetet az adatbázison belül.
  • 🗑️ Életciklus parancsok: A SHOW CREATE VIEW parancs megjeleníti a tárolt lekérdezést, a DROP VIEW pedig törli azt az alaptáblák érintése nélkül.

MySQL Nézetek

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.

Miért érdemes nézeteket használni?

Mielőtt építenél egyet, érdemes tudni, hogy mit is ér valójában egy kilátás.

A nézeteket elsősorban a következő 3 ok miatt érdemes használni

  • Végső soron a sajátodat fogod használni SQL tudást, olyan alkalmazások létrehozásához, amelyek adatbázist használnak az adatkövetelményekhez. Javasoljuk, hogy az alkalmazásban az eredeti táblaszerkezet NÉZETÉT használja a táblák helyett. Ez biztosítja, hogy az adatbázis refaktorálásakor a korábbi kód az eredeti sémát fogja látni a nézeten keresztül az alkalmazás meghibásodása nélkül.
  • 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.

Nézetek létrehozása itt MySQL

A szintaxis és az előnyök megismerésével az alábbi lépések egy működőképes nézetet építenek fel a teljes folyamat során.

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 a jogosultsági követelmények előírják, hogy a könyvelési osztály csak a tag számát, nevét és nemét láthatja a tagtáblázatból. 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ályhoz tartozó engedélyezett oszlopok kerültek visszaadásra. A tagok táblában található egyéb adatok rejtve lettek.

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

Az egytáblás nézet a legegyszerűbb eset. A nézetek sokkal értékesebbé válnak, ha egy többtáblás lekérdezést is magukban foglalnak.

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ó.

Cseppping Megtekintések 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`;

Cseppping Egy nézet csak a tárolt lekérdezést távolítja el; az alapul szolgáló táblák és adataik érintetlenek maradnak.

GYIK

Az INSERT, UPDATE és DELETE műveletek néha csak egyszerű nézeteken működnek, amelyek az alaptábla minden NOT NULL oszlopát tartalmazzák. Az illesztésekre vagy aggregátumfüggvényekre épülő nézetek nem frissíthetők.

Egy tábla fizikailag tárolja a sorokat a lemezen. Egy nézet csak egy SELECT utasítást tárol, és minden lekérdezéskor újraépíti a sorait, így mindig az aktuális adatokat tükrözi az alaptáblákban.

Nem. Egy nézet minden híváskor lefuttatja az alapul szolgáló SELECT-et, így a teljesítmény megegyezik az eredeti lekérdezéssel. MySQL nincsenek materializált nézetek, és a sebesség továbbra is az alaptábla indexektől függ.

Igen. Mesterséges intelligencia asszisztensek olyan eszközökben, mint például MySQL Workbench CREATE VIEW utasítást készíthet egy leírásból. Futtatás előtt ellenőrizze az oszloplistát és az illesztési kulcsokat.

Részben. A mesterséges intelligencia képes megjelölni az érzékeny oszlopokat, például a kártyaszámokat, és biztonságosabb oszloplistát javasolni. A végső döntésnek továbbra is meg kell felelnie a szervezet adathozzáférési szabályzatának.

Foglald össze ezt a bejegyzést a következőképpen: