Introducción a las Vistas en PostgreSQL

Bilal Shahid 20 junio 2023
  1. Vistas en PostgreSQL
  2. Crear una vista
  3. Mostrar una vista
  4. Actualizar una vista
  5. Eliminar una vista
Introducción a las Vistas en PostgreSQL

Aunque son beneficiosos, los usuarios a veces tienen problemas para manejar las vistas en PostgreSQL. Sin embargo, esto ya no causará ningún problema. Primero, describiremos todo lo que necesita saber para crear, eliminar y actualizar vistas en PostgreSQL.

Vistas en PostgreSQL

Una vista se parece a cualquier otra tabla en una base de datos. Sin embargo, la diferencia es que uno puede extraer el contenido de una base de datos existente y mostrar solo esos datos a un usuario.

Como resultado, cualquier información confidencial o irrelevante permanecerá en la base de datos original y se ocultará al público.

Crear una vista

Crear una vista puede parecer complicado, pero PostgreSQL lo hace increíblemente simple. Para hacerlo, debe usar la instrucción CREATE VIEW acompañada de una condición que se puede aplicar mediante cualquier consulta.

Considere el siguiente esquema:

CREATE TABLE users(
    user_id int PRIMARY KEY,
    user_name VARCHAR (100) UNIQUE,
    email VARCHAR (300) NOT NULL
);

INSERT INTO users(user_id, user_name, email)
VALUES (1, 'name', 'email');

Supongamos que desea mostrar una tabla al usuario en la que solo estén visibles el id_usuario y el nombre_usuario. Para lograr esto, puede usar el siguiente código:

CREATE VIEW view_name AS
SELECT user_id, user_name
FROM users;

Creará una vista que muestra solo el id_usuario y el nombre_usuario de la tabla usuarios. Para recuperar datos usando view_name, necesitamos usar el comando SELECT de la siguiente manera:

select * from view_name;

Producción :

 user_id | user_name 
---------+-----------
       1 | name

Si lo desea, también puede agregar condiciones adicionales. Por ejemplo, si solo desea una vista que muestre un usuario específico, puede probar esto:

CREATE VIEW view_name AS
SELECT user_id, user_name
FROM users
WHERE user_id= 123;

Esta vista solo constaría de aquellos usuarios cuyo user_id sea 123.

Nota: No se puede crear una vista sin una tabla correspondiente en PostgreSQL. Cree siempre una tabla antes de una vista.

Mostrar una vista

Mostrar una vista es casi tan simple como crear una. Cuando queremos ver una tabla, a menudo usamos la siguiente sintaxis:

SELECT * FROM users;

De la misma forma, cuando queremos mostrar una vista, usamos una sintaxis similar.

SELECT * FROM view_name;

Nota: Durante la creación, asegúrese de que el nombre de cada vista sea único, al igual que los nombres de las tablas.

Mostrar el código de una vista

A veces, en grandes bases de datos o largas líneas de código, tendemos a perder el código de una vista y no podemos acceder a él. Sin embargo, PostgreSQL tiene comandos que pueden ayudarlo rápidamente a mostrar el código sin tener que desplazarse por varias líneas.

Aquí hay algunas maneras en que puede lograrlo:

  • Cláusula SELECT: este es uno de los métodos más sencillos ya que la mayoría de los usuarios están familiarizados con la cláusula SELECT. Así es como puedes usarlo:

    SELECT definition FROM pg_views
    WHERE viewname = 'view_name';
    

    Algunas versiones también aceptan esto:

    SELECT view_definition FROM information_schema.views
    WHERE table_name = 'view_name';
    

    Es esencial tener en cuenta que este comando proporcionará una versión reescrita de su código original utilizado para crear la vista.

  • pg_get_viewdef: aunque este comando funciona bien, a muchos usuarios les ha resultado difícil implementarlo. Si este es el escenario para usted también, intente usarlo de la siguiente manera:

    SELECT pg_get_viewdef('view_name', true);
    

    Otro método es lanzar un nombre a regclass. Aquí hay algunas formas en que podemos usarlo:

    SELECT pg_get_viewdef('view_name'::regclass);
    
  • \d+ viewname: algunos de los comandos anteriores pueden ser un poco difíciles de recordar, aunque funcionan bien. Si prefiere algo rápido y efectivo, pruebe este comando en su lugar.

    Si desea explorar más funciones como esta, intente escribir \? en la línea de comando. Luego mostrará una serie de comandos con los que puede jugar para descubrir más funciones en PostgreSQL.

Actualizar una vista

Si conoce el nombre de una vista, puede actualizarla constantemente incluso si no puede acceder al código original utilizado para la creación.

Se puede lograr usando la cláusula UPDATE. Pero, primero, cree una vista utilizando una tabla existente, como se explicó anteriormente. Recuerde el nombre de la vista o no podrá acceder a ella. Intente lo siguiente para actualizar su vista:

CREATE OR REPLACE VIEW view_name AS 
SELECT * FROM name_of_the_table;

Puede reemplazar la última línea de este código con cualquier consulta que le ayude a generar su vista preferida. Si desea cambiar el nombre de su vista, puede hacerlo utilizando el siguiente código:

ALTER VIEW view_name
RENAME TO new_name;

También puede actualizar una vista eliminando la existente y volviendo a crearla con los cambios necesarios. El proceso de eliminación se explica a continuación.

Eliminar una vista

Existen múltiples causas por las que uno podría querer eliminar una vista. Por ejemplo, tal vez haya tanta actualización que sea mejor volver a hacerlo, o tal vez ya no sea necesario.

Cualquiera que sea la causa, PostgreSQL ha simplificado increíblemente la eliminación de una vista. Puedes hacerlo con el siguiente código:

DROP VIEW IF EXISTS view_name;

Aquí, la cláusula SI EXISTE no es obligatoria pero sí recomendable. Permite que el código se ejecute incluso si el nombre de la vista no existe.

Sin embargo, puede ser un problema si comete un error al enumerar el nombre de la vista en un código largo, ya que podría evitar la eliminación y producir errores en la base de datos. Por lo tanto, el uso depende de la naturaleza de su tarea.

Eso es todo lo que necesita saber para usar vistas en PostgreSQL con respecto a la creación, actualización, eliminación, visualización y acceso a códigos de creación. Esperamos que ahora entiendas sus funciones en profundidad y puedas usarlas fácilmente.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub