logo

Vizualizări SQL

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

Elevi de masă

StudentMarks

Tabelul de note ale elevilor

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:

creați exemple de vizualizare

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:

vizualizați ieșirea

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:

vizualizați ieșirea

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ă.

  1. Instrucțiunea SELECT care este utilizată pentru a crea vizualizarea nu trebuie să includă clauza GROUP BY sau clauza ORDER BY.
  2. Instrucțiunea SELECT nu trebuie să aibă cuvântul cheie DISTINCT.
  3. Vizualizarea ar trebui să aibă toate valorile NOT NULL.
  4. Vederea nu trebuie creată folosind interogări imbricate sau interogări complexe.
  5. 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:

crearea sau înlocuirea exemplului de vizualizare

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:

inserați rând în exemplul de vizualizare

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:

ștergeți rândul din exemplu de vizualizare

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:

  1. 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.
  2. Ascunderea complexității datelor - O vizualizare poate ascunde complexitatea care există în mai multe tabele unite.
  3. 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.
  4. Stocați interogări complexe - Vizualizările pot fi folosite pentru a stoca interogări complexe.
  5. 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ă.
  6. 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.