Zobrazenia v SQL sú akýmsi virtuálnym stolom. Zobrazenie má tiež riadky a stĺpce ako tabuľky, ale zobrazenie neukladá údaje na disk ako tabuľka. Zobrazenie definuje prispôsobený dotaz, ktorý získava údaje z jednej alebo viacerých tabuliek a predstavuje údaje, ako keby pochádzali z jedného zdroja.
Pohľad môžeme vytvoriť výberom polí z jednej alebo viacerých tabuliek prítomných v databáze. Zobrazenie môže mať buď všetky riadky tabuľky alebo špecifické riadky na základe určitých podmienok.
V tomto článku sa dozvieme o vytváraní, aktualizácii a odstraňovaní zobrazení v SQL.
D emo SQL databáza
Tieto budeme používať dve SQL tabuľky pre príklady.
Podrobnosti o študentovi

ŠtudentMarks

Tieto tabuľky môžete vo svojom systéme vytvoriť napísaním nasledujúceho dotazu SQL:
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);>
VYTVORTE ZOBRAZENIA v SQL
Pohľad môžeme vytvoriť pomocou VYTVORIŤ ZOBRAZENIE vyhlásenie. Pohľad možno vytvoriť z jednej tabuľky alebo viacerých tabuliek.
Syntax
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parametre:
- view_name : Názov zobrazenia
- názov_tabuľky : Názov tabuľky
- stave : Podmienka výberu riadkov
Príklady príkazov SQL CREATE VIEW
Pozrime sa na niekoľko príkladov príkazu CREATE VIEW v SQL, aby sme lepšie pochopili, ako vytvárať zobrazenia v SQL.
Príklad 1: Vytvorenie zobrazenia z jednej tabuľky
V tomto príklade vytvoríme pohľad s názvom DetailsView z tabuľky StudentDetails. Dopyt:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Ak chcete zobraziť údaje v zobrazení, môžeme dopytovať zobrazenie rovnakým spôsobom, ako dopytujeme tabuľku.
SELECT * FROM DetailsView;>
Výkon:

Príklad 2: Vytvorenie pohľadu z tabuľky
V tomto príklade vytvoríme pohľad s názvom StudentNames z tabuľky StudentDetails. Dopyt:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Ak sa teraz pýtame na pohľad ako,
SELECT * FROM StudentNames;>
Výkon:

Príklad 3: Vytvorenie zobrazenia z viacerých tabuliek
V tomto príklade vytvoríme pohľad s názvom MarksView z dvoch tabuliek StudentDetails a StudentMarks. Na vytvorenie zobrazenia z viacerých tabuliek môžeme jednoducho zahrnúť viacero tabuliek do príkazu SELECT. Dopyt:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Ak chcete zobraziť údaje View MarksView:
SELECT * FROM MarksView;>
Výkon:

ZOZNAM VŠETKÝCH ZOBRAZENÍ V DATABÁZE
Môžeme zobraziť zoznam pomocou ZOBRAZIŤ CELÉ TABUĽKY vyhlásenie alebo pomocou tabuľka information_schema . Pohľad možno vytvoriť z jednej tabuľky alebo viacerých tabuliek.
Syntax
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Pomocou information_schema
konverzia nfa na dfa
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 in SQL
SQL nám umožňuje odstrániť existujúci pohľad. Zobrazenie môžeme vymazať alebo zrušiť pomocou príkaz DROP .
Syntax
DROP VIEW view_name;>
Príklad
V tomto príklade odstraňujeme zobrazenie MarksView.
DROP VIEW MarksView;>
AKTUALIZOVAŤ ZOBRAZENIE v SQL
Ak chcete aktualizovať existujúce údaje v zobrazení, použite AKTUALIZOVAŤ vyhlásenie.
Syntax
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Poznámka: Nie všetky zobrazenia je možné aktualizovať pomocou príkazu UPDATE.
Ak chcete aktualizovať definíciu zobrazenia bez ovplyvnenia údajov, použite VYTVORIŤ ALEBO NAHRADIŤ ZOBRAZENIE vyhlásenie. môžete použiť túto syntax
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Pravidlá na aktualizáciu zobrazení v SQL:
Na aktualizáciu zobrazenia je potrebné splniť určité podmienky. Ak je niektorá z týchto podmienok nie splnené, pohľad sa nedá aktualizovať.
- Príkaz SELECT, ktorý sa používa na vytvorenie zobrazenia, by nemal obsahovať klauzulu GROUP BY alebo klauzulu ORDER BY.
- Príkaz SELECT by nemal obsahovať kľúčové slovo DISTINCT.
- Zobrazenie by malo mať všetky hodnoty NOT NULL.
- Zobrazenie by sa nemalo vytvárať pomocou vnorených dopytov alebo zložitých dopytov.
- Pohľad by mal byť vytvorený z jednej tabuľky. Ak je zobrazenie vytvorené pomocou viacerých tabuliek, nebudeme môcť zobrazenie aktualizovať.
Príklady
Pozrime sa na rôzne prípady použitia na aktualizáciu zobrazenia v SQL. Pre lepšie pochopenie tieto prípady použitia pokryjeme príkladmi.
Príklad 1: Aktualizujte zobrazenie na pridanie alebo nahradenie poľa zobrazenia
Môžeme použiť VYTVORIŤ ALEBO NAHRADIŤ ZOBRAZENIE príkaz na pridanie alebo nahradenie polí zo zobrazenia.
Ak chceme aktualizovať pohľad MarksView a pridajte pole AGE k tomuto pohľadu z ŠtudentMarks Tabuľka, môžeme to urobiť takto:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Ak teraz načítame všetky údaje z MarksView ako:
SELECT * FROM MarksView;>
Výkon:

Príklad 2: Aktualizujte zobrazenie na vloženie riadka do zobrazenia
Do zobrazenia môžeme vložiť riadok rovnakým spôsobom ako do tabuľky. Môžeme použiť VLOŽIŤ DO príkaz SQL na vloženie riadku do zobrazenia.
V nižšie uvedenom príklade vložíme nový riadok do View DetailsView, ktorý sme vytvorili vyššie v príklade vytvárania pohľadov z jednej tabuľky.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Ak teraz načítame všetky údaje z DetailsView,
SELECT * FROM DetailsView;>
Výkon:

Príklad 3: Odstránenie riadku zo zobrazenia
Odstránenie riadkov zo zobrazenia je tiež také jednoduché ako odstránenie riadkov z tabuľky. Na odstránenie riadkov zo zobrazenia môžeme použiť príkaz DELETE jazyka SQL. Odstránením riadka zo zobrazenia sa tiež najprv odstráni riadok zo skutočnej tabuľky a zmena sa potom prejaví v zobrazení.
V tomto príklade vymažeme posledný riadok zo zobrazenia DetailsView, ktorý sme práve pridali vo vyššie uvedenom príklade vkladania riadkov.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Ak teraz načítame všetky údaje z DetailsView,
SELECT * FROM DetailsView;>
Výkon:
entitný vzťahový

S doložkou CHECK OPTION
The S MOŽNOSŤOU KONTROLY klauzula v SQL je veľmi užitočná klauzula pre pohľady. Vzťahuje sa na aktualizované zobrazenie.
Klauzula WITH CHECK OPTION sa používa na zabránenie modifikácii údajov (pomocou INSERT alebo UPDATE), ak nie je splnená podmienka v klauzule WHERE v príkaze CREATE VIEW.
Ak sme v príkaze CREATE VIEW použili klauzulu WITH CHECK OPTION a ak klauzula UPDATE alebo INSERT nespĺňa podmienky, vrátia chybu.
Príklad doložky WITH CHECK OPTION:
V nižšie uvedenom príklade vytvárame View SampleView z tabuľky StudentDetails s klauzulou WITH CHECK OPTION.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
Ak sa v tomto zobrazení teraz pokúsime vložiť nový riadok s hodnotou null do stĺpca NAME, zobrazí sa chyba, pretože zobrazenie je vytvorené s podmienkou pre stĺpec NAME ako NOT NULL. Napríklad, aj keď je zobrazenie aktualizovať, nie je platný ani nasledujúci dotaz pre toto zobrazenie:
INSERT INTO SampleView(S_ID) VALUES (6);>
POZNÁMKA : Predvolená hodnota stĺpca NAME je nulový .
Použitie zobrazenia
Dobrá databáza by mala obsahovať pohľady z uvedených dôvodov:
- Obmedzenie prístupu k údajom – Zobrazenia poskytujú ďalšiu úroveň zabezpečenia tabuľky obmedzením prístupu k vopred určenej množine riadkov a stĺpcov tabuľky.
- Skrytie zložitosti údajov – Pohľad môže skryť zložitosť, ktorá existuje vo viacerých spojených tabuľkách.
- Zjednodušte príkazy pre používateľa – Zobrazenia umožňujú používateľovi vybrať informácie z viacerých tabuliek bez toho, aby museli používatelia skutočne vedieť, ako vykonať spojenie.
- Ukladať zložité otázky – Zobrazenia možno použiť na ukladanie zložitých dopytov.
- Premenovať stĺpce – Zobrazenia možno použiť aj na premenovanie stĺpcov bez ovplyvnenia základných tabuliek za predpokladu, že počet stĺpcov v zobrazení sa musí zhodovať s počtom stĺpcov zadaným v príkaze select. Premenovanie teda pomáha skryť názvy stĺpcov základných tabuliek.
- Možnosť viacnásobného zobrazenia – Na tej istej tabuľke môžu byť vytvorené rôzne zobrazenia pre rôznych používateľov.
Kľúčové poznatky o SQL zobrazeniach
- Zobrazenia v SQL sú akousi virtuálnou tabuľkou.
- Polia v zobrazení môžu byť z jednej alebo viacerých tabuliek.
- Pohľad môžeme vytvoriť pomocou príkazu CREATE VIEW a pohľad odstrániť pomocou príkazu DROP VIEW.
- Pohľad môžeme aktualizovať pomocou príkazu CREATE OR REPLACE VIEW.
- Klauzula WITH CHECK OPTION sa používa na zabránenie vkladania nových riadkov, ktoré nespĺňajú podmienku filtrovania zobrazenia.