0% encontró este documento útil (0 votos)
132 vistas3 páginas

Vistas e Índices en Bases de Datos SQL

El documento describe varias operaciones sobre bases de datos, incluyendo la creación de vistas para recuperar datos de pedidos y clientes, la creación de índices en las tablas de pedidos y clientes, y la creación de nuevas tablas para almacenar pedidos anteriores a 2017 mediante consultas SELECT e INSERT.

Cargado por

Bryan Cuenca
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
132 vistas3 páginas

Vistas e Índices en Bases de Datos SQL

El documento describe varias operaciones sobre bases de datos, incluyendo la creación de vistas para recuperar datos de pedidos y clientes, la creación de índices en las tablas de pedidos y clientes, y la creación de nuevas tablas para almacenar pedidos anteriores a 2017 mediante consultas SELECT e INSERT.

Cargado por

Bryan Cuenca
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Desarrollo de Aplicaciones Multiplataforma – Bases de datos

UD05 – Tratamiento de datos

Vistas

1 - Crea una vista que devuelva un listado de todos los pedidos que se realizaron durante el
año 2017, cuya cantidad sea superior a 500€.

CREATE OR REPLACE VIEW VISTA_PEDIDO AS SELECT ID,TOTAL, FECHA, ID_CLIENTE,


ID_COMERCIAL FROM PEDIDO WHERE TOTAL>500 AND FECHA LIKE '%2017';

2 - Crea una vista que contenga todos los pedidos de 2017, junto con los datos del cliente que
ha realizado el pedido (identificador, nombre, apellido1, apellido2)

CREATE O REPLACE VIEW PEDIDO_CLIENTE AS SELECT ID, NOMBRE, APELLIDO1,


APELLIDO2, CIUDAD, CATEGORIA FROM CLIENTE WHERE FECHA LIKE '%2017';

3 - Crea una vista que muestre para cada uno de los pedidos, el código del pedido, la fecha, el
nombre del cliente que realizó el pedido y el importe total del pedido.

SELECT [Link], [Link], [Link] AS NOMBRE_CLIENTE, [Link]


FROM PEDIDO P

LEFT JOIN CLIENTE C

ON [Link] = P.ID_CLIENTE;

4 - Crea una vista que muestre todos aquellos clientes que no han realizado un pedido

CREATE VIEW CLIENTE_SIN_PEDIDO AS


SELECT C.*

FROM CLIENTE C FULL JOIN PEDIDO P

ON P.ID_CLIENTE=[Link]

WHERE TOTAL IS NULL;

pág. 1
Desarrollo de Aplicaciones Multiplataforma – Bases de datos

5 – Elimina la vista del punto 4.

DROP VIEW CLIENTE_SIN_PEDIDO;

Índice
Crea un índice para la tabla PEDIDO por los campos id, id_cliente, id_comercial

CREATE INDEX PEDIDOS


ON PEDIDO (ID, ID_CLIENTE, ID_COMERCIAL);

Crea un índice de la tabla CLIENTE por los campos id, nombre, apellido1, ciudad

CREATE INDEX CLIENTES


ON CLIENTE (ID, NOMBRE, APELLIDO1, CIUDAD);

Tablas
Crea una tabla que tendrá la misma estructura que la tabla pedidos. Inserta los pedidos
anteriores a 2017.

CREATE TABLE PEDIDO_ANTES (


ID INTEGER,

TOTAL DECIMAL(17,2) NOT NULL,

FECHA DATE,

ID_CLIENTE INTEGER NOT NULL,

ID_COMERCIAL INTEGER NOT NULL,

CONSTRAINT PED_IDCLI_FK2 FOREIGN KEY (ID_CLIENTE) REFERENCES CLIENTE(ID),

CONSTRAINT PED_IDCOM_FK2 FOREIGN KEY (ID_COMERCIAL) REFERENCES COMERCIAL(ID)

);

INSERT INTO PEDIDO_2017 SELECT * FROM PEDIDO WHERE FECHA<'01/01/2017';

pág. 2
Desarrollo de Aplicaciones Multiplataforma – Bases de datos

Crea una tabla que almacena los pedidos realizados antes del 2017, la tabla se llamará
PEDIDOS_ANT2, utiliza un CREATE SELECT.

CREATE TABLE PEDIDOS_DISTINTOS AS (SELECT * FROM PEDIDO WHERE FECHA <


'01/01/17');

pág. 3

También podría gustarte