Vizualizări în SQL sunt un fel de masă virtuală. O vizualizare are, de asemenea, rânduri și coloane precum tabele, dar o vizualizare nu stochează date pe disc ca un tabel. View definește o interogare personalizată care preia date dintr-unul sau mai multe tabele și reprezintă datele ca și cum ar proveni dintr-o singură sursă.
Putem crea o vizualizare selectând câmpuri din unul sau mai multe tabele prezente în baza de date. O vizualizare poate avea fie toate rândurile unui tabel, fie anumite rânduri în funcție de anumite condiții.
În acest articol, vom afla despre crearea, actualizarea și ștergerea vizualizărilor în SQL.
D baza de date emo SQL
Le vom folosi pe acestea două tabele SQL de exemplu.
Detalii student

StudentMarks

Puteți crea aceste tabele pe sistemul dvs. scriind următoarea interogare 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);>
CREATE VIEWS în SQL
Putem crea o vizualizare folosind CREATE VIEW afirmație. O vizualizare poate fi creată dintr-un singur tabel sau mai multe tabele.
Sintaxă
CREATE VIEW view_name AS SELECT column1, column2..... FROM table_name WHERE condition;>
Parametri:
- view_name : Nume pentru vizualizare
- nume_tabel : Numele tabelului
- condiție : Condiție pentru selectarea rândurilor
Exemple de instrucțiuni SQL CREATE VIEW
Să ne uităm la câteva exemple de instrucțiune CREATE VIEW în SQL pentru a înțelege mai bine cum să creați vizualizări în SQL.
Exemplul 1: Crearea vizualizării dintr-un singur tabel
În acest exemplu, vom crea o vizualizare numită DetailsView din tabelul StudentDetails. Interogare:
CREATE VIEW DetailsView AS SELECT NAME, ADDRESS FROM StudentDetails WHERE S_ID <5;>
Pentru a vedea datele în vizualizare, putem interoga vizualizarea în același mod în care interogăm un tabel.
SELECT * FROM DetailsView;>
Ieșire:

Exemplul 2: Creați vizualizare din tabel
În acest exemplu, vom crea o vizualizare numită StudentNames din tabelul StudentDetails. Interogare:
CREATE VIEW StudentNames AS SELECT S_ID, NAME FROM StudentDetails ORDER BY NAME;>
Dacă interogăm acum vizualizarea ca,
SELECT * FROM StudentNames;>
Ieșire:

Exemplul 3: Crearea vizualizării din mai multe tabele
În acest exemplu, vom crea o vizualizare numită MarksView din două tabele StudentDetails și StudentMarks. Pentru a crea o vizualizare din mai multe tabele, putem include pur și simplu mai multe tabele în instrucțiunea SELECT. Interogare:
CREATE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Pentru a afișa datele din View MarksView:
SELECT * FROM MarksView;>
Ieșire:

LISTAREA TUTUROR viziunilor într-o BAZĂ DE DATE
Putem lista View folosind AFIȚI TABELE COMPLETE declarație sau folosind tabelul information_schema . O vizualizare poate fi creată dintr-un singur tabel sau mai multe tabele.
Sintaxă
USE 'database_name'; SHOW FULL TABLES WHERE table_type LIKE '%VIEW';>
Folosind information_schema
comanda în nodul js
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 în SQL
SQL ne permite să ștergem o vizualizare existentă. Putem șterge sau arunca View folosind Declarație DROP .
Sintaxă
DROP VIEW view_name;>
Exemplu
În acest exemplu, ștergem vizualizarea MarksView.
DROP VIEW MarksView;>
UPDATE VIEW în SQL
Dacă doriți să actualizați datele existente în vizualizare, utilizați ACTUALIZAȚI afirmație.
Sintaxă
UPDATE view_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];>
Notă: Nu toate vizualizările pot fi actualizate folosind instrucțiunea UPDATE.
pereche java
Dacă doriți să actualizați definiția vizualizării fără a afecta datele, utilizați CREAȚI SAU ÎNLOCUIȚI VIZUALIZARE afirmație. puteți folosi această sintaxă
CREATE OR REPLACE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;>
Reguli pentru actualizarea vizualizărilor în SQL:
Anumite condiții trebuie îndeplinite pentru a actualiza o vizualizare. Dacă oricare dintre aceste condiții este nu întâlnit, vizualizarea nu poate fi actualizată.
- Instrucțiunea SELECT care este utilizată pentru a crea vizualizarea nu trebuie să includă clauza GROUP BY sau clauza ORDER BY.
- Instrucțiunea SELECT nu trebuie să aibă cuvântul cheie DISTINCT.
- Vizualizarea ar trebui să aibă toate valorile NOT NULL.
- Vederea nu trebuie creată folosind interogări imbricate sau interogări complexe.
- Vederea trebuie creată dintr-un singur tabel. Dacă vizualizarea este creată folosind mai multe tabele, atunci nu ni se va permite să actualizăm vizualizarea.
Exemple
Să ne uităm la diferite cazuri de utilizare pentru actualizarea unei vizualizări în SQL. Vom acoperi aceste cazuri de utilizare cu exemple pentru a înțelege mai bine.
Exemplul 1: Actualizați vizualizarea pentru a adăuga sau înlocui un câmp de vizualizare
Putem folosi CREAȚI SAU ÎNLOCUIȚI VIZUALIZARE declarație pentru a adăuga sau înlocui câmpuri dintr-o vizualizare.
Dacă vrem să actualizăm vizualizarea MarksView și adăugați câmpul AGE la această vizualizare de la StudentMarks Tabel, putem face acest lucru prin:
CREATE OR REPLACE VIEW MarksView AS SELECT StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE FROM StudentDetails, StudentMarks WHERE StudentDetails.NAME = StudentMarks.NAME;>
Dacă preluăm toate datele de la MarksView acum ca:
SELECT * FROM MarksView;>
Ieșire:

Exemplul 2: Actualizați vizualizarea pentru a introduce un rând într-o vizualizare
Putem insera un rând într-o vizualizare în același mod ca și într-un tabel. Putem folosi INTRODU IN instrucțiunea SQL pentru a insera un rând într-o vizualizare.
În exemplul de mai jos, vom insera un nou rând în View DetailsView pe care l-am creat mai sus în exemplul de creare a vederilor dintr-un singur tabel.
INSERT INTO DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>Dacă preluăm toate datele din DetailsView acum ca,
SELECT * FROM DetailsView;>
Ieșire:

Exemplul 3: Ștergerea unui rând dintr-o vizualizare
Ștergerea rândurilor dintr-o vizualizare este, de asemenea, la fel de simplă ca și ștergerea rândurilor dintr-un tabel. Putem folosi instrucțiunea DELETE a SQL pentru a șterge rânduri dintr-o vizualizare. De asemenea, ștergerea unui rând dintr-o vizualizare șterge mai întâi rândul din tabelul real, iar modificarea este apoi reflectată în vizualizare.
În acest exemplu, vom șterge ultimul rând din vizualizarea DetailsView pe care tocmai l-am adăugat în exemplul de mai sus de inserare a rândurilor.
DELETE FROM DetailsView WHERE NAME='Suresh';>
Dacă preluăm toate datele din DetailsView acum ca,
SELECT * FROM DetailsView;>
Ieșire:

CU OPȚIUNE VERIFICARE Clauza
The CU OPȚIUNEA VERIFICARE clauza în SQL este o clauză foarte utilă pentru vizualizări. Se aplică unei vizualizări actualizabile.
Clauza WITH CHECK OPTION este folosită pentru a preveni modificarea datelor (folosind INSERT sau UPDATE) dacă condiția din clauza WHERE din instrucțiunea CREATE VIEW nu este îndeplinită.
Dacă am folosit clauza WITH CHECK OPTION în instrucțiunea CREATE VIEW și dacă clauza UPDATE sau INSERT nu îndeplinește condițiile atunci vor returna o eroare.
WITH CHECK OPTION Clauza Exemplu:
În exemplul de mai jos, creăm un View SampleView din tabelul StudentDetails cu o clauză WITH CHECK OPTION.
CREATE VIEW SampleView AS SELECT S_ID, NAME FROM StudentDetails WHERE NAME IS NOT NULL WITH CHECK OPTION ;>
În această vizualizare, dacă acum încercăm să inserăm un nou rând cu o valoare nulă în coloana NAME, atunci va da o eroare deoarece vizualizarea este creată cu condiția pentru coloana NAME ca NOT NULL. De exemplu, deși vizualizarea poate fi actualizată, interogarea de mai jos pentru această vizualizare nu este validă:
INSERT INTO SampleView(S_ID) VALUES (6);>
NOTĂ : valoarea implicită a coloanei NUME este nul .
Utilizări ale unei vizualizări
O bază de date bună ar trebui să conțină vizualizări din motivele date:
- Restricționarea accesului la date - Vizualizările oferă un nivel suplimentar de securitate a tabelului prin restricționarea accesului la un set predeterminat de rânduri și coloane ale unui tabel.
- Ascunderea complexității datelor - O vizualizare poate ascunde complexitatea care există în mai multe tabele unite.
- Simplificați comenzile pentru utilizator - Vizualizările permit utilizatorului să selecteze informații din mai multe tabele fără a le cere utilizatorilor să știe cum să efectueze o alăturare.
- Stocați interogări complexe - Vizualizările pot fi folosite pentru a stoca interogări complexe.
- Redenumiți coloanele – Vizualizările pot fi folosite și pentru a redenumi coloanele fără a afecta tabelele de bază, cu condiția ca numărul de coloane din vizualizare să se potrivească cu numărul de coloane specificat într-o instrucțiune select. Astfel, redenumirea ajută la ascunderea numelor coloanelor din tabelele de bază.
- Facilitate de vizualizare multiplă - Pe același tabel pot fi create vizualizări diferite pentru utilizatori diferiți.
Principalele concluzii despre vizualizările SQL
- Vizualizările în SQL sunt un fel de tabel virtual.
- Câmpurile dintr-o vizualizare pot fi dintr-unul sau mai multe tabele.
- Putem crea o vizualizare folosind instrucțiunea CREATE VIEW și putem șterge o vizualizare folosind instrucțiunea DROP VIEW.
- Putem actualiza o vizualizare folosind instrucțiunea CREATE OR REPLACE VIEW.
- Clauza WITH CHECK OPTION este folosită pentru a preveni inserarea de noi rânduri care nu îndeplinesc condiția de filtrare a vizualizării.