Importante

La traducción es un esfuerzo comunitario puede unirse. Esta página está actualmente traducida en |progreso de traducción|.

15.5. Lección: 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

Puede tratar una vista como una tabla, pero sus datos provienen de una consulta. Hagamos una vista simple basada en lo anterior:

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;

As you can see the only change is the create view roads_count_v as part at the beginning. We can now select data from that view:

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

Una vista no es fija y no contiene «datos reales». Esto significa que puede cambiarlo fácilmente sin afectar los datos de su base de datos:

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.)

You will see that we have added an ORDER BY clause so that our view rows are nicely sorted:

select * from roads_count_v;

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

15.5.3. Eliminar una Vista

Si ya no necesita una vista, puede eliminarla así:

drop view roads_count_v;

15.5.4. En conclusión

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

15.5.5. ¿Y ahora qué?

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.