|
As vistas podem ser consideradas como tabelas virtuais. Regra geral, uma tabela tem um conjunto de definições e armazena fisicamente os dados. Uma vista também tem um conjunto de definições, que são criadas sobre tabela(s) ou outra(s) vista(s), e não armazena fisicamente os dados.
A sintaxe para criar uma vista é a seguinte:
CREATE VIEW "nome_vista" AS "Instrução SQL"
"Instrução SQL" pode ser qualquer uma das instruções SQL abordadas neste tutorial.
Utilizemos um exemplo simples como ilustração. Assuma que temos a seguinte tabela:
Tabela Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)
e que queremos criar uma vista denominada V_Customer que contenha apenas as colunas Primeiro_nome, Apelido e País desta tabela, escreveríamos
CREATE VIEW V_Customer
AS SELECT First_Name, Last_Name, Country
FROM Customer
Agora possuímos uma vista denominada V_Customer com a seguinte estrutura:
View V_Customer
(First_Name char(50),
Last_Name char(50),
Country char(25))
Também podemos utilizar uma vista para aplicar uniões a duas tabelas. Nesse caso, os utilizadores apenas visualizam uma em vez de duas tabelas e a instrução SQL que os utilizadores devem emitir torna-se muito mais simples. Suponhamos que temos as duas tabelas seguintes:
Tabela Store_Information
| store_name |
Sales |
Date |
| Los Angeles |
1500 € |
05-Jan-1999 |
| San Diego |
250 € |
07-Jan-1999 |
| Los Angeles |
300 € |
08-Jan-1999 |
| Boston |
700 € |
08-Jan-1999 |
Tabela Geography
| region_name |
store_name |
| East |
Boston |
| East |
New York |
| West |
Los Angeles |
| West |
San Diego |
e queremos criar uma vista com informações de vendas por região. Iríamos emitir a seguinte instrução SQL:
CREATE VIEW V_REGION_SALES
AS SELECT A1.region_name REGION, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.store_name = A2.store_name
GROUP BY A1.region_name
Assim obtemos uma vista, V_REGION_SALES, que foi definida para armazenar registos de vendas por região. Se quisermos descobrir o conteúdo desta vista, escrevemos
SELECT * FROM V_REGION_SALES
Resultado:
| REGION |
SALES |
| East |
700 € |
| West |
2050 € |
SQL CREATE INDEX >>
Copyright © 2013 1keydata.com Todos os direitos reservados.
|