Úvod do pohledů v MySQL
Zobrazení SQL není nic jiného než virtuální tabulka databáze. Pohled obsahuje pole jako skutečná tabulka, ale tato pole pocházejí z jedné nebo více tabulek v databázi, která je spuštěna spousty MySQL dotazů. Ve virtuálních tabulkách můžeme provádět operace jako klauzule WHERE a JOIN. Na druhou stranu VIEW není nic jiného než VYBRAT dotazy.
Syntax:
CREATE VIEW view_name AS
SELECT column1, column2, …
FROM table;
- “CREATE VIEW view_name” přikazuje MySQL vytvořit pohled / virtuální tabulku s názvem view_name.
- Příkaz „AS SELECT column1, column2 FROM table“ načte sloupce1 a sloupec2 ze skutečné tabulky. Poté tato pole uloží do virtuální tabulky.
Jak vytvořit pohledy v MySQL?
Vytvořme jednu tabulku zákazníků s následujícími atributy:
Zákaznické identifikační číslo | Jméno zákazníka | Kontaktní číslo | E-mailem | Zakoupená částka | Město |
184 | Ravi Kumar | 9887463893 | 8000, 00 | Kalkata | |
987 | Vinay Das | 9839878678 | 12000, 00 | Dillí | |
452 | K.Amarnath | 7598759387 | 15 000, 00 | Kalkata | |
874 | Abhinash Desai | 7675878798 | 5000, 00 | Bombaj |
Vytvoříme jednu tabulku cutomser_archive s naším požadovaným atributem.
Dotaz č. 1
CREATE VIEW customer_archive AS
SELECT customer_id, customer_name, contact_no, city
FROM customer;
Výstup:
Zákaznické identifikační číslo | Jméno zákazníka | Kontaktní číslo | Město |
184 | Ravi Kumar | 9887463893 | Kalkata |
987 | Vinay Das | 9839878678 | Dillí |
452 | K.Amarnath | 7598759387 | Kalkata |
874 | Abhinash Desai | 7675878798 | Bombaj |
Při vytváření pohledu můžeme podmínku použít také na tento dotaz.
Dotaz č. 2
CREATE VIEW customer_archive AS
SELECT customer_id, customer_name, contact_no, purchased_amont, city
FROM customer
WHERE purchased_amont > 10000;
Výstup:
Zákaznické identifikační číslo | Jméno zákazníka | Kontaktní číslo | Zakoupená částka | Město |
987 | Vinay Das | 9839878678 | 12000, 00 | Dillí |
452 | K.Amarnath | 7598759387 | 15 000, 00 | Kalkata |
Různé možnosti zobrazení v MySQL
Následuje podrobnější vysvětlení různých možností zobrazení v MySQL,
1. DROP: Pohled / virtuální tabulka lze vymazat pomocí příkazu DROP VIEW. Pokud chceme smazat tabulku customer_archive,
Syntax:
DROP VIEW customer_archive;
2. VYTVOŘIT NEBO VYMĚNIT: Příkazem VYTVOŘIT NEBO VYMĚNIT VIEW můžeme aktualizovat zobrazení / virtuální tabulku.
Syntax:
CREATE OR REPLACE VIEW view_name AS
SELECT column1, column2, ….
FROM table;
3. JOIN: Můžeme také vytvořit pohled spojením více tabulek. Toto spojení načte shodné záznamy z obou tabulek. Existují různé druhy spojení pojmenovaných jako vnitřní spoj, levý spoj, pravý spoj, plný vnější spoj, křížový spoj atd.
Syntax:
CREATE VIEW view-name AS
SELECT column1, column2, column3, …
FROM table_name1 INNER JOIN table_name2
ON table_name1.column = table_name2.column;
Nahoře je příklad vnitřního spojení. Stejným způsobem můžeme použít i další spojení. Ve výše uvedeném příkladu bude pohled vytvořen sloučením záznamů, které jsou přítomny v tabulce název_tabulky1 a název_tabulky2 na základě společného pole.
Příklady pohledů v MySQL
Uvažujme výše uvedený příklad:
Zákaznické identifikační číslo | Jméno zákazníka | Kontaktní číslo | E-mailem | Zakoupená částka | Město |
184 | Ravi Kumar | 9887463893 | 8000, 00 | Kalkata | |
987 | Vinay Das | 9839878678 | 12000, 00 | Dillí | |
452 | K.Amarnath | 7598759387 | 15 000, 00 | Kalkata | |
874 | Abhinash Desai | 7675878798 | 5000, 00 | Bombaj | |
987 | Aseem Kumar | 9697679867 | 18 000, 00 | Cuttack | |
989 | Sakti | 9847984788 | 60000, 00 | Cuttack |
Toto je databáze tabulek zákazníků.
Vytvoříme další pohled, pojmenujeme jej jako premium_customer. Podmínky pro prémiové zákazníky budou při nákupu_ částka vyšší než 10 000.
Dotaz č. 1
CREATE VIEW premium_customer AS
SELECT customer_id, customer_name, contact_no, purchased_amont, city
FROM customer
WHERE purchased_amont > 10000;
Výstup:
Zákaznické identifikační číslo | Jméno zákazníka | Kontaktní číslo | Zakoupená částka | Město |
987 | Vinay Das | 9839878678 | 12000, 00 | Dillí |
452 | K.Amarnath | 7598759387 | 15 000, 00 | Kalkata |
987 | Aseem Kumar | 9697679867 | 18 000, 00 | Cuttack |
989 | Sakti | 9847984788 | 60000, 00 | Cuttack |
Pokud chceme zrušit tuto virtuální tabulku premium_customer, pak níže je syntaxe.
DROP VIEW premium_customer;
Pokud je pro tuto výše uvedenou prémiovou tabulku nutná nějaká úprava změnou některých podmínek, pak
Dotaz č. 2
CREATE OR REPLACE VIEW premium_customer AS
SELECT customer_id, customer_name, contact_no, email, purchased_amont, city
FROM customer
WHERE purchased_amount > 6000;
Výstup:
Zákaznické identifikační číslo | Jméno zákazníka | Kontaktní číslo | E-mailem | Zakoupená částka | Město |
184 | Ravi Kumar | 9887463893 | 8000, 00 | Kalkata | |
987 | Vinay Das | 9839878678 | 12000, 00 | Dillí | |
452 | K.Amarnath | 7598759387 | 15 000, 00 | Kalkata | |
987 | Aseem Kumar | 9697679867 | 18 000, 00 | Cuttack | |
989 | Sakti | 9847984788 | 60000, 00 | Cuttack |
Výhody a nevýhody pohledu v MySQL
Zde diskutujeme výhody a nevýhody pohledů v MySQL,
Výhody
- Zabezpečení: Existuje mnoho tabulek, které jsou omezeny od mnoha uživatelů, protože některé atributy v těchto tabulkách budou velmi citlivé. Pokud tedy můžeme vytvořit pohledy s určitými specifickými atributy pro příslušné uživatele, pak může být uživatelům uděleno oprávnění k přístupu k některé sadě pohledů do databáze, která je k nim zmocněna. To může udržovat bezpečnost a integritu dat a uživatelé mohou provádět své úkoly s příslušnými autorizovanými sloupci.
- Jednoduchost dotazu: Pohled lze vytvořit načtením dat z několika tabulek. Takže všechny kumulativní záznamy ze všech tabulek mohou být reprezentovány jednou tabulkou pomocí dotazu pohledu.
- Strukturální jednoduchost: můžeme vytvořit specializovaný nebo přizpůsobený uživatelský pohled. Můžeme tedy reprezentovat databázi jako sadu virtuálních tabulek, které dávají uživateli smysl.
- Konzistence: zde zmiňujeme konzistenci, protože toto zobrazení může představovat konzistentní a nezměněný obraz struktury databáze, i když provádíme nějakou manipulaci s hlavní tabulkou nebo hlavní tabulkou.
- Integrita dat: pokud jsou data přístupná do pohledu, databáze vždy zkontroluje data, aby zajistila, zda splňuje omezení integrity nebo ne.
Nevýhody
- Výkon: Pohledy jsou virtuální tabulka nebo zástupce hlavních tabulek. Když spustíme některé dotazy k vytvoření pohledu, DBMS převede tyto dotazy proti pohledům do dotazů v podkladových tabulkách. Takže pokud je dotaz pohledu velmi složitý, který obsahuje více zdrojů a obtížné algoritmy, pak jednoduchá akce proti těmto pohledům zabere značný čas.
- Omezení aktualizace: Při změně řádků v pohledu musí DBMS převést požadavek do aktualizace v řádcích podkladové zdrojové tabulky. Aktualizace může být provedena jednoduchým dotazem, ale v případě složitého dotazu DBMS neumožňuje aktualizaci, protože pohledy jsou často omezeny pouze na čtení.
Závěr
Po procházení výše popsanými věcmi můžeme jasně poznat význam tohoto příkazu. To se hodí v mnoha scénářích v reálném čase. Hlavní výhodou je, že můžeme provádět mnoho složitých dotazů, abychom věděli, jak efektivní je náš základní algoritmus. Klíčovou výhodou příkazu view je zachování bezpečnosti a integrity dat.
Doporučené články
Toto je průvodce pohledy v MySQL. Zde diskutujeme o tom, jak vytvořit pohledy v mysql, a pochopit, jak různé pohledy fungují v MySQL. Další informace naleznete také v následujících článcích
- Top 3 MySQL operátoři
- Různé příkazy MySQL Query
- Top 6 zástupných znaků v MySQL
- Jak funguje MySQL Schema?