1 . CREATE TABLE PRAC_KOPIA AS SELECT * FROM PRAC WHERE ETAT='STAZYSTA'
CREATE TABLE succeeded.
2. SELECT DISTINCT ETAT FROM PRAC
ETAT
----------
ADIUNKT
PROFESOR
DYREKTOR
STAZYSTA
ASYSTENT
SEKRETARKA
6 rows selected
3. Wyświetlić pracowników zatrudnionych od 1980 do 1985 roku.
SELECT * FROM PRAC WHERE ZATRUDNIONY BETWEEN to_date('01-01-80','DD-MM-RR') AND to_date('31-12-85','DD-MM-RR')
ID_PRAC NAZWISKO ETAT SZEF ZATRUDNIONY PLACA_POD PLACA_DOD ID_ZESP
---------------------- --------------- ---------- ---------------------- ------------------------- ---------------------- ---------------------- ----------------------
160 GABACKI ADIUNKT 130 85/03/01 1590 20
180 JOTBACKA SEKRETARKA 100 85/02/20 1410,2 10
2 rows selected
4. Wyświetlić średnią płacę na każdym z etatów.
SELECT ETAT,AVG(PLACA_POD) FROM PRAC GROUP BY ETAT
ETAT AVG(PLACA_POD)
---------- ----------------------
ADIUNKT 1617,75
PROFESOR 3052,5
DYREKTOR 2730
STAZYSTA 1229
ASYSTENT 1442,675
SEKRETARKA 1410,2
6 rows selected
Znaleźć etat, na którym zatrudniono pracownika w pierwszej połowie 1984 roku lub w pierwszej połowie 1985
SELECT ETAT FROM PRAC WHERE ZATRUDNIONY BETWEEN to_date('01-01-84','DD-MM-RR') and to_date('15-06-85','DD-MM-RR') or (ZATRUDNIONY BETWEEN to_date('01-01-85','DD-MM-RR') and to_date('15-06-85','DD-MM-RR'))
ETAT
----------
ADIUNKT
SEKRETARKA
2 rows selected
Wyświetlić nazwisko, etat, płacę podstawową pracowników zespołu 10 i 20 zgodnie z alfabetycznym porządkiem nazwisk
SELECT NAZWISKO,ETAT,PLACA_POD FROM PRAC WHERE ID_ZESP=10 OR ID_ZESP=20 ORDER BY NAZWISKO ASC
NAZWISKO ETAT PLACA_POD
--------------- ---------- ----------------------
ABACKI DYREKTOR 2730
DABACKI PROFESOR 2960
EBACKI PROFESOR 2830
FABACKI ADIUNKT 1645,5
GABACKI ADIUNKT 1590
HABACKI ASYSTENT 1439,7
IBACKI ASYSTENT 1371
JOTBACKA SEKRETARKA 1410,2
MABACKI ASYSTENT 1480
9 rows selected
Wyświetlić sumaryczną płacę wszystkich asystentów
SELECT SUM(PLACA_POD) AS "PLACA_SUM" FROM PRAC WHERE ETAT='ASYSTENT'
PLACA_SUM
----------------------
5770,7
1 rows selected
Wyświetlić pracowników, których nazwiska rozpoczynają się od litery M lub P.
SELECT * FROM PRAC WHERE NAZWISKO LIKE 'P%' OR NAZWISKO LIKE 'M%'
ID_PRAC NAZWISKO ETAT SZEF ZATRUDNIONY PLACA_POD PLACA_DOD ID_ZESP
---------------------- --------------- ---------- ---------------------- ------------------------- ---------------------- ---------------------- ----------------------
220 MABACKI ASYSTENT 110 93/10/01 1480 20
1 rows selected
Wyświetlić posortowane nazwiska pracowników zarabiających od 2000 do 3000
SELECT NAZWISKO FROM PRAC WHERE PLACA_POD BETWEEN 2000 AND 3000 ORDER BY NAZWISKO ASC
NAZWISKO
---------------
ABACKI
DABACKI
EBACKI
3 rows selected
Wyświetlić nazwiska pracowników, nazwy i adresy zespołów pracowników, których miesięczna pensja przekracza 2000 PLN.
SELECT P.NAZWISKO,Z.NAZWA,Z.ADRES FROM PRAC P, ZESP Z WHERE P.ID_ZESP=Z.ID_ZESP AND P.PLACA_POD > 2000
NAZWISKO NAZWA ADRES
--------------- -------------------- --------------------
ABACKI ADMINISTRACJA MIKOLAJCZYKA 5
BABACKI AUTOMATYKA SOSNKOWSKIEGO 31
CABACKI BUDOWNICTWO KATOWICKA 14
DABACKI INFORMATYKA SOSNKOWSKIEGO 31
EBACKI INFORMATYKA SOSNKOWSKIEGO 31
5 rows selected
11. Wyświetlić pracowników z ulicy Sosnkowskiego w rosnącym porządku alfabetycznym ich nazwisk.
SELECT * FROM PRAC WHERE ID_ZESP=20 OR ID_ZESP=40 ORDER BY NAZWISKO DESC
ID_PRAC NAZWISKO ETAT SZEF ZATRUDNIONY PLACA_POD PLACA_DOD ID_ZESP
---------------------- --------------- ---------- ---------------------- ------------------------- ---------------------- ---------------------- ----------------------
220 MABACKI ASYSTENT 110 93/10/01 1480 20
190 IBACKI ASYSTENT 140 93/09/01 1371 20
170 HABACKI ASYSTENT 130 92/10/01 1439,7 80,5 20
160 GABACKI ADIUNKT 130 85/03/01 1590 20
150 FABACKI ADIUNKT 130 77/09/01 1645,5 20
140 EBACKI PROFESOR 130 75/09/15 2830 105 20
130 DABACKI PROFESOR 100 68/07/01 2960 20
110 BABACKI PROFESOR 100 73/05/01 3350 210 40
8 rows selected
Zad. 12. Wyświetlić zespoły, które nie zatrudniają pracowników
SELECT ID_ZESP FROM ZESP MINUS SELECT ID_ZESP FROM PRAC
ID_ZESP
----------------------
50
1 rows selected
Zad. 13. Wyświetlić minimalne i maksymalne wynagrodzenie pracowników w poszczególnych grupach etatowych
SELECT NAZWA,PLACA_MIN,PLACA_MAX FROM ETAT
NAZWA PLACA_MIN PLACA_MAX
---------- ---------------------- ----------------------
PROFESOR 2800 4500
ADIUNKT 1510 2750
ASYSTENT 1300 1500
STAZYSTA 650 1250
SEKRETARKA 970 1450
DYREKTOR 2280 3100
6 rows selected
Zad. 14. Wyświetlić liczbę profesorów wśród pracowników
SELECT COUNT(ETAT) FROM PRAC WHERE ETAT='PROFESOR'
COUNT(ETAT)
----------------------
4