Back to posts Edit this post
Copy content

13 Jan 12:03

dsada
SELECT '' AS ZADANIE_1 FROM dual; INSERT INTO pracownicy (id_prac, nazwisko, etat, id_szefa, zatrudniony, placa_pod, placa_dod, id_zesp) SELECT 250, 'KOWALSKI', 'ASYSTENT', NULL, TO_DATE('13/01/2015', 'DD/MM/YYYY'), 1500, NULL, 10 FROM dual UNION ALL SELECT 260, 'ADAMSKI', 'ASYSTENT', NULL, TO_DATE('10/09/2014', 'DD/MM/YYYY'), 1500, NULL, 10 FROM dual UNION ALL SELECT 270, 'NOWAK', 'ADIUNKT', NULL, TO_DATE('01/05/1990', 'DD/MM/YYYY'), 2050, 540, 20 FROM dual; /* Wyświetlanie do ZAD1 */ SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp FROM pracownicy ORDER BY id_prac DESC FETCH FIRST 3 ROWS ONLY; SELECT '' AS ZADANIE_2 FROM dual; UPDATE pracownicy SET placa_pod = placa_pod*1.1, placa_dod=CASE WHEN placa_dod IS NULL THEN 100 ELSE placa_dod*1.2 END WHERE id_prac BETWEEN 250 AND 270; /* Wyświetlanie do ZAD2 */ SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp FROM pracownicy WHERE id_prac BETWEEN 250 AND 270; SELECT '' AS ZADANIE_3 FROM dual; INSERT INTO ZESPOLY (id_zesp, nazwa, adres) VALUES (60, 'BAZY DANYCH', 'PIOTROWO 2'); /* Wyświetlanie do ZAD3 */ 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 BETWEEN 250 AND 270; /* Wyświetlanie do ZAD4 */ SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp FROM pracownicy WHERE id_prac BETWEEN 250 AND 270; SELECT '' AS ZADANIE_5 FROM dual; UPDATE pracownicy SET ID_SZEFA = (SELECT id_prac FROM pracownicy WHERE nazwisko = 'MORZY') WHERE id_prac BETWEEN 250 AND 270; /* Wyświetlanie do ZAD5 */ SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp FROM pracownicy WHERE id_szefa = (SELECT id_prac FROM pracownicy WHERE nazwisko = 'MORZY') ORDER BY id_prac; SELECT '' AS ZADANIE_6 FROM dual; DELETE FROM zespoly WHERE nazwa IN ('BAZY DANYCH'); SELECT * from zespoly; /* Nie bo w zespole BAZY DANYCH mamy pracownikow */ SELECT '' AS ZADANIE_7 FROM dual; DELETE FROM pracownicy WHERE nazwisko IN ('KOWALSKI', 'ADAMSKI', 'NOWAK'); DELETE FROM zespoly WHERE nazwa IN ('BAZY DANYCH'); SELECT * from zespoly WHERE nazwa = 'BAZY DANYCH'; SELECT * from pracownicy WHERE id_zesp = 60; SELECT '' AS ZADANIE_8 FROM dual; SELECT p.nazwisko, p.placa_pod, (SELECT AVG(p1.placa_pod) FROM pracownicy p1 WHERE p1.ID_ZESP = p.id_Zesp) *0.1 AS podwyzka FROM pracownicy p ORDER BY p.nazwisko; SELECT '' AS ZADANIE_9 FROM dual; UPDATE pracownicy p SET placa_pod = PLACA_POD + (SELECT AVG(p1.placa_pod) FROM pracownicy p1 WHERE p1.ID_ZESP = p.id_Zesp) *0.1; SELECT nazwisko, placa_pod FROM pracownicy ORDER BY NAZWISKO; SELECT '' AS ZADANIE_10 FROM dual; SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp FROM pracownicy ORDER BY placa_pod FETCH FIRST 1 ROWS ONLY; SELECT '' AS ZADANIE_11 FROM dual; UPDATE pracownicy SET placa_pod = (SELECT ROUND(AVG(placa_pod),2) FROM pracownicy) WHERE id_prac = (SELECT id_prac FROM pracownicy ORDER BY placa_pod FETCH FIRST 1 ROWS ONLY); -- wysiwetlanie SELECT id_prac, nazwisko, etat, id_szefa, TO_CHAR(zatrudniony, 'YYYY-MM-DD') AS zatrudniony, placa_pod, placa_dod, id_zesp FROM pracownicy WHERE id_prac = 200; SELECT '' AS ZADANIE_12 FROM dual; 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; SELECT '' AS ZADANIE_13 FROM dual; UPDATE pracownicy p SET p.placa_pod = p.placa_pod * 1.25 WHERE p.id_zesp IN ( SELECT z.id_zesp FROM zespoly z WHERE z.nazwa = 'SYSTEMY ROZPROSZONE' ); SELECT p.nazwisko, p.placa_pod FROM pracownicy p JOIN zespoly z ON p.id_zesp = z.id_Zesp WHERE z.nazwa = 'SYSTEMY ROZPROSZONE' ORDER BY p.nazwisko; SELECT '' AS ZADANIE_14 FROM dual; SELECT p.nazwisko AS pracownik, p1.nazwisko AS SZEF FROM pracownicy p JOIN pracownicy p1 ON p1.id_prac = p.id_szefa WHERE p1.nazwisko = 'MORZY'; DELETE FROM (SELECT p.nazwisko AS pracownik, p1.nazwisko AS SZEF FROM pracownicy p JOIN pracownicy p1 ON p1.id_prac = p.id_szefa WHERE p1.nazwisko = 'MORZY'); SELECT '' AS ZADANIE_15 FROM dual; SELECT * FROM pracownicy ORDER BY nazwisko; 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ąbaczyński','STAZYSTA', 1000); SELECT * FROM pracownicy where nazwisko = 'Trąbaczyński'; SELECT '' AS ZADANIE_18 FROM dual; UPDATE pracownicy SET placa_dod = prac_seq.currval WHERE nazwisko = 'Trąbaczyński'; SELECT * FROM pracownicy where nazwisko = 'Trąbaczyński'; SELECT '' AS ZADANIE_19 FROM dual; DELETE FORM pracownicy where nazwisko = 'Trąbaczyński'; SELECT '' AS ZADANIE_20 FROM dual; CREATE SEQUENCE mala_seq START WITH 0 INCREMENT BY 1 MAXVALUE 10 MINVALUE 0; SELECT '' AS ZADANIE_21 FROM dual; DROP SEQUENCE mala_seq; DROP SEQUENCE prac_seq;

No files