Bueno pues voy a poner el primer examen de este segundo trimestre.
El examen es de la parte de PL/SQL, y he sacado un 6. No es una gran nota, pero considerando que solo hemos aprobado dos de toda la clase, no está mal del todo...
Examen DAC - 2do Trimestre - PL/SQL
Aquí tenéis el script por si queréis importarlo para hacer el examen:
ALTER SESSION SET NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
DROP TABLE usuario CASCADE CONSTRAINTS;
DROP TABLE articulo CASCADE CONSTRAINTS;
DROP TABLE transaccion CASCADE CONSTRAINTS;
DROP TABLE voto CASCADE CONSTRAINTS;
DROP TABLE puja CASCADE CONSTRAINTS;
DROP TABLE tienda CASCADE CONSTRAINTS;
DROP TABLE tienda_articulo CASCADE CONSTRAINTS;
CREATE TABLE usuario
(
nickname VARCHAR2(25) PRIMARY KEY,
nombre VARCHAR2(25) NOT NULL,
apellido1 VARCHAR2(25) NOT NULL,
apellido2 VARCHAR2(25) NOT NULL,
direc_calle VARCHAR2(50) NOT NULL,
direc_numero VARCHAR2(6) NOT NULL,
direc_CP NUMBER(6,0) NOT NULL,
direc_pais VARCHAR2(25) NOT NULL,
fecha_alta DATE NOT NULL
);
CREATE TABLE articulo
(
ref_arti VARCHAR2(9) PRIMARY KEY,
nick_vendedor VARCHAR2(25) NOT NULL,
nombre VARCHAR2(50) NOT NULL,
descripcion VARCHAR2(200),
unidades NUMBER(3,0) NOT NULL,
precio_salida NUMBER(7,2) NOT NULL,
ubicacion_CP NUMBER(6,0) NOT NULL,
ubic_pais VARCHAR2(25) NOT NULL,
fecha_inicio DATE NOT NULL,
fecha_fin DATE NOT NULL,
FOREIGN KEY (nick_vendedor) REFERENCES usuario(nickname) ON DELETE CASCADE,
UNIQUE (nick_vendedor, nombre)
);
CREATE TABLE transaccion
(
codigo VARCHAR2(9) PRIMARY KEY,
nick_comprador VARCHAR2(25) NOT NULL,
ref_articulo VARCHAR2(9) NOT NULL,
fecha DATE NOT NULL,
precio_final NUMBER(7,2) NOT NULL,
unidades NUMBER(3,0) NOT NULL,
FOREIGN KEY (nick_comprador) REFERENCES usuario(nickname) ON DELETE CASCADE,
FOREIGN KEY (ref_articulo) REFERENCES articulo(ref_arti) ON DELETE CASCADE
);
CREATE TABLE voto
(
codigo VARCHAR2(9) PRIMARY KEY,
nick_emisor VARCHAR2(25) NOT NULL,
nick_receptor VARCHAR2(25) NOT NULL,
cod_transaccion VARCHAR2(9) NOT NULL,
fecha DATE NOT NULL,
valor VARCHAR2(8) CHECK(valor IN('positivo','negativo')),
comentario VARCHAR2(200),
FOREIGN KEY (nick_emisor) REFERENCES usuario(nickname) ON DELETE CASCADE,
FOREIGN KEY (nick_receptor) REFERENCES usuario(nickname) ON DELETE CASCADE,
FOREIGN KEY (cod_transaccion) REFERENCES transaccion(codigo) ON DELETE CASCADE,
UNIQUE (nick_emisor, nick_receptor, cod_transaccion)
);
CREATE TABLE puja
(
codigo VARCHAR2(9) PRIMARY KEY,
nick_pujador VARCHAR2(25) NOT NULL,
ref_articulo VARCHAR2(9) NOT NULL,
unidades NUMBER(3,0) NOT NULL,
puja_unidad NUMBER(7,2) NOT NULL,
fecha DATE NOT NULL,
FOREIGN KEY (nick_pujador) REFERENCES usuario(nickname) ON DELETE CASCADE,
FOREIGN KEY (ref_articulo) REFERENCES articulo(ref_arti) ON DELETE CASCADE
);
CREATE TABLE tienda
(
codigo VARCHAR2(9) PRIMARY KEY,
nick_propietario VARCHAR2(25) NOT NULL,
nombre VARCHAR2(25) NOT NULL,
descripcion VARCHAR2(200),
fecha_alta DATE NOT NULL,
FOREIGN KEY (nick_propietario) REFERENCES usuario(nickname) ON DELETE CASCADE,
UNIQUE (nick_propietario),
UNIQUE (nombre)
);
CREATE TABLE tienda_articulo
(
codigo_tienda VARCHAR2(9),
ref_articulo VARCHAR2(9),
PRIMARY KEY (codigo_tienda,ref_articulo),
FOREIGN KEY (codigo_tienda) REFERENCES tienda(codigo),
FOREIGN KEY (ref_articulo) REFERENCES articulo(ref_arti)
);
INSERT INTO usuario VALUES ('natalia_rm', 'Natalia', 'Ruiz', 'Martinez', 'C/ central', '14', 11002, 'Spain', '2007/09/20 15:11:54');
INSERT INTO usuario VALUES ('jermy99', 'Juan Carlos', 'Garcia', 'Gomez', 'C/ vega ', '43', 11101, 'Spain', '2007/07/20 15:19:15');
INSERT INTO usuario VALUES ('klom_54', 'Jose Maria', 'Caballero', 'Sanchez', 'C/ andalus', '5', 11101, 'Spain', '2008/02/01 15:21:16');
INSERT INTO usuario VALUES ('campeon', 'Brush', 'Threepwood', 'Threepwood', 'C/ ron gilbert', '101', 333455, 'Jamaica', '2007/07/19 15:22:21');
INSERT INTO usuario VALUES ('alberto85', 'Alberto', 'Ortega', 'Cala', 'C/ pico del oro', '8', 12345, 'Spain', '2007/02/04 15:30:03');
INSERT INTO usuario VALUES ('anaMar06', 'Ana Maria', 'Forja', 'Carrion', 'C/ manuel de falla', '54', 11101, 'Spain', '2007/05/08 15:40:26');
INSERT INTO usuario VALUES ('holmes2000', 'Arthur', 'Conan', 'Doyle', 'C/ Baker Street', '221b', 75, 'UK', '2007/04/14 15:42:33');
INSERT INTO usuario VALUES ('red2001', 'Rocio', 'Gil', 'Galeano', 'C/ Nueva ', '43 6-C', 12003, 'Spain', '2007/11/15 15:46:43');
INSERT INTO usuario VALUES ('manolito_32', 'Manuel', 'Yabe', 'De los Reyes', 'C/ Gran via', '321', 12203, 'Spain', '2005/02/13 15:48:02');
INSERT INTO usuario VALUES ('JJ_Garcia', 'Juan Jose', 'Garcia', 'Jimenez', 'C/ paseo maritimo', '3', 11101, 'Spain', '2006/01/21 15:49:47');
INSERT INTO articulo VALUES ('0000100C', 'campeon', 'La Fuga de Monkey Island', 'Edicion limitada del popular videojuego.', 2, 25, 333455, 'Jamaica', '2008/01/13 16:00:00', '2008/01/20 16:00:00');
INSERT INTO articulo VALUES ('0000100B', 'campeon', 'The Secret of Monkey Island', 'Edicion limitada del popular videojuego.', 1, 45, 333455, 'Jamaica', '2008/01/13 16:00:00', '2008/01/20 16:00:00');
INSERT INTO articulo VALUES ('0000100A', 'campeon', 'The Curse of Monkey Island', 'Edicion limitada del popular videojuego.', 5, 45, 333455, 'Jamaica', '2008/01/13 16:00:00', '2008/01/20 16:00:00');
INSERT INTO articulo VALUES ('0000201A', 'natalia_rm', 'SONY DSC-w50', 'Camara digital de fotos de 6.1 Megapixel. Incluye memoria.', 5, 150, 12000, 'Spain', '2008/01/27 16:28:53', '2008/01/31 16:29:02');
INSERT INTO articulo VALUES ('0000202A', 'natalia_rm', 'CANON EOS 30D', 'Camara de fotos de 10 Megapixel. Nueva.', 1, 250, 12000, 'Spain', '2008/01/27 16:28:53', '2008/01/31 16:29:02');
INSERT INTO articulo VALUES ('0000320F', 'jermy99', 'Postal Cadiz 1955', 'Postal de la playa de la caleta de 1955', 1, 230, 11101, 'Spain', '2007/08/12 16:41:42', '2007/08/20 16:41:42');
INSERT INTO articulo VALUES ('0000455V', 'klom_54', 'Pack sellos 120', 'Coleccion de 120 sellos de 1950 a 1980', 1, 550, 11101, 'Spain', '2007/05/01 16:44:11', '2007/05/31 16:44:22');
INSERT INTO articulo VALUES ('0000501A', 'alberto85', 'Soldados de plomo 30', '30 figuritas de soldados de plomo', 1, 1300, 12345, 'Spain', '2008/01/01 16:28:53', '2008/01/12 16:29:02');
INSERT INTO transaccion VALUES ('0001A', 'manolito_32', '0000455V', '2005/05/13 15:06:00', 720, 1);
INSERT INTO transaccion VALUES ('0002A', 'JJ_Garcia', '0000202A', '2008/01/30 17:20:24', 275, 1);
INSERT INTO transaccion VALUES ('0003A', 'jermy99', '0000201A', '2008/01/29 18:18:13', 200, 2);
INSERT INTO transaccion VALUES ('0003B', 'holmes2000', '0000201A', '2008/01/30 08:19:48', 225, 1);
INSERT INTO transaccion VALUES ('0004A', 'holmes2000', '0000100A', '2008/01/18 08:32:02', 55, 1);
INSERT INTO transaccion VALUES ('0005A', 'alberto85', '0000100C', '2008/01/30 18:02:05', 50, 2);
INSERT INTO voto VALUES ('001', 'manolito_32', 'klom_54', '0001A', '2007/06/13 17:10:47', 'positivo', 'El paquete ha llegado correctamente.');
INSERT INTO voto VALUES ('002', 'JJ_Garcia', 'natalia_rm', '0002A', '2008/01/31 09:20:56', 'negativo', 'El precio no incluia los gastos de envio. ');
INSERT INTO voto VALUES ('003', 'klom_54', 'manolito_32', '0001A', '2007/06/14 20:43:21', 'positivo', 'El ingreso se realizo desde el primer dia');
INSERT INTO voto VALUES ('010', 'holmes2000', 'natalia_rm', '0003A', '2008/02/02 18:33:04', 'negativo', 'El paquete no llego en buenas condiciones');
INSERT INTO voto VALUES ('011', 'jermy99', 'natalia_rm', '0003B', '2008/02/04 18:33:08', '', 'Todo fue a la perfeccion.');
INSERT INTO voto VALUES ('012', 'campeon', 'holmes2000', '0004A', '2008/01/19 18:47:35', 'positivo', 'Todo correctamente');
INSERT INTO voto VALUES ('013', 'holmes2000', 'campeon', '0004A', '2008/01/20 16:08:35', 'positivo', 'Recibida la transaccion.');
INSERT INTO voto VALUES ('014', 'alberto85', 'campeon', '0005A', '2008/01/30 19:18:21', 'positivo', NULL);
INSERT INTO puja VALUES ('001', 'holmes2000', '0000455V', 1, 570, '2005/05/11 17:03:11');
INSERT INTO puja VALUES ('002', 'red2001', '0000455V', 1, 600, '2005/05/11 17:03:11');
INSERT INTO puja VALUES ('003', 'manolito_32', '0000455V', 1, 720, '2005/05/13 15:06:00');
INSERT INTO puja VALUES ('004', 'anaMar06', '0000320F', 1, 250, '2007/08/13 17:17:54');
INSERT INTO puja VALUES ('005', 'JJ_Garcia', '0000202A', 1, 255, '2008/01/30 17:20:24');
INSERT INTO puja VALUES ('006', 'jermy99', '0000201A', 2, 200, '2008/01/29 18:18:13');
INSERT INTO puja VALUES ('007', 'holmes2000', '0000201A', 1, 225, '2008/01/30 08:19:48');
INSERT INTO puja VALUES ('008', 'holmes2000', '0000100A', 1, 50, '2008/01/17 18:41:02');
INSERT INTO puja VALUES ('009', 'alberto85', '0000100A', 1, 47, '2008/01/18 12:22:19');
INSERT INTO puja VALUES ('010', 'klom_54', '0000100B', 1, 47, '2008/01/16 16:17:00');
INSERT INTO puja VALUES ('011', 'alberto85', '0000100C', 2, 50, '2008/01/15 19:02:09');
INSERT INTO puja VALUES ('012', 'anaMar06', '0000100C', 1, 30, '2008/01/16 21:02:13');
INSERT INTO puja VALUES ('013', 'red2001', '0000100C', 2, 32, '2008/01/16 23:24:18');
INSERT INTO tienda VALUES ('00001', 'campeon', 'LeChuck Shop', 'Videojuegos de segunda mano', '2006/02/08 16:07:53');
INSERT INTO tienda VALUES ('00002', 'natalia_rm', 'Digital Shop', 'Todo sobre el mundo de las videocamaras.', '2008/01/21 16:07:53');
INSERT INTO tienda_articulo VALUES ('00001', '0000100A');
INSERT INTO tienda_articulo VALUES ('00001', '0000100B');
INSERT INTO tienda_articulo VALUES ('00001', '0000100C');
INSERT INTO tienda_articulo VALUES ('00002', '0000201A');
INSERT INTO tienda_articulo VALUES ('00002', '0000202A');
Pues ahí está. Espero que a alguien le pueda ser de utilidad.
Un saludo!