logo

Visualizzazioni SQL

Visualizzazioni in SQL sono una sorta di tavolo virtuale. Una vista ha anche righe e colonne come tabelle, ma una vista non memorizza i dati sul disco come una tabella. View definisce una query personalizzata che recupera i dati da una o più tabelle e rappresenta i dati come se provenissero da un'unica origine.

Possiamo creare una vista selezionando i campi da una o più tabelle presenti nel database. Una vista può avere tutte le righe di una tabella o righe specifiche in base a determinate condizioni.

In questo articolo impareremo come creare, aggiornare ed eliminare le visualizzazioni in SQL.



D database SQL emo

Useremo questi due tabelle SQL per esempio.

Dettagli studente

Tavolo Studente

StudentMarks

Tabella voti degli studenti

Puoi creare queste tabelle sul tuo sistema scrivendo la seguente query 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);>

CREA VISTE in SQL

Possiamo creare una vista utilizzando CREA VISTA dichiarazione. Una vista può essere creata da una singola tabella o da più tabelle.

Sintassi

  CREATE VIEW   view_name AS   SELECT   column1, column2.....   FROM   table_name   WHERE   condition;>

parametri:

  • nome_vista : nome della vista
  • nome_tabella : Nome della tabella
  • condizione : condizione per selezionare le righe

Esempi di istruzioni SQL CREATE VIEW

Diamo un'occhiata ad alcuni esempi di istruzione CREATE VIEW in SQL per comprendere meglio come creare viste in SQL.

Esempio 1: creazione della vista da una singola tabella

In questo esempio creeremo una vista denominata DetailsView dalla tabella StudentDetails. Domanda:

  CREATE VIEW   DetailsView   AS    SELECT   NAME, ADDRESS   FROM   StudentDetails   WHERE   S_ID <5;>

Per vedere i dati nella vista, possiamo interrogare la vista nello stesso modo in cui interroghiamo una tabella.

  SELECT   *   FROM   DetailsView;>

Produzione:

creare esempi di visualizzazioni

Esempio 2: Crea vista dalla tabella

In questo esempio creeremo una vista denominata StudentNames dalla tabella StudentDetails. Domanda:

  CREATE VIEW   StudentNames   AS    SELECT   S_ID, NAME   FROM   StudentDetails   ORDER BY   NAME;>

Se ora interroghiamo la vista come,

  SELECT   *   FROM   StudentNames;>

Produzione:

visualizzare l'output

Esempio 3: creazione di una vista da più tabelle

In questo esempio creeremo una vista denominata MarksView da due tabelle StudentDetails e StudentMarks. Per creare una vista da più tabelle possiamo semplicemente includere più tabelle nell'istruzione SELECT. Domanda:

  CREATE VIEW   MarksView AS   SELECT   StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS   FROM   StudentDetails, StudentMarks   WHERE   StudentDetails.NAME = StudentMarks.NAME;>

Per visualizzare i dati di View MarksView:

  SELECT   *   FROM   MarksView;>

Produzione:

visualizzare l'output

ELENCO DI TUTTE LE VISTE IN UN DATABASE

Possiamo elencare Visualizza utilizzando il file MOSTRA TABELLE COMPLETE dichiarazione o utilizzando il file tabella information_schema . Una vista può essere creata da una singola tabella o da più tabelle.

Sintassi

  USE   'database_name';   SHOW FULL   TABLES   WHERE   table_type LIKE '%VIEW';>

Utilizzando information_schema

jsp javatpoint
  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';>

ELIMINA VISUALIZZAZIONI in SQL

SQL ci consente di eliminare una vista esistente. Possiamo eliminare o rilasciare Visualizza utilizzando il file Dichiarazione DROP .

Sintassi

  DROP VIEW   view_name;>

Esempio

In questo esempio, stiamo eliminando View MarksView.

  DROP VIEW   MarksView;>

AGGIORNA VISTA in SQL

Se desideri aggiornare i dati esistenti nella vista, utilizza il file AGGIORNAMENTO dichiarazione.

Sintassi

  UPDATE   view_name   SET   column1 = value1, column2 = value2...., columnN = valueN   WHERE   [condition];>

Nota: Non tutte le viste possono essere aggiornate utilizzando l'istruzione UPDATE.

Se desideri aggiornare la definizione della vista senza influire sui dati, utilizza il file CREA O SOSTITUISCI VISTA dichiarazione. puoi usare questa sintassi

  CREATE OR REPLACE   VIEW view_name   AS    SELECT   column1, column2, ...   FROM   table_name   WHERE   condition;>

Regole per aggiornare le viste in SQL:

Per aggiornare una vista è necessario soddisfare alcune condizioni. Se una qualsiasi di queste condizioni è non soddisfatti, la vista non può essere aggiornata.

  1. L'istruzione SELECT utilizzata per creare la vista non deve includere la clausola GROUP BY o la clausola ORDER BY.
  2. L'istruzione SELECT non deve contenere la parola chiave DISTINCT.
  3. La vista dovrebbe avere tutti valori NOT NULL.
  4. La vista non deve essere creata utilizzando query nidificate o query complesse.
  5. La vista deve essere creata da una singola tabella. Se la vista viene creata utilizzando più tabelle, non ci sarà consentito aggiornare la vista.

Esempi

Diamo un'occhiata ai diversi casi d'uso per l'aggiornamento di una vista in SQL. Tratteremo questi casi d'uso con esempi per comprenderli meglio.

mappa iterativa Java

Esempio 1: Aggiorna vista per aggiungere o sostituire un campo vista

Possiamo usare il CREA O SOSTITUISCI VISTA istruzione per aggiungere o sostituire i campi da una vista.

Se vogliamo aggiornare la vista MarksView e aggiungi il campo AGE a questa vista da StudentMarks Tabella, possiamo farlo in questo modo:

  CREATE OR REPLACE VIEW   MarksView AS   SELECT   StudentDetails.NAME, StudentDetails.ADDRESS, StudentMarks.MARKS, StudentMarks.AGE   FROM   StudentDetails, StudentMarks   WHERE   StudentDetails.NAME = StudentMarks.NAME;>

Se recuperiamo tutti i dati da MarksView ora come:

  SELECT   *   FROM   MarksView;>

Produzione:

creare o sostituire l'esempio di visualizzazione

Esempio 2: Aggiorna vista per inserire una riga in una vista

Possiamo inserire una riga in una View nello stesso modo in cui lo facciamo in una tabella. Possiamo usare il INSERIRE istruzione SQL per inserire una riga in una vista.

Nell'esempio seguente, inseriremo una nuova riga nella View DetailsView che abbiamo creato sopra nell'esempio di creazione di viste da una singola tabella.

  INSERT INTO   DetailsView(NAME, ADDRESS) VALUES('Suresh','Gurgaon');>

Se recuperiamo tutti i dati da DetailsView ora come,

  SELECT   *   FROM   DetailsView;>

Produzione:

inserisci la riga nell'esempio di visualizzazione

Esempio 3: eliminazione di una riga da una vista

Anche eliminare righe da una vista è semplice come eliminare righe da una tabella. Possiamo usare l'istruzione DELETE di SQL per eliminare righe da una vista. Inoltre, l'eliminazione di una riga da una vista elimina prima la riga dalla tabella effettiva e la modifica si riflette quindi nella vista.

In questo esempio, elimineremo l'ultima riga dalla vista DetailsView che abbiamo appena aggiunto nell'esempio precedente di inserimento delle righe.

  DELETE FROM   DetailsView   WHERE   NAME='Suresh';>

Se recuperiamo tutti i dati da DetailsView ora come,

  SELECT   *   FROM   DetailsView;>

Produzione:

elimina la riga dall'esempio di visualizzazione

CON CHECK OPTION Clausola

IL CON OPZIONE DI VERIFICA La clausola in SQL è una clausola molto utile per le visualizzazioni. Si applica a una vista aggiornabile.

La clausola WITH CHECK OPTION viene utilizzata per impedire la modifica dei dati (utilizzando INSERT o UPDATE) se la condizione nella clausola WHERE nell'istruzione CREATE VIEW non è soddisfatta.

Se abbiamo utilizzato la clausola WITH CHECK OPTION nell'istruzione CREATE VIEW e se la clausola UPDATE o INSERT non soddisfa le condizioni, restituiranno un errore.

WITH CHECK OPTION Esempio di clausola:

Nell'esempio seguente, stiamo creando una View SampleView dalla tabella StudentDetails con una clausola WITH CHECK OPTION.

  CREATE VIEW   SampleView AS   SELECT   S_ID, NAME   FROM   StudentDetails   WHERE   NAME IS NOT NULL   WITH CHECK OPTION  ;>

In questa vista, se ora proviamo a inserire una nuova riga con un valore nullo nella colonna NOME, verrà generato un errore perché la vista viene creata con la condizione per la colonna NOME come NOT NULL. Ad esempio, sebbene la vista sia aggiornabile, anche la query seguente per questa vista non è valida:

  INSERT INTO   SampleView(S_ID)   VALUES  (6);>

NOTA : il valore predefinito della colonna NOME è nullo .

Usi di una vista

Un buon database dovrebbe contenere viste per i motivi indicati:

  1. Limitazione dell'accesso ai dati – Le visualizzazioni forniscono un ulteriore livello di sicurezza della tabella limitando l'accesso a un set predeterminato di righe e colonne di una tabella.
  2. Nascondere la complessità dei dati – Una vista può nascondere la complessità esistente in più tabelle unite.
  3. Semplifica i comandi per l'utente – Le visualizzazioni consentono all'utente di selezionare informazioni da più tabelle senza richiedere agli utenti di sapere effettivamente come eseguire un'unione.
  4. Memorizza query complesse – Le visualizzazioni possono essere utilizzate per archiviare query complesse.
  5. Rinomina colonne – Le viste possono anche essere utilizzate per rinominare le colonne senza influenzare le tabelle di base, a condizione che il numero di colonne visualizzate corrisponda al numero di colonne specificato in un'istruzione select. Pertanto, la ridenominazione aiuta a nascondere i nomi delle colonne delle tabelle di base.
  6. Funzione di visualizzazione multipla – È possibile creare viste diverse sulla stessa tabella per utenti diversi.

Punti chiave sulle visualizzazioni SQL

  • Le viste in SQL sono una sorta di tabella virtuale.
  • I campi in una vista possono provenire da una o più tabelle.
  • Possiamo creare una vista utilizzando l'istruzione CREATE VIEW ed eliminare una vista utilizzando l'istruzione DROP VIEW.
  • Possiamo aggiornare una vista utilizzando l'istruzione CREATE OR REPLACE VIEW.
  • La clausola WITH CHECK OPTION viene utilizzata per impedire l'inserimento di nuove righe che non soddisfano la condizione di filtro della vista.