Importante

Translation is a community effort you can join. This page is currently translated at 83.33%.

15.5. Lesson: Vistas

Cuando se escribe una consulta, debe pasar mucho tiempo y esfuerzo para formularla. Con vistas, se puede guardar la definición de una consulta SQL en una reutilizable ‘tabla virtual’

El objetivo de esta lección: Guardar una consulta como una vista.

15.5.1. Crear una vista

Você pode tratar uma vista como uma tabela, mas seus dados são provenientes de uma consulta. Vamos fazer uma vista simples com base no exposto acima:

create view roads_count_v as
  select count(people.name), streets.name
  from people, streets where people.street_id=streets.id
  group by people.street_id, streets.name;

Como você pode ver, a única alteração é a parte create view roads_count_v as no início. Agora podemos selecionar dados dessa vista:

select * from roads_count_v;

Resultado:

 count |    name
-------+-------------
     1 | Main Road
     2 | High street
     1 | Low Street
(3 rows)

15.5.2. Modificar una vista

Uma vista não é fixa e não contém ‘dados reais’. Isso significa que você pode alterá-la facilmente sem afetar os dados do seu banco de dados:

CREATE OR REPLACE VIEW roads_count_v AS
  SELECT count(people.name), streets.name
  FROM people, streets WHERE people.street_id=streets.id
  GROUP BY people.street_id, streets.name
  ORDER BY streets.name;

(Este ejemplo muestra también la mejor practica de convención de la utilización UPPER CASE para todas la palabras clave SQL.)

Você verá que adicionamos uma cláusula ORDER BY para que nossas linhas de exibição sejam bem classificadas:

select * from roads_count_v;

 count |    name
-------+-------------
     2 | High street
     1 | Low Street
     1 | Main Road
(3 rows)

15.5.3. Eliminar una Vista

Se você não precisar mais de uma vista, é possível excluí-la assim:

drop view roads_count_v;

15.5.4. In Conclusion

Usar vistas, puede guardar una consulta y acceder a los resultados como si fuera una tabla.

15.5.5. What’s Next?

Algunas veces, cuando cambia datos, quiere que los cambios tengan efecto entre otra parte en la base de datos. La siguiente lección mostrará cómo puede hacer esto.