Database
 sql >> Database >  >> RDS >> Database

Viste SQL

Una cosa interessante che puoi fare con SQL è creare una vista .

Una vista è come una tabella, tranne per il fatto che invece di essere una tabella reale, di per sé, è costruita dinamicamente dal risultato di una query SELECT.

Usiamo l'esempio che abbiamo usato nella lezione sui join:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL PRIMARY KEY
);

CREATE TABLE cars (
  brand CHAR(20) NOT NULL,
  model CHAR(20) NOT NULL,
  owner CHAR(20) NOT NULL PRIMARY KEY
);

Aggiungiamo alcuni dati:

INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (8, 'Roger');
INSERT INTO cars VALUES ('Ford', 'Fiesta', 'Flavio');
INSERT INTO cars VALUES ('Ford', 'Mustang', 'Roger');

Possiamo creare una vista che chiamiamo car_age che contiene sempre la correlazione tra un modello di auto e l'età del suo proprietario:

CREATE VIEW car_age AS SELECT model, age AS owner_age FROM people JOIN cars ON people.name = cars.owner;

Ecco il risultato che possiamo controllare con SELECT * FROM car_age :

        model         | owner_age 
----------------------+-----------
 Fiesta               |        37
 Mustang              |         8

La vista è persistente e apparirà come una tabella nel database. Puoi eliminare una vista usando DROP VIEW :

DROP VIEW car_age