Back to posts Edit this post
Copy content

13 Jan 12:02

BD 8
rem rem $Header: PLdemobld.sql.0,v 00001 91/09/21 11:15:45 rem set termout on rem host write sys$output "Konstrukcja relacji demonstracyjnych. Prosze czekac" host echo "Konstrukcja relacji demonstracyjnych. Prosze czekac" set feedback on DROP TABLE PRACOWNICY cascade constraints; DROP TABLE ZESPOLY cascade constraints; DROP TABLE ETATY cascade constraints; CREATE TABLE ZESPOLY (ID_ZESP NUMBER(4) CONSTRAINT PK_ZESP PRIMARY KEY, NAZWA VARCHAR2(20), ADRES VARCHAR2(20) ); CREATE TABLE ETATY ( NAZWA VARCHAR2(10) CONSTRAINT PK_ETAT PRIMARY KEY, PLACA_MIN NUMBER(6,2), PLACA_MAX NUMBER(6,2)); CREATE TABLE PRACOWNICY (ID_PRAC NUMBER(6) CONSTRAINT PK_PRAC PRIMARY KEY, NAZWISKO VARCHAR2(15), ETAT VARCHAR2(10) CONSTRAINT FK_ETAT REFERENCES ETATY(NAZWA), ID_SZEFA NUMBER(6) CONSTRAINT FK_ID_SZEFA REFERENCES PRACOWNICY(ID_PRAC), ZATRUDNIONY DATE, PLACA_POD NUMBER(6,2) CONSTRAINT MIN_PLACA_POD CHECK(PLACA_POD>100), PLACA_DOD NUMBER(6,2), ID_ZESP NUMBER(4) CONSTRAINT FK_ID_ZESP REFERENCES ZESPOLY(ID_ZESP)); INSERT INTO ZESPOLY VALUES (10,'ADMINISTRACJA', 'PIOTROWO 3A'); INSERT INTO ZESPOLY VALUES (20,'SYSTEMY ROZPROSZONE','PIOTROWO 3A'); INSERT INTO ZESPOLY VALUES (30,'SYSTEMY EKSPERCKIE', 'STRZELECKA 14'); INSERT INTO ZESPOLY VALUES (40,'ALGORYTMY', 'WLODKOWICA 16'); INSERT INTO ZESPOLY VALUES (50,'BADANIA OPERACYJNE', 'MIELZYNSKIEGO 30'); INSERT INTO ETATY VALUES ('PROFESOR' ,800.00,1500.00); INSERT INTO ETATY VALUES ('ADIUNKT' ,510.00, 750.00); INSERT INTO ETATY VALUES ('ASYSTENT' ,300.00, 500.00); INSERT INTO ETATY VALUES ('STAZYSTA' ,150.00, 250.00); INSERT INTO ETATY VALUES ('SEKRETARKA',270.00, 450.00); INSERT INTO ETATY VALUES ('DYREKTOR' ,1280.00,2100.00); INSERT INTO PRACOWNICY VALUES (100,'WEGLARZ' ,'DYREKTOR' ,NULL,to_date('01-01-1968','DD-MM-YYYY'),1730.00,420.50,10); INSERT INTO PRACOWNICY VALUES (110,'BLAZEWICZ' ,'PROFESOR' ,100 ,to_date('01-05-1973','DD-MM-YYYY'),1350.00,210.00,40); INSERT INTO PRACOWNICY VALUES (120,'SLOWINSKI' ,'PROFESOR' ,100 ,to_date('01-09-1977','DD-MM-YYYY'),1070.00, NULL,30); INSERT INTO PRACOWNICY VALUES (130,'BRZEZINSKI' ,'PROFESOR' ,100 ,to_date('01-07-1968','DD-MM-YYYY'), 960.00, NULL,20); INSERT INTO PRACOWNICY VALUES (140,'MORZY' ,'PROFESOR' ,130 ,to_date('15-09-1975','DD-MM-YYYY'), 830.00,105.00,20); INSERT INTO PRACOWNICY VALUES (150,'KROLIKOWSKI','ADIUNKT' ,130 ,to_date('01-09-1977','DD-MM-YYYY'), 645.50, NULL,20); INSERT INTO PRACOWNICY VALUES (160,'KOSZLAJDA' ,'ADIUNKT' ,130 ,to_date('01-03-1985','DD-MM-YYYY'), 590.00, NULL,20); INSERT INTO PRACOWNICY VALUES (170,'JEZIERSKI' ,'ASYSTENT' ,130 ,to_date('01-10-1992','DD-MM-YYYY'), 439.70, 80.50,20); INSERT INTO PRACOWNICY VALUES (190,'MATYSIAK' ,'ASYSTENT' ,140 ,to_date('01-09-1993','DD-MM-YYYY'), 371.00, NULL,20); INSERT INTO PRACOWNICY VALUES (180,'MAREK' ,'SEKRETARKA',100 ,to_date('20-02-1985','DD-MM-YYYY'), 410.20, NULL,10); INSERT INTO PRACOWNICY VALUES (200,'ZAKRZEWICZ' ,'STAZYSTA' ,140 ,to_date('15-07-1994','DD-MM-YYYY'), 208.00, NULL,30); INSERT INTO PRACOWNICY VALUES (210,'BIALY' ,'STAZYSTA' ,130 ,to_date('15-10-1993','DD-MM-YYYY'), 250.00,170.60,30); INSERT INTO PRACOWNICY VALUES (220,'KONOPKA' ,'ASYSTENT' ,110 ,to_date('01-10-1993','DD-MM-YYYY'), 480.00, NULL,20); INSERT INTO PRACOWNICY VALUES (230,'HAPKE' ,'ASYSTENT' ,120 ,to_date('01-09-1992','DD-MM-YYYY'), 480.00, 90.00,30); COMMIT; set termout on set feedback on select '' as Zadanie_1 from dual; insert into PRACOWNICY (ID_PRAC, NAZWISKO, ETAT, ZATRUDNIONY, PLACA_POD, ID_ZESP) values (250, 'KOWALSKI', 'ASYSTENT', TO_DATE('2015-01-13', 'YYYY-MM-DD'), 1500, 10); insert into PRACOWNICY (ID_PRAC, NAZWISKO, ETAT, ZATRUDNIONY, PLACA_POD, ID_ZESP) values (260, 'ADAMSKI', 'ASYSTENT', TO_DATE('2014-09-10', 'YYYY-MM-DD'), 1500, 10); insert into PRACOWNICY (ID_PRAC, NAZWISKO, ETAT, ZATRUDNIONY, PLACA_POD, PLACA_DOD, ID_ZESP) values (270, 'NOWAK', 'ADIUNKT', TO_DATE('1990-05-01', 'YYYY-MM-DD'), 2050, 540, 20); select * from PRACOWNICY WHERE ID_PRAC > 240; select '' as Zadanie_2 from dual; update PRACOWNICY set PLACA_POD = PLACA_POD * 1.10, PLACA_DOD = CASE WHEN placa_dod IS NULL THEN 100 ELSE placa_dod * 1.2 END WHERE ID_PRAC > 240; select * from PRACOWNICY WHERE ID_PRAC > 240; select '' as Zadanie_3 from dual; insert into ZESPOLY (ID_ZESP, NAZWA, ADRES) values (60, 'BAZY DANYCH', 'PIOTROWO 2'); select * from ZESPOLY where ID_ZESP = 60; select '' as Zadanie_4 from dual; update PRACOWNICY set ID_ZESP = (select ID_ZESP from ZESPOLY where NAZWA = 'BAZY DANYCH') where ID_PRAC in (250, 260, 270); SELECT * FROM PRACOWNICY WHERE ID_zesp = 60; select '' as Zadanie_5 from dual; update PRACOWNICY set ID_SZEFA = (select ID_PRAC from PRACOWNICY where NAZWISKO = 'MORZY') where ID_ZESP = 60; SELECT * FROM PRACOWNICY WHERE ID_SZEFA = (select ID_PRAC from PRACOWNICY where NAZWISKO = 'MORZY') order by id_prac asc; select '' as Zadanie_6 from dual; delete from ZESPOLY where NAZWA = 'BAZY DANYCH'; select '' as Zadanie_7 from dual; delete from PRACOWNICY where ID_ZESP = (select ID_ZESP from ZESPOLY where NAZWA = 'BAZY DANYCH'); delete from ZESPOLY where NAZWA = 'BAZY DANYCH'; Select * from pracownicy where id_zesp = 60; select * from ZESPOLY where id_zesp = 60; select '' as Zadanie_8 from dual; SELECT NAZWISKO, PLACA_POD, ROUND(0.1 * (SELECT AVG(PLACA_POD) FROM PRACOWNICY p2 WHERE p2.ID_ZESP = p1.ID_ZESP), 2) AS PODWYZKA FROM PRACOWNICY p1 order by p1.nazwisko asc; select '' as Zadanie_9 from dual; UPDATE PRACOWNICY p1 SET PLACA_POD = PLACA_POD + ROUND(0.10 * (SELECT AVG(PLACA_POD) FROM PRACOWNICY p2 WHERE p2.ID_ZESP = p1.ID_ZESP), 2); select nazwisko, placa_pod from PRACOWNICY order by nazwisko asc; select '' as Zadanie_10 from dual; select * from PRACOWNICY where PLACA_POD = (select MIN(PLACA_POD) from PRACOWNICY); select '' as Zadanie_11 from dual; update PRACOWNICY set PLACA_POD = ROUND((select AVG(PLACA_POD) from PRACOWNICY), 2) where PLACA_POD = (select MIN(PLACA_POD) from PRACOWNICY); select * from PRACOWNICY where ID_PRAC = 200; select '' as Zadanie_12 from dual; SELECT NAZWISKO, PLACA_DOD FROM PRACOWNICY WHERE ID_ZESP = 20 ORDER BY NAZWISKO ASC; update PRACOWNICY set PLACA_DOD = (select AVG(PLACA_POD) from PRACOWNICY where ID_SZEFA = (select ID_PRAC from PRACOWNICY where NAZWISKO = 'MORZY')) where ID_ZESP = 20; SELECT NAZWISKO, PLACA_DOD FROM PRACOWNICY WHERE ID_ZESP = 20 ORDER BY NAZWISKO ASC; select '' as Zadanie_13 from dual; SELECT NAZWISKO, PLACA_POD FROM PRACOWNICY WHERE ID_ZESP = (select ID_ZESP from ZESPOLY where NAZWA = 'SYSTEMY ROZPROSZONE') ORDER BY NAZWISKO ASC; update PRACOWNICY p set PLACA_POD = PLACA_POD * 1.25 where ID_ZESP = (select ID_ZESP from ZESPOLY where NAZWA = 'SYSTEMY ROZPROSZONE'); SELECT NAZWISKO, PLACA_POD FROM PRACOWNICY WHERE ID_ZESP = (select ID_ZESP from ZESPOLY where NAZWA = 'SYSTEMY ROZPROSZONE') ORDER BY NAZWISKO ASC; select '' as Zadanie_14 from dual; SELECT p1.NAZWISKO AS PRACOWNIK, p2.NAZWISKO AS SZEF FROM PRACOWNICY p1 JOIN PRACOWNICY p2 ON p1.ID_SZEFA = p2.ID_PRAC WHERE p2.NAZWISKO = 'MORZY'; delete from PRACOWNICY where ID_SZEFA = (select ID_PRAC from PRACOWNICY where NAZWISKO = 'MORZY'); SELECT p1.NAZWISKO AS PRACOWNIK, p2.NAZWISKO AS SZEF FROM PRACOWNICY p1 JOIN PRACOWNICY p2 ON p1.ID_SZEFA = p2.ID_PRAC WHERE p2.NAZWISKO = 'MORZY'; select '' as Zadanie_15 from dual; select * from PRACOWNICY order by nazwisko asc; rem Sekwencje Zadania select '' as Zadanie_16 from dual; create sequence PRAC_SEQ start with 300 increment by 10; select '' as Zadanie_17 from dual; insert into PRACOWNICY (ID_PRAC, NAZWISKO, ETAT, PLACA_POD) values (PRAC_SEQ.NEXTVAL, 'Trąbczyński', 'STAZYSTA', 1000); SELECT * FROM PRACOWNICY WHERE NAZWISKO = 'Trąbczyński'; select '' as Zadanie_18 from dual; update PRACOWNICY set PLACA_DOD = PRAC_SEQ.currval where NAZWISKO = 'Trąbczyński'; SELECT * FROM PRACOWNICY WHERE NAZWISKO = 'Trąbczyński'; select '' as Zadanie_19 from dual; delete from PRACOWNICY where NAZWISKO = 'Trąbczyński'; SELECT * FROM PRACOWNICY WHERE NAZWISKO = 'Trąbczyński'; select '' as Zadanie_20 from dual; create sequence MALA_SEQ start with 1 increment by 1 maxvalue 10; DELETE FROM PRACOWNICY WHERE ID_PRAC <= 10; SELECT * FROM PRACOWNICY; INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, PLACA_POD) VALUES (MALA_SEQ.NEXTVAL, 'Pracownik_', 1000); select '' as Zadanie_21 from dual; drop sequence MALA_SEQ; DROP SEQUENCE PRAC_SEQ;

No files