Bevezetés a MySQL nézetekbe
Az SQL nézet nem más, mint az adatbázis virtuális táblája. A nézet olyan mezőket tartalmaz, mint egy igazi tábla, de ezek a mezők egy vagy több táblaből származnak az adatbázisban, amelyet egy csomó MySQL lekérdezés futtatásával hajtanak végre. Végezhetünk olyan műveleteket, mint a WHERE és JOIN záradékok a virtuális táblázatokban. Másrészt a VIEW nem más, mint a SELECT lekérdezések.
Szintaxis:
CREATE VIEW view_name AS
SELECT column1, column2, …
FROM table;
- A „CREATE VIEW view_name” paranccsal a MySQL parancsot készít egy nézet / virtuális tábla létrehozására a view_name néven.
- Az „AS SELECT 1. oszlop, 2. oszlop FROM táblából” nyilatkozat az 1. és 2. oszlopot hozza le a valódi táblából. Ezután elmenti ezeket a mezőket a virtuális táblába.
Hogyan lehet nézeteket létrehozni a MySQL-ben?
Készítsünk egy ügyféltáblát a következő attribútumokkal:
Ügyfél-azonosító | Ügyfél neve | Elérhetőség | Purchased_amount | Város | |
184 | Ravi Kumar | 9887463893 | 8000.00 | Kolkata | |
987 | Vinay Das | 9839878678 | 12000.00 | Delhi | |
452 | K.Amarnath | 7598759387 | 15000.00 | Kolkata | |
874 | Abhinash Desai | 7675878798 | 5000.00 | Mumbai |
Készítünk egy cutomser_archive táblát a szükséges attribútummal.
1. lekérdezés
CREATE VIEW customer_archive AS
SELECT customer_id, customer_name, contact_no, city
FROM customer;
Kimenet:
Ügyfél-azonosító | Ügyfél neve | Elérhetőség | Város |
184 | Ravi Kumar | 9887463893 | Kolkata |
987 | Vinay Das | 9839878678 | Delhi |
452 | K.Amarnath | 7598759387 | Kolkata |
874 | Abhinash Desai | 7675878798 | Mumbai |
Ezt a lekérdezést is alkalmazhatjuk nézet létrehozásakor.
2. lekérdezés
CREATE VIEW customer_archive AS
SELECT customer_id, customer_name, contact_no, purchased_amont, city
FROM customer
WHERE purchased_amont > 10000;
Kimenet:
Ügyfél-azonosító | Ügyfél neve | Elérhetőség | Purchased_amount | Város |
987 | Vinay Das | 9839878678 | 12000.00 | Delhi |
452 | K.Amarnath | 7598759387 | 15000.00 | Kolkata |
Különböző nézetbeállítások a MySQL-ben
Az alábbiakban bemutatjuk a MySQL különböző nézetbeállításait részletesebben:
1. DROP: A nézet / virtuális tábla a DROP VIEW paranccsal törölhető. Ha törölni akarjuk a customer_archive táblát,
Szintaxis:
DROP VIEW customer_archive;
2. LÉTREHOZÁS VAGY KICSERÉLÉS: A CREATE OR REPLACE VIEW paranccsal frissíthetünk nézetet / virtuális táblát.
Szintaxis:
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ….
FROM table;
3. CSATLAKOZTATÁS: Néhány táblát több tábla összekapcsolásával is létrehozhatunk. Ez a csatlakozás mindkét táblából beolvassa a párosított rekordokat. Különböző típusú csatlakozások léteznek, amelyeket belső csatlakozásnak, bal csatlakozásnak, jobb oldali csatlakozásnak, teljes külső csatlakozásnak, keresztirányú csatlakozásnak stb.
Szintaxis:
CREATE VIEW view-name AS
SELECT column1, column2, column3, …
FROM table_name1 INNER JOIN table_name2
ON table_name1.column = table_name2.column;
A fenti egy belső csatlakozás példája. Hasonló módon más csatlakozásokat is alkalmazhatunk. A fenti példában a nézetet úgy hozzuk létre, hogy a tábla_név1 és a tábla_név2 egyaránt létező rekordokat egy közös mező alapján konszolidáljuk.
Példák a MySQL nézetekre
Nézzük meg a fenti példát:
Ügyfél-azonosító | Ügyfél neve | Elérhetőség | Purchased_amount | Város | |
184 | Ravi Kumar | 9887463893 | 8000.00 | Kolkata | |
987 | Vinay Das | 9839878678 | 12000.00 | Delhi | |
452 | K.Amarnath | 7598759387 | 15000.00 | Kolkata | |
874 | Abhinash Desai | 7675878798 | 5000.00 | Mumbai | |
987 | Aseem Kumar | 9697679867 | 18000.00 | Cuttack | |
989 | Sakti | 9847984788 | 60000.00 | Cuttack |
Ez az ügyféltáblázat-adatbázis.
Új nézetet készítünk róla, prémium ügyfélnek nevezzük. A prémium ügyfelek feltételei fennállnak, míg a vásárolt_összeg meghaladja a 10000-ot.
1. lekérdezés
CREATE VIEW premium_customer AS
SELECT customer_id, customer_name, contact_no, purchased_amont, city
FROM customer
WHERE purchased_amont > 10000;
Kimenet:
Ügyfél-azonosító | Ügyfél neve | Elérhetőség | Purchased_amount | Város |
987 | Vinay Das | 9839878678 | 12000.00 | Delhi |
452 | K.Amarnath | 7598759387 | 15000.00 | Kolkata |
987 | Aseem Kumar | 9697679867 | 18000.00 | Cuttack |
989 | Sakti | 9847984788 | 60000.00 | Cuttack |
Ha el akarjuk dobni ezt a premium_customer virtuális táblát, akkor az alábbiakban a szintaxis található.
DROP VIEW premium_customer;
Ha a fenti prémium táblázat módosítása szükséges bizonyos feltételek módosításával, akkor
2. lekérdezés
CREATE OR REPLACE VIEW premium_customer AS
SELECT customer_id, customer_name, contact_no, email, purchased_amont, city
FROM customer
WHERE purchased_amount > 6000;
Kimenet:
Ügyfél-azonosító | Ügyfél neve | Elérhetőség | Purchased_amount | Város | |
184 | Ravi Kumar | 9887463893 | 8000.00 | Kolkata | |
987 | Vinay Das | 9839878678 | 12000.00 | Delhi | |
452 | K.Amarnath | 7598759387 | 15000.00 | Kolkata | |
987 | Aseem Kumar | 9697679867 | 18000.00 | Cuttack | |
989 | Sakti | 9847984788 | 60000.00 | Cuttack |
A nézetek előnyei és hátrányai a MySQL-ben
Itt tárgyaljuk a MySQL nézeteinek előnyeit és hátrányait,
Előnyök
- Biztonság: Sok olyan tábla korlátozott, amelyektől sok felhasználó korlátozott, mivel a táblák egyes attribútumai nagyon érzékenyek lesznek. Tehát, ha képesek vagyunk nézeteket létrehozni bizonyos specifikus attribútumokkal az egyes felhasználók számára, akkor a felhasználók engedélyt kaphatnak arra, hogy bizonyos nézetkészleteket hozzáférjenek a hozzájuk felhatalmazott adatbázisba. Ez fenntarthatja az adatok biztonságát és integritását, valamint a felhasználók elvégezhetik feladataikat a megfelelő engedélyezett oszlopokkal.
- Lekérdezés egyszerűsége: Nézet létrehozható több tábla adatainak beolvasásával. Tehát az összes tábla összes halmozott rekordja egyetlen táblával ábrázolható a nézet lekérdezés felhasználásával.
- Szerkezeti egyszerűség: létrehozhatunk egy speciális vagy személyre szabott felhasználó-specifikus nézetet. Tehát reprezentálhatjuk az adatbázist a felhasználó számára értelmes virtuális táblázatok halmazaként.
- Konzisztencia: itt említjük a konzisztenciát, mivel ez a nézet egységes és változatlan képet ábrázolhat az adatbázis szerkezetéről, még akkor is, ha a főtáblához vagy a főtáblához valamilyen módon manipulálunk.
- Adatok integritása: ha az adatokhoz egy nézethez férnek hozzá, az adatbázis mindig ellenőrzi az adatokat annak biztosítása érdekében, hogy megfelel-e az integritási korlátozásoknak.
hátrányok
- Teljesítmény: A nézetek a virtuális táblák vagy a főtáblák képviselői. Amikor néhány lekérdezést futtatunk nézet létrehozásához, a DBMS lefordítja ezeket a lekérdezéseket a nézetek alapján az alapul szolgáló táblák lekérdezéseire. Tehát, ha a nézetkérdezés nagyon összetett, amely több forrást és bonyolult algoritmusokat tartalmaz, akkor az ilyen nézetekkel szembeni egyszerű művelet jelentős időt vesz igénybe.
- Frissítési korlátozások: Miközben nézeten sorokat módosít, a DBMS-nek a kérést frissítésre kell fordítania az alapul szolgáló forrástáblák sorain. A frissítés egyszerű lekérdezéssel is elvégezhető, de összetett lekérdezés esetén a DBMS nem engedélyezi a frissítést, mivel a nézetek gyakran csak írásvédettre vannak korlátozva.
Következtetés
A fent leírt dolgok áttekintése után egyértelműen megismerhetjük ennek a parancsnak a jelentőségét. Ez sok valós idejű forgatókönyv esetén hasznos. Ennek fő előnye, hogy sok összetett lekérdezést elvégezhetünk annak érdekében, hogy megismerjük az alapul szolgáló algoritmus hatékonyságát. Az adatbiztonság és integritás fenntartása a nézet parancs legfontosabb előnye.
Ajánlott cikkek
Ez a MySQL nézetek útmutatója. Itt tárgyaljuk, hogyan lehet nézeteket létrehozni a mysql-ben, és megértjük, hogyan működnek a különböző nézetopciók a MySQL-ben. A következő cikkeket is megnézheti további információkért -
- A MySQL legfontosabb 3 operátora
- Különböző MySQL lekérdezési parancsok
- A MySQL 6 legfontosabb helyettesítő karaktere
- Hogyan működik a MySQL séma?