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