Zobrazení v SQL jsou jakýmsi virtuálním stolem. Pohled má také řádky a sloupce jako tabulky, ale pohled neukládá data na disk jako tabulka. Zobrazení definuje přizpůsobený dotaz, který načítá data z jedné nebo více tabulek a představuje data, jako by pocházela z jednoho zdroje.
Pohled můžeme vytvořit výběrem polí z jedné nebo více tabulek přítomných v databázi. Zobrazení může mít buď všechny řádky tabulky, nebo konkrétní řádky na základě určitých podmínek.
V tomto článku se naučíme vytvářet, aktualizovat a mazat pohledy v SQL.
D emo SQL databáze
Tyto budeme používat dvě SQL tabulky například.
Podrobnosti o studentovi

StudentMarks

Tyto tabulky můžete ve svém systému vytvořit zadáním následujícího SQL dotazu:
MySQL -- Create StudentDetails table CREATE TABLE StudentDetails ( S_ID INT PRIMARY KEY, NAME VARCHAR(255), ADDRESS VARCHAR(255) ); INSERT INTO StudentDetails (S_ID, NAME, ADDRESS) VALUES (1, 'Harsh', 'Kolkata'), (2, 'Ashish', 'Durgapur'), (3, 'Pratik', 'Delhi'), (4, 'Dhanraj', 'Bihar'), (5, 'Ram', 'Rajasthan'); -- Create StudentMarks table CREATE TABLE StudentMarks ( ID INT PRIMARY KEY, NAME VARCHAR(255), Marks INT, Age INT ); INSERT INTO StudentMarks (ID, NAME, Marks, Age) VALUES (1, 'Harsh', 90, 19), (2, 'Suresh', 50, 20), (3, 'Pratik', 80, 19), (4, 'Dhanraj', 95, 21), (5, 'Ram', 85, 18);>
VYTVOŘTE POHLEDY v SQL
Můžeme vytvořit pohled pomocí VYTVOŘIT ZOBRAZENÍ prohlášení. Pohled lze vytvořit z jedné tabulky nebo z více tabulek.
Syntax
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parametry:
- název_zobrazení : Název pro zobrazení
- název_tabulky : Název tabulky
- stav : Podmínka výběru řádků
Příklady příkazů SQL CREATE VIEW
Podívejme se na některé příklady příkazu CREATE VIEW v SQL, abychom lépe porozuměli tomu, jak vytvářet pohledy v SQL.
Příklad 1: Vytvoření pohledu z jedné tabulky
V tomto příkladu vytvoříme pohled s názvem DetailsView z tabulky StudentDetails. Dotaz:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Chcete-li zobrazit data v pohledu, můžeme dotazovat pohled stejným způsobem, jako dotazujeme tabulku.
SELECT * FROM DetailsView;>
Výstup:

Příklad 2: Vytvoření pohledu z tabulky
V tomto příkladu vytvoříme pohled s názvem StudentNames z tabulky StudentDetails. Dotaz:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Pokud se nyní dotazujeme na pohled jako,
SELECT * FROM StudentNames; >
Výstup:

Příklad 3: Vytvoření pohledu z více tabulek
V tomto příkladu vytvoříme pohled s názvem MarksView ze dvou tabulek StudentDetails a StudentMarks. Chcete-li vytvořit pohled z více tabulek, můžeme jednoduše zahrnout více tabulek do příkazu SELECT. Dotaz:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME; >
Chcete-li zobrazit data View MarksView:
SELECT * FROM MarksView; >
Výstup:

VÝPIS VŠECH POHLEDŮ V DATABÁZI
Můžeme zobrazit seznam pomocí ZOBRAZIT CELÉ TABULKY prohlášení nebo pomocí tabulka information_schema . Pohled lze vytvořit z jedné tabulky nebo z více tabulek.
Syntax
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Použití information_schema
java int jako řetězec
SELECT table_name FROM information_schema.views WHERE table_schema = 'database_name'; OR SELECT table_schema, table_name, view_definition FROM information_schema.views WHERE table_schema = 'database_name';>
DELETE VIEWS v SQL
SQL nám umožňuje odstranit existující pohled. Můžeme smazat nebo vypustit View pomocí příkaz DROP .
Syntax
DROP VIEW view_name;>
Příklad
V tomto příkladu odstraňujeme pohled MarksView.
DROP VIEW MarksView;>
AKTUALIZOVAT ZOBRAZENÍ v SQL
Pokud chcete aktualizovat existující data v rámci zobrazení, použijte AKTUALIZACE prohlášení.
Syntax
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Poznámka: Ne všechny pohledy lze aktualizovat pomocí příkazu UPDATE.
Pokud chcete aktualizovat definici pohledu bez ovlivnění dat, použijte VYTVOŘIT NEBO NAHRADIT ZOBRAZENÍ prohlášení. můžete použít tuto syntaxi
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Pravidla pro aktualizaci pohledů v SQL:
Pro aktualizaci pohledu je třeba splnit určité podmínky. Pokud je některá z těchto podmínek ne splněno, pohled nelze aktualizovat.
- Příkaz SELECT, který se používá k vytvoření pohledu, by neměl obsahovat klauzuli GROUP BY nebo klauzuli ORDER BY.
- Příkaz SELECT by neměl mít klíčové slovo DISTINCT.
- Zobrazení by mělo mít všechny hodnoty NOT NULL.
- Pohled by neměl být vytvořen pomocí vnořených dotazů nebo složitých dotazů.
- Pohled by měl být vytvořen z jedné tabulky. Pokud je pohled vytvořen pomocí více tabulek, nebudeme moci pohled aktualizovat.
Příklady
Podívejme se na různé případy použití pro aktualizaci pohledu v SQL. Tyto případy použití pokryjeme příklady pro lepší pochopení.
Příklad 1: Aktualizujte zobrazení a přidejte nebo nahraďte pole zobrazení
Můžeme použít VYTVOŘIT NEBO NAHRADIT ZOBRAZENÍ příkaz k přidání nebo nahrazení polí z pohledu.
Pokud chceme aktualizovat pohled MarksView a přidejte pole AGE k tomuto pohledu z StudentMarks Tabulka, můžeme to udělat takto:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Pokud nyní načteme všechna data z MarksView jako:
SELECT * FROM MarksView;>
Výstup:

Příklad 2: Aktualizujte pohled na Vložení řádku do pohledu
Řádek do Pohledu můžeme vložit stejným způsobem jako do tabulky. Můžeme použít VLOŽ DO příkaz SQL pro vložení řádku do pohledu.
V níže uvedeném příkladu vložíme nový řádek do View DetailsView, který jsme vytvořili výše v příkladu vytváření pohledů z jedné tabulky.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Pokud nyní načteme všechna data z DetailsView jako,
SELECT * FROM DetailsView;>
Výstup:

Příklad 3: Odstranění řádku z pohledu
Odstranění řádků z pohledu je také stejně jednoduché jako odstranění řádků z tabulky. K odstranění řádků z pohledu můžeme použít příkaz DELETE jazyka SQL. Také odstranění řádku z pohledu nejprve odstraní řádek ze skutečné tabulky a změna se poté projeví v pohledu.
V tomto příkladu odstraníme poslední řádek z pohledu DetailsView, který jsme právě přidali ve výše uvedeném příkladu vkládání řádků.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Pokud nyní načteme všechna data z DetailsView jako,
SELECT * FROM DetailsView;>
Výstup:

S doložkou CHECK OPTION
The S MOŽNOSTÍ KONTROLY klauzule v SQL je velmi užitečná klauzule pro pohledy. Platí pro aktualizovatelný pohled.
Klauzule WITH CHECK OPTION se používá k zabránění úpravám dat (pomocí INSERT nebo UPDATE), pokud není splněna podmínka v klauzuli WHERE v příkazu CREATE VIEW.
Pokud jsme v příkazu CREATE VIEW použili klauzuli WITH CHECK OPTION a pokud klauzule UPDATE nebo INSERT nesplňuje podmínky, vrátí chybu.
Příklad ustanovení WITH CHECK OPTION:
V níže uvedeném příkladu vytváříme View SampleView z tabulky StudentDetails s klauzulí WITH CHECK OPTION.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
Pokud se v tomto zobrazení nyní pokusíme vložit nový řádek s hodnotou null do sloupce NAME, dojde k chybě, protože pohled je vytvořen s podmínkou pro sloupec NAME jako NOT NULL. Přestože je například zobrazení aktualizovatelné, není platný ani následující dotaz pro toto zobrazení:
třída vs objekt java
INSERT INTO SampleView(S_ID) VALUES (6);>
POZNÁMKA : Výchozí hodnota sloupce NAME je nula .
Použití pohledu
Dobrá databáze by měla obsahovat pohledy z uvedených důvodů:
- Omezení přístupu k datům - Pohledy poskytují další úroveň zabezpečení tabulky omezením přístupu k předem určené sadě řádků a sloupců tabulky.
- Skrytí složitosti dat – Pohled může skrýt složitost, která existuje ve více spojených tabulkách.
- Zjednodušte příkazy pro uživatele – Pohledy umožňují uživateli vybrat informace z více tabulek, aniž by uživatelé museli skutečně vědět, jak provést spojení.
- Ukládat složité dotazy – Pohledy lze použít k ukládání složitých dotazů.
- Přejmenovat sloupce – Pohledy lze také použít k přejmenování sloupců bez ovlivnění základních tabulek za předpokladu, že počet sloupců v pohledu musí odpovídat počtu sloupců zadaného v příkazu select. Přejmenování tedy pomáhá skrýt názvy sloupců základních tabulek.
- Možnost vícenásobného zobrazení – Na stejné tabulce mohou být vytvořeny různé pohledy pro různé uživatele.
Klíčové poznatky o SQL pohledech
- Pohledy v SQL jsou jakousi virtuální tabulkou.
- Pole v pohledu mohou být z jedné nebo více tabulek.
- Pohled můžeme vytvořit pomocí příkazu CREATE VIEW a pohled odstranit pomocí příkazu DROP VIEW.
- Pohled můžeme aktualizovat pomocí příkazu CREATE OR REPLACE VIEW.
- Klauzule WITH CHECK OPTION se používá k zabránění vkládání nových řádků, které nesplňují podmínku filtrování pohledu.