Você está na página 1de 5

LABORATRIO 1 SQL.

6) INSERT INTO PROJETO_FUNCIONARIO VALUES(1,5,TO_DATE('12/05/2011','DD/MM/RR'),NULL); INSERT INTO PROJETO_FUNCIONARIO VALUES(1,6,TO_DATE('13/05/2011','DD/MM/RR'),NULL); INSERT INTO PROJETO_FUNCIONARIO VALUES(2,7,TO_DATE('14/05/2011','DD/MM/RR'),NULL); INSERT INTO PROJETO_FUNCIONARIO VALUES(2,11,TO_DATE('13/05/2011','DD/MM/RR'),NULL); INSERT INTO PROJETO_FUNCIONARIO VALUES(2,10,TO_DATE('13/05/2011','DD/MM/RR'),NULL); 7) UPDATE PROJETO_FUNCIONARIO P SET P.DATA_INICIO = TO_DATE('01/01/2011','DD/MM/RR') WHERE P.NUM_PROJETO=1 AND MATRICULA = 4; UPDATE PROJETO_FUNCIONARIO P SET P.DATA_INICIO = TO_DATE('01/01/2011','DD/MM/RR') WHERE P.NUM_PROJETO=2 AND MATRICULA = 7; 8) DELETE FROM PROJETO_FUNCIONARIO WHERE MATRICULA=11 AND NUM_PROJETO=2; DELETE FROM PROJETO_FUNCIONARIO WHERE MATRICULA=6 AND NUM_PROJETO=1;4; 9) SELECT F.MATRICULA, F.NOM_FUNCIONARIO, F.DATA_NASCIMENTO, F.ID_CARGO, F.ID_DEPARTAMENTO,P.NUM_PROJETO,P.NOM_PROJETO FROM FUNCIONARIO F INNER JOIN PROJETO_FUNCIONARIO PF ON F.MATRICULA=PF.MATRICULA INNER JOIN PROJETO P ON PF.NUM_PROJETO=P.NUM_PROJETO; 10) SELECT P.NOM_PROJETO, F.NOM_FUNCIONARIO FROM FUNCIONARIO F INNER JOIN PROJETO_FUNCIONARIO PF ON F.MATRICULA=PF.MATRICULA INNER JOIN PROJETO P ON PF.NUM_PROJETO=P.NUM_PROJETO; 11) SELECT P.NOM_PROJETO, F.NOM_FUNCIONARIO FROM FUNCIONARIO F RIGHT JOIN PROJETO_FUNCIONARIO PF ON F.MATRICULA=PF.MATRICULA RIGHT JOIN PROJETO P ON PF.NUM_PROJETO=P.NUM_PROJETO WHERE NOM_FUNCIONARIO IS NULL; 12) SELECT P.NOM_PROJETO, F.NOM_FUNCIONARIO FROM FUNCIONARIO F LEFT JOIN PROJETO_FUNCIONARIO PF ON F.MATRICULA=PF.MATRICULA

LEFT JOIN PROJETO P ON PF.NUM_PROJETO=P.NUM_PROJETO WHERE NOM_PROJETO IS NULL; LABORATRIO 2 SQL. 1) CREATE TABLE TIPO_CUSTO ( COD_TIPO_CUSTO INTEGER CONSTRAINT COD_TIPO_CUSTO NOT NULL, DES_CUSTO VARCHAR2(20), CONSTRAINT COD_TIPO_CUSTO_PK PRIMARY KEY(COD_TIPO_CUSTO) ); 2) CREATE TABLE PROJETO_CUSTO ( NUM_PROJETO INTEGER CONSTRAINT NUM_PROJETO_NOT_NULL NOT NULL, COD_TIPO_CUSTO INTEGER CONSTRAINT COD_TIPO_CUSTO_NOT_NUL NOT NULL, VAL_CUSTO INTEGER, CONSTRAINT PROJETO_CUSTO_PK PRIMARY KEY (NUM_PROJETO,COD_TIPO_CUSTO) ); 3) ALTER TABLE "PROJETO_CUSTO" ADD CONSTRAINT "FK_NUM_PROJETO" FOREIGN KEY ("NUM_PROJETO") REFERENCES "PROJETO" ("NUM_PROJETO") ON DELETE CASCADE; ALTER TABLE "PROJETO_CUSTO" ADD CONSTRAINT "FK_COD_TIPO_CUSTO" FOREIGN KEY ("COD_TIPO_CUSTO") REFERENCES "TIPO_CUSTO" ("COD_TIPO_CUSTO") ON DELETE CASCADE; 4) ALTER TABLE "TIPO_CUSTO" RENAME COLUMN "DES_CUSTO" TO "DESC_CUSTO"; ALTER TABLE "TIPO_CUSTO" MODIFY ("DES_CUSTO" VARCHAR2(50)); 5) ALTER TABLE "PROJETO_CUSTO" MODIFY ("VAL_CUSTO" NUMBER(10,2)); 6) INSERT INTO TIPO_CUSTO(COD_TIPO_CUSTO, DESC_CUSTO) VALUES(1,'MAO DE OBRA'); INSERT INTO TIPO_CUSTO(COD_TIPO_CUSTO, DESC_CUSTO) VALUES(2,'MATERIAL DE LIMPEZA'); INSERT INTO TIPO_CUSTO(COD_TIPO_CUSTO, DESC_CUSTO) VALUES(3,'MATERIAL DE ESCRITORIO'); 7) INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (1,1,10000); INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (1,2,1123.90); INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (1,3,1250.23);

INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (2,1,12500); INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (2,2,500); INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (2,3,1255.43); INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (3,2,1500); INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (3,1,200000); INSERT INTO PROJETO_CUSTO(NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES (3,3,24555); 8) DELETE FROM PROJETO WHERE NUM_PROJETO=1;

9) SELECT PC.NUM_PROJETO, SUM(PC.VAL_CUSTO) FROM PROJETO_CUSTO PC GROUP BY PC.NUM_PROJETO; 10) UPDATE ( SELECT * FROM PROJETO_CUSTO PC INNER JOIN PROJETO P ON PC.NUM_PROJETO=P.NUM_PROJETO WHERE P.DATA_FIM < SYSDATE OR P.DATA_FIM IS NULL ) TEMP SET VAL_CUSTO = VAL_CUSTO*1.06 11) SELECT PC.NUM_PROJETO, SUM(PC.VAL_CUSTO) FROM PROJETO_CUSTO PC GROUP BY PC.NUM_PROJETO;

LABORATRIO 3 SQL 1) UPDATE PROJETO SET DATA_FIM = TO_DATE('20/05/2011','DD/MM/RR') WHERE NUM_PROJETO=2; 2) UPDATE ( SELECT * FROM PROJETO_FUNCIONARIO PF WHERE PF.NUM_PROJETO=2 )T SET T.DATA_FIM = (SELECT P.DATA_FIM FROM PROJETO P WHERE NUM_PROJETO=2); 3) INSERT INTO PROJETO (NUM_PROJETO, NOM_PROJETO, DATA_INICIO) VALUES (4,'PROJETO DOS ALUNOS', SYSDATE); 4) BEGIN FOR F2 IN (SELECT MATRICULA FROM PROJETO_FUNCIONARIO PF WHERE PF.NUM_PROJETO=2) LOOP INSERT INTO PROJETO_FUNCIONARIO(NUM_PROJETO, MATRICULA, DATA_FIM) VALUES (4, F2.MATRICULA, SYSDATE); END LOOP; END; 5) BEGIN FOR P2 IN (SELECT PC.VAL_CUSTO, PC.COD_TIPO_CUSTO FROM PROJETO_CUSTO PC INNER JOIN TIPO_CUSTO TC ON PC.COD_TIPO_CUSTO = TC.COD_TIPO_CUSTO WHERE NUM_PROJETO=2) LOOP INSERT INTO PROJETO_CUSTO (NUM_PROJETO, COD_TIPO_CUSTO, VAL_CUSTO) VALUES(4,P2.COD_TIPO_CUSTO,P2.VAL_CUSTO); END LOOP; END; 6) UPDATE ( SELECT * FROM PROJETO_CUSTO PC INNER JOIN PROJETO P ON PC.NUM_PROJETO=P.NUM_PROJETO WHERE PC.NUM_PROJETO=2 ) TEMP SET VAL_CUSTO = VAL_CUSTO*1.11 7) BEGIN FOR PC2 IN (SELECT PC.VAL_CUSTO, PC.COD_TIPO_CUSTO FROM PROJETO_CUSTO PC INNER JOIN PROJETO P ON PC.NUM_PROJETO=P.NUM_PROJETO WHERE PC.NUM_PROJETO=2) LOOP UPDATE PROJETO_CUSTO PC

SET PC.VAL_CUSTO=PC2.VAL_CUSTO WHERE PC.NUM_PROJETO=4 AND PC.COD_TIPO_CUSTO=PC2.COD_TIPO_CUSTO; END LOOP; END;

Você também pode gostar