Projeto de banco de dados
Lis Sulmont
Curriculum Manager
Em um banco de dados, uma visualização é o conjunto de resultados de uma consulta armazenada nos dados, que os usuários do banco de dados podem consultar da mesma forma que fariam em um objeto de coleção de banco de dados persistente (Wikipedia).
Tabela virtual que não faz parte do esquema físico
CREATE VIEW view_name AS
SELECT col1, col2
FROM table_name
WHERE condition;

$$
Objetivo: Devolva os títulos e autores do gênero science fiction
CREATE VIEW scifi_books AS
SELECT title, author, genre
FROM dim_book_sf
JOIN dim_genre_sf ON dim_genre_sf.genre_id = dim_book_sf.genre_id
JOIN dim_author_sf ON dim_author_sf.author_id = dim_book_sf.author_id
WHERE dim_genre_sf.genre = 'science fiction';
SELECT * FROM scifi_books
| title | author | genre |
|-------------------------------|-------------------|-----------------|
| The Naked Sun | Isaac Asimov | science fiction |
| The Robots of Dawn | Isaac Asimov | science fiction |
| The Time Machine | H.G. Wells | science fiction |
| The Invisible Man | H.G. Wells | science fiction |
| The War of the Worlds | H.G. Wells | science fiction |
| Wild Seed (Patternmaster, #1) | Octavia E. Butler | science fiction |
| ... | ... | ... |
SELECT * FROM scifi_books
=
SELECT * FROM
(SELECT title, author, genre
FROM dim_book_sf
JOIN dim_genre_sf ON dim_genre_sf.genre_id = dim_book_sf.genre_id
JOIN dim_author_sf ON dim_author_sf.author_id = dim_book_sf.author_id
WHERE dim_genre_sf.genre = 'science fiction');
$$
SELECT * FROM INFORMATION_SCHEMA.views;
Inclui visualizações do sistema
SELECT * FROM information_schema.views
WHERE table_schema NOT IN ('pg_catalog', 'information_schema');
Exclui visualizações do sistema

Projeto de banco de dados