diff --git a/2/ASGBD/examenes/examen-1er-trimestre.sql b/2/ASGBD/examenes/examen-1er-trimestre.sql new file mode 100644 index 0000000..bb9e322 --- /dev/null +++ b/2/ASGBD/examenes/examen-1er-trimestre.sql @@ -0,0 +1,62 @@ +/* Nicolás A. Ortega Froysa*/ +ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE; + +CREATE TABLESPACE TBSP_COMERCIAL + DATAFILE 'C:\ABD\TS\tbsp_comercial.dbf' + SIZE 1M; +CREATE TABLESPACE TBSP_FABRICA + DATAFILE 'C:\ABD\TS\tbsp_fabrica.dbf' + SIZE 1M; + +CREATE USER COMERCIAL IDENTIFIED BY COMERCIAL + DEFAULT TABLESPACE TBSP_COMERCIAL; +CREATE USER FABRICA IDENTIFIED BY FABRICA + DEFAULT TABLESPACE TBSP_FABRICA; + +DROP TABLE COMERCIAL.clientes; +CREATE TABLE COMERCIAL.clientes( + codigo INT, + nombre VARCHAR(50), + fecha_registro DATE); + +CREATE TABLESPACE TBSP_PEDIDOS + DATAFILE 'C:\ABD\TS\tbsp_pedidos.dbf' + SIZE 1M + AUTOEXTEND ON MAXSIZE 10M; + +DROP TABLE COMERCIAL.pedidos; +CREATE TABLE COMERCIAL.pedidos( + num_pedido INT, + cliente_codigo INT, + articulo_codigo VARCHAR2(20), + precio_total NUMBER, + fecha_pedido DATE) TABLESPACE TBSP_PEDIDOS; + +DROP TABLE FABRICA.articulos; +CREATE TABLE FABRICA.articulos( + codigo_articulo VARCHAR2(20), + fecha_registro_cliente DATE, + nombre VARCHAR2(20) NOT NULL, + precio NUMBER(2), + fecha_pedido DATE); + +REVOKE ALL ON COMERCIAL.pedidos FROM PUBLIC; +GRANT READ ON COMERCIAL.pedidos TO COMERCIAL; + +REVOKE ALL ON COMERCIAL.clientes FROM FABRICA; + +GRANT READ,INSERT,UPDATE,DELETE ON FABRICA.articulos TO COMERCIAL + WITH GRANT OPTION; + +CREATE USER JEFE_COMERCIAL + IDENTIFIED BY JEFE_COMERCIAL + DEFAULT TABLESPACE TBSP_COMERCIAL; +GRANT ALL ON COMERCIAL.pedidos TO JEFE_COMERCIAL + WITH GRANT OPTION; +GRANT ALL ON COMERCIAL.clientes TO JEFE_COMERCIAL + WITH GRANT OPTION; + +SELECT c.nombre, SUM(p.precio_total) + FROM COMERCIAL.pedidos p + JOIN COMERCIAL.clientes c ON p.cliente_codigo=c.codigo + GROUP BY c.nombre; \ No newline at end of file