No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de PostgreSQL

Curso de PostgreSQL

Oswaldo Rodr铆guez Gonz谩lez

Oswaldo Rodr铆guez Gonz谩lez

Vistas

21/32
Recursos

Aportes 64

Preguntas 15

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Agarra una consulta que se realice muchas veces y colocarla bajo un solo nombre.
Centraliza muchos esfuerzos en una sola funci贸n.
Vista vol谩til: Siempre que se haga la consulta en la vista, la BD hace la ejecuci贸n de la consulta en la BD, por lo que siempre se va a tener informaci贸n reciente.
Vista materializada: Hace la consulta una sola vez, y la informaci贸n queda almacenada en memoria, la siguiente vez que se consulte, trae el dato almacenado, eso es bueno y malo a la vez, bueno porque la velocidad con la que se entrega la informaci贸n es r谩pida, malo porque la informaci贸n no es actualizada. Es ideal utilizar este tipo de vista en procesos que utilice d铆as anteriores, porque el d铆a de ayer, ya pas贸 y no hay raz贸n para actualizarlo.
Para crear una vista vol谩til en postgres, damos click derecho a views, create, view, le damos un nombre, y en la pesta帽a code escribimos o pegamos el c贸digo de la consulta que queremos guardar, la guardamos y para usar la vista usamos:

    SELECT * FROM <nombre_vista>; y listo.

Para crear una vista materializada, primero creamos la consulta, y definimos si los datos nos interesan o no, luego, vamos a la opci贸n materialized views, click derecho, create, materialized view. Se abre la ventana, le damos un nombre, termina con _mview, y en la pesta帽a Definition escribimos la consulta que necesitamos guardar. Guardamos.
Al probarla en este momento nos lanza un error, 驴por qu茅? porque no tiene datos almacenados. Para almacenar datos usamos:

    REFRESH MATERIALIZED VIEW <nombre vista>;

Y ahora si podemos consultarla:

    SELECT * FROM <nombre_vista_mview>;

En el caso de las vistas materializadas, es conveniente agregar una columna para indicar la fecha del 煤ltimo 鈥渞efresh鈥 de la informaci贸n.

Tipos de vistas:
- Vista Vol谩til: Consulta con data actualizada
- Vista Materializada: Consulta con data persistente

Vistas

  • Vista Volatil
  • Vista Materializada: persistente (Ayer)
-- Creamos la vista
CREATE OR REPLACE VIEW public.rango_view
AS
    SELECT *,
        CASE
        WHEN fecha_nacimiento > '2015-01-01' THEN
            'Mayor'
        ELSE
            'Menor'
        END AS tipo
    FROM pasajero ORDER BY tipo;
ALTER TABLE public.rango_view OWNER TO postgres;

-- mostramos la vista
SELECT * FROM public.rango_view;

-- Vistas Materializada, no se cambia a menos que queramos que se cambie
SELECT * FROM viaje WHERE inicio > '22:00:00';

CREATE MATERIALIZED VIEW public.despues_noche_mview
AS
    SELECT * FROM viaje WHERE inicio > '22:00:00';
WITH NO DATA;
ALTER TABLE public.despues_noche_mview OWNER TO postgres;

-- observamos la vista
SELECT * FROM despues_noche_mview;

-- Damos refresh
REFRESH MATERIALIZED VIEW despues_noche_mview;

-- Borramos una tupla de viaje cuando el id = 2, para observar que no se borro
DELETE FROM viaje WHERE id = 2;

hay otro concepto que me parece importante y son las tablas temporales que se guardan en disco y se eliminan al cerrar la sesi贸n,

create temporary table viajes_temp AS
select * from viajes;

Cuando cre茅 la tabla viaje, lo hice con campos TIMESTAMP WITH TIME, entonces no me permit铆a filtrar los datos por horas lo que hice fue esto:

les dejo aqu铆 documentaci贸n al respecto

SELECT *
from viaje
where DATE_PART('hour', inicio) > 22;

Vistas 馃憖

.
Una vista es una alternativa para mostrar datos de varias tablas. Una vista es como una tabla virtual que almacena una consulta. Los datos accesibles a trav茅s de la vista no est谩n almacenados en la base de datos como un objeto.
.
Entonces, una vista almacena una consulta como un objeto para utilizarse posteriormente. Las tablas consultadas en una vista se llaman tablas base. En general, se puede dar un nombre a cualquier consulta y almacenarla como una vista.
.

Las vistas permiten:

  • Ocultar informaci贸n: generando el acceso a algunos datos y manteniendo oculto el resto de la informaci贸n que no se incluye en la vista. El usuario solo puede consultar la vista.
    .
  • Simplificar la administraci贸n de los permisos de usuario: se pueden dar al usuario permisos para que solamente pueda acceder a los datos a trav茅s de vistas, en lugar de concederle permisos para acceder a ciertos campos, as铆 se protegen las tablas base de cambios en su estructura.
    .
  • Mejorar el rendimiento: se puede evitar tipear instrucciones repetidamente almacenando en una vista el resultado de una consulta compleja que incluya informaci贸n de varias tablas.
    .
    Podemos crear vistas con: un subconjunto de registros y campos de una tabla; una uni贸n de varias tablas; una combinaci贸n de varias tablas; un resumen estad铆stico de una tabla; un subconjunto de otra vista, combinaci贸n de vistas y tablas.
    .
La sintaxis b谩sica parcial para crear una vista es la siguiente:

 create view NOMBREVISTA as
  SENTENCIAS SELECT
   from TABLA;
El contenido de una vista se muestra con un "select":

 select *from NOMBREVISTA;

Las vistas son 煤tiles porque nos ayudan a centralizar todos los esfuerzo en un solo lugar por otra parte las vistas vol谩til no guardan informaci贸n de forma persistente, en cambio la vista materializada si, esto es 煤til cuando queremos consultar que datos ocurrieron el d铆a ant.

  • Vista Vol谩til: Consulta informaci贸n en tiempo real
  • Vista Materializada: Consulta informaci贸n guardada al momento de generar la vista.
    Si se desea actualizar la vista Materializada se debe ejecutar lo siguiente:
    REFRESH MATERIALIZED VIEW <Nombre de la vista materializada>

Supongamos que somos los encargados de proporcionar informaci贸n de los nuevos casos de COVID-19 registrados por los hospitales de nuestro pa铆s. Si la informaci贸n se registra de forma diaria, utilizar铆amos las vistas de la siguiente forma:
Vista materializada: Consultar datos del mes anterior.
Vista Vol谩til: Consultar datos actualizados del mes actual.

Vistas en PostgreSQL

Tipos de vistas

  • Vistas est谩ndar: consultas SELECT almacenadas como objetos que pueden ser referenciados por otras consultas o programas de aplicaci贸n.
  • Vistas vol谩tiles: vistas que se recalculan cada vez que se consultan. Se utilizan para consultas que requieren datos en tiempo real y que se ejecutan con poca frecuencia.
  • Vistas materializadas: vistas que almacenan los resultados de una consulta SELECT en una tabla temporal para una consulta m谩s r谩pida. Se utilizan para consultas que se ejecutan con frecuencia y que no cambian con frecuencia.

Creaci贸n de vistas

  • Vistas est谩ndar: se utiliza la sintaxis CREATE VIEW, seguida de la consulta SELECT que define la vista.

    CREATE VIEW vista_ejemplo AS
    SELECT columna1, columna2, columna3
    FROM tabla_ejemplo
    WHERE columna4 = 'valor';
    
    
  • Vistas vol谩tiles: se utiliza la sintaxis CREATE OR REPLACE VIEW, seguida de la consulta SELECT que define la vista.

    CREATE OR REPLACE VIEW vista_volatil AS
    SELECT columna1, columna2
    FROM tabla_ejemplo
    WHERE columna3 = 'valor';
    
    
  • Vistas materializadas: se utiliza la sintaxis CREATE MATERIALIZED VIEW, seguida de la consulta SELECT que define la vista.

    CREATE MATERIALIZED VIEW vista_materializada AS
    SELECT columna1, columna2
    FROM tabla_ejemplo
    WHERE columna3 = 'valor';
    
    

Actualizaci贸n de vistas

  • Vistas vol谩tiles: se recalculan autom谩ticamente cada vez que se consultan.

  • Vistas materializadas: deben ser actualizadas manualmente utilizando la sintaxis REFRESH MATERIALIZED VIEW.

    
    REFRESH MATERIALIZED VIEW vista_materializada;
    
    

Beneficios de las vistas

  • Simplifican consultas complejas.
  • Reducen la cantidad de c贸digo necesario para realizar consultas comunes.
  • Proporcionan una vista personalizada de los datos de la base de datos para diferentes usuarios o aplicaciones.

Una vista en esencia es tomar una consulta convertirla en un solo nombre. De modo que SELECT * FROM view_name

Data Tree Gardener Aqui VOOOOOOOOY

Las VISTAS sirven tambi茅n cuando se desea compartir cierta informaci贸n de una tabla con un grupo de usuarios que no debe ver todas las columnas, es decir, sobre la tabla original podr铆a haber informaci贸n sensible que no debe compartirse con todos.

esto nos va a ayudar tanto a escribir menos y optimizar las consultas ahora voy a revisar si a esas vistas se le pueden hacer joins

Entendido

CREATE OR REPLACE VIEW public.rango_view
 AS
 SELECT COALESCE(pasajero.nombre, 'Nombre en Null'::character varying) AS nombrenull,
    pasajero.id,
    pasajero.nombre,
    pasajero.direccion_residencia,
    pasajero.fecha_nacimiento,
        CASE
            WHEN pasajero.fecha_nacimiento > '2015-01-01'::date THEN 'Ni帽o'::text
            ELSE 'Mayor'::text
        END AS tipo,
        CASE
            WHEN pasajero.nombre::text ~~* 'D%'::text THEN 'Empieza con D'::text
            ELSE 'No empieza con D'::text
        END AS letra,
        CASE
            WHEN date_part('years'::text, age(CURRENT_TIMESTAMP, pasajero.fecha_nacimiento::timestamp without time zone::timestamp with time zone)) >= 18::double precision THEN 'Mayor de edad.'::text
            ELSE 'Menor de edad.'::text
        END AS edad
   FROM pasajero;

ALTER TABLE public.rango_view
    OWNER TO postgres;

CREATE MATERIALIZED VIEW public.despues2014
AS
SELECT * FROM pasajero WHERE fecha_nacimiento > '2015-01-01'
WITH NO DATA;

ALTER TABLE public.despues2014
    OWNER TO postgres;

SELECT * FROM rango_view;
SELECT * FROM  public.despues2014;
REFRESH MATERIALIZED VIEW despues2014;
SELECT * FROM  public.despues2014;
DELETE FROM pasajero WHERE id = 89;
SELECT * FROM  public.despues2014;
REFRESH MATERIALIZED VIEW despues2014;
SELECT * FROM  public.despues2014;

Hay dos tipos de vistas: 1. Vistas Vol谩til, 2.Vistas Materializada: Persistentes

Apartir del video pasado ya no pude hacer los ejercicios, pgadmin me da muchas inconsistencias

Comandos 煤tiles:

  1. Para listar vistas materializadas usar: \dm
  2. Para listar vistas vol谩tiles: \dv
  3. Para ver todo lo que hay tras una vista vol谩til en especifico \sv <nombre_vista>

    pd: no encontr茅 el equivalente de 鈥榎sv鈥 para vistas materializadas, lo 煤nico que encontr茅 fue una forma de preguntar usando SELECT, pero siendo as铆 encuentro mucho m谩s pr谩ctico usar PgAdmin.

Cuando se generan consultas se debe tener presente de no usar el comod铆n *, ya que esto le trae una carga adicional a la base de datos y m谩s en tablas que son de muchas columnas.
El deber ser es traer solo los datos a usar, el comod铆n es 煤til cuando se utilizan funciones de agregaci贸n.
En conclusi贸n, es muy mala practica hacerlo, en grandes sistemas esto pasa factura.

Las vistas materializadas son 煤tiles en muchos casos que requieren un acceso r谩pido a los datos. Las vistas materializadas se almacenan en cach茅 y pueden ser el resultado de una consulta compleja y costosa. Una vez disponibles los datos en la vista las consultas son r谩pidas.
https://www.postgresqltutorial.com/postgresql-materialized-views/

Muy buena me gusto mucho esto de las vistas

La consulta del profesor no est谩 bien dise帽ada l贸gicamente, teniendo en cuenta que si la fecha de nacimiento en mayor a 2015-01-01 deber铆an ser ni帽os y no mayores, Qued贸 invertida la consulta.

Informaci贸n resumida de esta clase
#EstudiantesDePlatzi

  • Una vista me permite agrupar alg煤n c贸digo que necesite ejecutar continuamente en una palabra

  • La vista vol谩til me ayuda trayendo informaci贸n reciente de la base de datos, es decir, informaci贸n actualizada

  • La vista materializada hace la consulta y esta queda registrada en la memoria. Si vuelvo a consultar esta vista me traer谩 la informaci贸n que est茅 en la memoria

  • Una buena pr谩ctica es usar vistas cuando sabes que la informaci贸n ya no va a cambiar, esto ayuda al rendimiento de la base de datos

Siempre que hagamos un REFRESH en la vista materializada la vamos a actulizar con los datos del momento.

21. Vistas

  • Una vista es una consulta fijada.
  • Vista: Vol谩til. Se actualiza.
  • Vista Materializada: Persistente. No se actualiza. Solo para consultar informaci贸n que no se va a cambiar.

Algo super interesante que comprobe es que puedes hacer INNER JOIN con una vista que en s铆 misma es un INNER JOIN, e imagino que se pueden hacer mas acciones.
Gran herramienta.

Vistas


En PostgreSQL, las vistas son objetos virtuales que proporcionan una representaci贸n simplificada y abstracta de los datos almacenados en una o varias tablas. Son similares a una tabla, pero en lugar de almacenar datos reales, solo proporcionan una vista de los datos existentes en otras tablas.

Las vistas se crean con una sentencia CREATE VIEW, y suelen utilizarse para simplificar la l贸gica de una consulta o para ocultar cierta informaci贸n o detalles complejos de la estructura de datos subyacente.

Aqu铆 hay un ejemplo de c贸mo crear una vista en PostgreSQL:

CREATE VIEW clientes_activos AS
  SELECT nombre, direccion, fecha_registro
  FROM clientes
  WHERE fecha_registro >= '2021-01-01'
  AND estado = 'activo';

En este ejemplo, se crea una vista llamada clientes_activos que muestra solo los nombres, direcciones y fechas de registro de los clientes cuyo estado es 鈥渁ctivo鈥 y cuya fecha de registro es igual o posterior a 2021-01-01.

Las vistas son muy 煤tiles para simplificar la l贸gica de las consultas y para proteger la integridad de los datos al esconder los detalles de la estructura de datos subyacente. Sin embargo, es importante tener en cuenta que las vistas no son una soluci贸n para el rendimiento lento, ya que simplemente proporcionan una vista simplificada de los datos subyacentes y no realizan ning煤n tipo de optimizaci贸n de rendimiento.

En PostgreSQL, existen dos tipos de vistas: materializadas y normales.

  • Las vistas materializadas son aquellas que almacenan los resultados de una consulta en una tabla temporal, lo que puede mejorar el rendimiento de las consultas futuras.
  • Las vistas normales, por otro lado, son simplemente una vista de los datos de una o m谩s tablas subyacentes. No se almacenan los resultados de la consulta, por lo que cada vez que se accede a la vista se ejecuta una nueva consulta contra las tablas subyacentes.

VISTAS

Para no repetir la consulta varias veces, existen este tipo de alternativas llamadas 鈥淰istas鈥, diferenciamos dos tipos

  • Vista: Vol谩til (Siempre que haga la consulta de la vista, la bd va a hacer la ejecuci贸n de la consulta, por lo cual siempre vas a traer informaci贸n reciente. )
  • Vista Materializada: Persistente (solo hace la consulta 1 vez y luego queda almacenada en memoria, 贸sea que la siguiente vez que hagas la consulta, va a traer la de la memoria, esta vista es 煤til por ejemplo, si quieres consultar datos del d铆a de ayer.)

las vistas en memoria estan buenas cuando la data que se consulta sigue mutando, las vistas materializadas sirven cuando la data a consultar no se volvera a modificar, no hace nuevas consultas, toma los datos guardados en disco = cte

Una vista es conveniente utilizarla cuando se tienen consultas que necesitan ser ejecutadas muchas veces durante le periodo de vida del proyecto, dicho de otra manera es poner esa consulta que se repite muchas veces y colocar un solo nombre. Existen 2 tipos de vistas:

-Vistas Vol谩tiles: Siempre que se hace la consulta a la vista, la consulta de la informaci贸n se realiza en tiempo real, es decir la informaci贸n de dicha consulta ser谩 la m谩s reciente.

-Vistas Materializadas: La consulta se realiza una sola vez a la BD y dicha informaci贸n queda almacenada en memoria. Hay que tener cuidado con 茅ste tipo de vistas porque podr铆an traer informaci贸n que no est茅 actualizada a la fecha en que se realiza la consulta.

鈥 Inspirado en un aporte de este mismo grupo.

鈥 Haciendo la vista vol谩til.
CREATE OR REPLACE VIEW public.edad_tipo_view
AS
SELECT *,
CASE
WHEN fecha_nac < 鈥1960-01-01鈥 THEN 'Mayor鈥
WHEN fecha_nac > 鈥1959-12-31鈥 AND fecha_nac < 鈥1996-01-01鈥 THEN 'Adulto鈥
WHEN fecha_nac > 鈥1995-12-31鈥 THEN 'Joven鈥
END AS tipo
FROM pasajero ORDER BY tipo;
ALTER TABLE public.edad_tipo_view OWNER TO postgres;

鈥 Demostrando la vista vol谩til reci茅n hecha.
SELECT * FROM public.edad_tipo_view;

鈥 Prueba para la vista materializada.
鈥 Para aquellos (como yo) que usaron el 鈥榯imestamp鈥 para
鈥 los campos inicio y final, encontr茅 dos formas de
鈥 realizar la consulta. Aqu铆 tienen la primera.
SELECT * FROM viaje WHERE to_char(inicio, 鈥楬H24:MI:SS鈥) > 鈥22:00:00鈥;

鈥 Y la segunda鈥
SELECT * FROM viaje WHERE inicio::time > 鈥22:00:00鈥;

鈥 Haciendo la vista materializada.
CREATE MATERIALIZED VIEW public.despues_noche_mview
AS
SELECT * FROM viaje WHERE to_char(inicio, 鈥楬H24:MI:SS鈥) > '22:00:00鈥
WITH NO DATA;
ALTER TABLE public.despues_noche_mview OWNER TO postgres;

鈥 Demostrando la vista materializada reci茅n hecha.
鈥 (que dar谩 un error de no estar poblada o llena)
SELECT * FROM despues_noche_mview;

鈥 Para poblar la vista materializada procedemos a dar un refresh.
REFRESH MATERIALIZED VIEW despues_noche_mview;

鈥 Y confirmamos que la informaci贸n 鈥榲ieja鈥 se mantiene en la
鈥 vista materializada borrando una tupla de viaje cuando el
鈥 id = 2, para observar que no se borr贸
DELETE FROM viaje WHERE id = 2;

鈥 Usamos de nuevo la consulta para confirmar.
SELECT * FROM despues_noche_mview;

Otra super clase, donde aprend铆 algo super importante, la verdad vengo trabajando a帽os con postgres pero nunca le di bola sus otras funcionalidades.

  • Vista vol谩til: Siempre va a traer la informaci贸n actualizada cuando se haga uso de est谩.
  • Vista materializada: La consulta queda almacenada en memoria, guardando la informaci贸n de la base de datos que hab铆a en ese momento, si la ejecuto en el futuro, va a traer info de la DB que puede estar desactualizada. Se aconseja que sea utilizada cuando se sabe que la informaci贸n no va a cambiar.

Aqu铆 les dejo los c贸digos de las vistas que hice:

volatil realic茅 la consultas de los pasajeros del d铆a de hoy, como estos se pueden ir actualizando en el transcurso del d铆a en el contexto que estamos es vol谩til.

SELECT pasajeros.id, pasajeros.nombre, viajes.inicio, viajes.fin 
FROM pasajeros
JOIN viajes 
ON viajes.id_pasajero = pasajeros.id
WHERE viajes.inicio::date = current_date;

Como vista materializada hice la consulta de los pasajeros que hayan realizado viajes en el a帽o 2021, este siendo un a帽o en el pasado no deber铆a de cambiar.

SELECT pasajeros.id, pasajeros.nombre, viajes.inicio, viajes.fin 
FROM pasajeros
JOIN viajes 
ON viajes.id_pasajero = pasajeros.id
WHERE EXTRACT (YEAR FROM viajes.inicio) = 2021;

Entiendo que una vista materializada ayuda cuando una query es muy lenta o pesada y tienes que hacerla repetidas veces, entonces esto te ayuda a hacerlas m谩s r谩pido.

Listo compa帽eros. 馃槂

Las vistas se usan para no repetir la misma consulta muchas veces. Nos ayuda a centralizar todos los esfuerzos en una sola funci贸n y con un solo nombre.

  • Vista vol谩til -> Se actualiza al mismo tiempo que la base de datos.
  • Vista materializada -> persistente. Tendr谩 datos antiguos aunque hayan sido borrados. Tenemos que actualizarla para que tenga datos nuevos si as铆 lo queremos.

Me qued贸 claro lo del case en el video 20, pero si quisiera que el case tuviera un nombre en la consulta, como debo escribirlo en sql?

En mi caso, no me permiti贸 ejecutar el query por que no estaba bien el formato de la hora, tuve que incluir un formato de 鈥渇echa y hora鈥

Vista: ejecuta por detr谩s una query y nos devuelve el resultado (donde la query puede acceder a tablas, otras vistas, utilizar funciones o procedimientos, etc.). Cada vez que accedemos a la vista, la query se ejecuta y nos devuelve la informaci贸n que en ese momento exista en el origen.
Una Vista Materializada lo que hace es almacenar f铆sicamente en cach茅 el resultado de ejecutar una query en un determinado momento, de forma que cada vez que consultemos la Vista Materializada lo que vamos a recuperar es lo que hab铆a en el origen en el momento en el que se cre贸 o se refresc贸 la VM.

OO muy importante saber esto.

Cuando ingreso a la ventana de creaci贸n de la vista no me aparece la pesta帽a 鈥渃贸digo鈥

En mi version de Postgres, es necesario colocar la vista Materializada entre comillas si no me arroja error

SELECT * FROM "VistaM";```

Tenga en cuenta que una vista no almacena datos f铆sicamente, excepto una vista materializada .

Hay dos tipos de vistas:

Vistas: es un objeto de bd que es de una consulta almacenada. Se puede acceder a una vista como una tabla virtual en PostgreSQL. En otras palabras, una vista PostgreSQL es una tabla l贸gica que representa datos de una o m谩s tablas subyacentes a trav茅s de una instrucci贸n SELECT

--Vista Materializada con data
--驴Viajes hecho 2019-01-01-hasta 2019-01-31?
CREATE MATERIALIZED VIEW public.mview_viaje_2019_01_31
AS
SELECT * FROM viaje
WHERE  viaje.inicio >'2019-01-1' AND  viaje.inicio <'2019-01-31'
WITH DATA;

ALTER TABLE public.mview_viaje_2019_01_31
    OWNER TO postgres;


--Vista Materializada sin data
--驴Viajes hecho 2019-01-01-hasta 2019-01-31?
CREATE MATERIALIZED VIEW public.mview_viaje_2019_01_31
AS
--驴Viajes en el per铆odo 2019-01-1 hasta 2019-01-1?
SELECT * FROM viaje
WHERE  viaje.inicio >'2019-01-1' 
	AND  
	   viaje.inicio <'2019-01-31'

WITH NO DATA;

ALTER TABLE public.mview_viaje_2019_01_31
    OWNER TO postgres;

-- con esta instrucci贸n refrescamos los datos para que se creen en la vista
REFRESH MATERIALIZED VIEW "mview_viaje_2019_01_31";

SELECT * FROM "mview_viaje_2019_01_31";

Algo se vio en los anteriores curso de mysql es que es bueno tener unas columnas que indique cuando se cre贸, actualiz贸 y si est谩 activa o no ya un Ejemplo de usar vista materializada es guardar un registro hist贸ricos de los cambios de las tuplas

鈺(掳鈻铰)鈺

EXCELENTE ESTA CLASE

Vistas

Dos tipos de Vistas

Materialized Views en pgAdmin: Para crear una vista materializada.

Views en pgAdmin: Para crear una vista vol谩til.

REFRESH MATERIALIZED VIEW: Para actualizar los datos de la vista materializada.

Una gran ayuda para poder consultar despues jajaja, me encanta

Las vistas son el equivalente a los Procedimientos Almacenados en SQLServer?

Se que tambi茅n hay vistas en MySQL, pero no estoy seguro de la existencia de las vistas materializadas.

Apa la papa, buen material.

Excelente.

Excelente para almacenar los cierres de mes fiscal y data por el estilo siempre y cuando se evite el REFRESH, a la final viene a sumar al stack de opciones que vamos incorporando al dise帽o en sus distintas fases