Creazione di VIEW SQL: spiegazione dettagliata

Utilizziamo SQL o Structured Query Language per comunicare con un database relazionale e creare viste SQL.

Ora, cosa sono le viste SQL? Sono tabelle virtuali che combinano e memorizzano i dati dalle tabelle di database effettive che crei. A sua volta, ottieni un accesso sicuro e semplificato al tuo set di dati nascondendo le strutture e le implementazioni delle tabelle sottostanti.

Quindi, come funziona? Sai già che le query SQL vengono utilizzate per creare viste SQL. Quando viene creata la vista SQL, viene archiviata la query SQL sottostante. Quando si utilizza una query SQL per cercare dati da più tabelle, la query viene eseguita e aiuta a recuperare i dati dalle tabelle di database corrispondenti. Allo stesso modo, quando si esegue una query su una vista SQL creata, la query archiviata viene prima recuperata e quindi eseguita.

In che modo è utile la creazione di viste SQL?

Poiché le viste SQL sono supportate da query SQL memorizzate, aiutano a rendere sicuro il tuo database. Inoltre, semplificano le query complesse e aumentano le prestazioni delle query, tra gli altri vantaggi. Vediamo come la creazione di viste SQL può essere vantaggiosa per il tuo database e le tue applicazioni:

#1. Fornisce la sicurezza del database

Le viste SQL fungono da tabelle virtuali e nascondono le strutture delle tabelle del database effettive. Quindi, solo guardando una vista, non è possibile sapere quante tabelle ci sono e quali sono le diverse colonne nella tabella. Inoltre, puoi aggiungere restrizioni di controllo dell’accesso al tuo database in modo che un utente possa interrogare solo la vista e non le tabelle effettive.

#2. Semplifica le query complesse

Spesso le query SQL si estendono su più tabelle con condizioni di join complesse. Se utilizzi frequentemente query così complesse, puoi sfruttare la potenza della creazione di viste SQL. Puoi memorizzare la tua query complessa nella tua vista SQL. Con questo, puoi semplicemente interrogare la vista piuttosto che dover eseguire l’intera query complessa.

#3. Mitiga contro la modifica dello schema

Se le strutture delle tabelle sottostanti vengono modificate, ad esempio l’aggiunta o la rimozione di colonne, le visualizzazioni rimangono invariate. Se fai affidamento sulle tue viste SQL per tutte le tue query, non devi preoccuparti della modifica dello schema. Essendo tabelle virtuali, la tua vista SQL creata continuerà a funzionare senza problemi.

#4. Migliora le prestazioni delle query

Quando crei viste SQL, il motore di database ottimizza la query sottostante prima di memorizzarle. Una query archiviata viene eseguita più velocemente rispetto all’esecuzione diretta della stessa query. Pertanto, l’utilizzo delle viste SQL per eseguire query sui dati offre prestazioni migliori e risultati più rapidi.

Come creare viste SQL?

Per creare viste SQL, puoi utilizzare il comando CREATE VIEW. Una vista contiene un’istruzione SELECT. Questo fornisce la query che verrà archiviata nella vista. La sintassi è la seguente:

CREATE VIEW view_name AS 
SELECT 
  column_1, 
  column_2, 
  column_3...
FROM 
  table_name_1, table_name_2
WHERE 
  condition_clause

Comprendiamo questo usando un esempio. Considera che hai creato due tabelle dipartimento e dipendente. Il dipartimento contiene il nome del dipartimento e il relativo ID. Di conseguenza, la tabella dei dipendenti contiene il nome e l’ID del dipendente, insieme all’ID del dipartimento di appartenenza. Utilizzerai queste due tabelle per creare la tua vista SQL.

Crea le tue tabelle di database

department_iddepartment_name1Finanza2Tecnologia3BusinessTabella 1: dipartimento

Se stai usando MySQLpuoi creare questa tabella utilizzando la seguente query:

CREATE TABLE `department` (
  `department_id` int,
  `department_name` varchar(255),
  PRIMARY KEY (`department_id`)
);

Inserisci i dati nella tabella che hai creato utilizzando il seguente SQL:

INSERT INTO department VALUES (1, 'Finance');
INSERT INTO department VALUES (2, 'Technology');
INSERT INTO department VALUES (3, 'Business');

employee_idemployee_namedepartment_id100John3101Mary1102Natalya3103Bruce2Tabella 2: dipendente

Con la tabella del dipartimento pronta e popolata di dati, crea la tabella dei dipendenti utilizzando la seguente query MySQL:

CREATE TABLE `employee` (
  `employee_id` INT, 
  `employee_name` VARCHAR(255), 
  `department_id` INT, 
  FOREIGN KEY (`department_id`) REFERENCES department(department_id)
);

Successivamente, inserisci i record dei dipendenti nella tua tabella. Tieni presente che poiché la colonna department_id ha un riferimento di chiave esterna con la tabella department, non puoi inserire un department_id che non è presente nell’altra tabella.

INSERT INTO employee VALUES (100, 'John', 3);
INSERT INTO employee VALUES (101, 'Mary', 1);
INSERT INTO employee VALUES (102, 'Natalya', 3);
INSERT INTO employee VALUES (103, 'Bruce', 1);

Interroga le tabelle del tuo database

Usiamo le tabelle in una query di database. Considera il caso in cui devi eseguire una query per employee_id, employee_name e department_name per tutti i dipendenti. In questo caso, devi utilizzare entrambe le tabelle e unirle utilizzando la colonna comune, che è department_id. La tua query diventa così:

SELECT
  employee_id,
  employee_name,
  department_name
FROM 
  employee,
  department
WHERE 
  employee.department_id = department.department_id;

Crea la tua vista SQL

Ora, può succedere che tu stia spesso cercando o facendo riferimento a questi dati. Oltre a questo, nel tempo, con più record nelle tabelle, il tempo di query inizierebbe ad aumentare. In uno scenario di questo tipo, puoi creare la vista SQL corrispondente a questa query.

Utilizza la seguente query per creare una vista denominata employee_info:

CREATE VIEW employee_info AS 
SELECT
  employee_id,
  employee_name, 
  department_name 
FROM 
  employee, 
  department 
WHERE 
  employee.department_id = department.department_id;

Con questa vista in atto, puoi interrogare direttamente lo stesso. La tua query è quindi semplificata in:

SELECT 
  * 
FROM 
  employee_info;

L’esecuzione di query nella vista SQL fornisce lo stesso output dell’esecuzione della query originale. Tuttavia, la tua query è ora facile da gestire. La vista nasconde le complessità della tua query senza alcun compromesso sul risultato o sulle prestazioni.

Come sostituire le viste SQL?

Se si dispone di una vista con un nome particolare e si desidera modificarla o sostituirla, utilizzare il comando CREATE OR REPLACE VIEW. Usando questo, puoi modificare l’istruzione SELECT che è stata usata per creare la vista. Pertanto, l’output della visualizzazione viene sostituito mantenendo intatto il nome della visualizzazione. Inoltre, si crea una nuova vista SQL se non esiste.

È possibile sostituire le viste SQL utilizzando la seguente sintassi:

CREATE OR REPLACE VIEW view_name AS 
SELECT 
  new_column_1, 
  new_column_2, 
  new_column_3 ...
FROM 
  new_table_name_1, 
  new_table_name_2 ...
WHERE 
  new_condition_clause

Puoi capirlo meglio con un esempio. Considera le tabelle del dipartimento e dei dipendenti. Da esse viene creata una vista SQL employee_info, che contiene le colonne employee_id, employee_name e department_name.

Considerando i problemi di sicurezza, potresti voler rimuovere l’impiegato_id da questa vista. Inoltre, vorresti anche cambiare i nomi delle colonne per nascondere le effettive colonne del database. Puoi apportare queste modifiche alla vista esistente utilizzando la seguente query SQL:

CREATE OR REPLACE VIEW employee_info AS
SELECT
  employee_name as name,
  department_name as department
FROM
  employee,
  department
WHERE
  employee.department_id = department.department_id;

Una volta che la vista è stata sostituita, otterrai risultati diversi quando utilizzi la stessa query che stavi utilizzando in precedenza. Ad esempio, nel risultato della query troverai che una delle colonne è stata eliminata. Inoltre, i nomi delle colonne sono stati modificati rispettivamente da nome_impiegato e nome_dipartimento a nome e reparto.

Sfrutta la potenza della creazione di viste SQL

La creazione di viste SQL non solo ti consentirà di ottenere query semplificate e una ricerca dei dati più rapida, ma anche sicurezza e protezione contro le modifiche allo schema. La creazione di viste SQL è abbastanza semplice. Puoi prendere qualsiasi query esistente che hai e trasformarla in una vista SQL.

Utilizza la guida dettagliata sopra per creare viste SQL e sfruttarne i vantaggi. Con le viste SQL, puoi rendere le tue applicazioni di database semplici e sicure, aumentandone al tempo stesso le prestazioni.

Se vuoi gestire il tuo server SQL, guarda SQL Server Management Studio (SSMS).