sql_5.txt

(3 KB) Pobierz
select * from osoby 
union 
select * from osoby; - sumuje dwa typy

---------------------------------------------------------------------------

select * from osoby 
minus 
select * from osoby; - usuwa wspolne wiersze

---------------------------------------------------------------------------

select * from osoby 
intersect
select * from osoby;

---------------------------------------------------------------------------

select o.*, sysdate - d_ur wiek from osoby o; - pokazuje wiek w dniach

trunc (sysdate - d_ur) przycina
round (sysdate - d_ur) zaokkragla liczbe


---------------------------------------------------------------------------

Funkcje agregujace:

select avg(pensja) from zatrudnienia; - pokazuje w jednej kolumnie srednia pensji

AVG()
SUM() 
MAX()
MIN()
CoUNT() - zlicza

------------------------------------------------------------------------------------

select avg(pensja) s, max(pensja) m, count(*) from zatrudnienia; - wypisuje srednia. max 
								  i zlicza ilosc wierszy
------------------------------------------------------------------------------------

cout(do) zlicza kolumny rozne od null

------------------------------------------------------------------------------------

select avg(pensja) s, max(pensja) m, count(*) from zatrudnienia group by id_w; - grupuje 
									wedlug wydzialow
-------------------------------------------------------------------------------------

select avg(pensja) s, max(pensja) m, count(id_z), id_w from zatrudnienia group by id_w, id_s;

------------------------------------------------------------------------------------

having - odpowiednik were w funkcjach grupujacych

------------------------------------------------------------------------------------

select avg(pensja) s, max(pensja) m, count(id_z), id_w, id_s from zatrudnienia group by id_w, id_s having id_w=3;
 - dodatkowo ogranicza do 3, wydzialu

------------------------------------------------------------------------------------

select avg(pensja) s, max(pensja) m, count(id_z), id_w, id_s 
from zatrudnienia 
where do is null
group by id_w, id_s 
having id_w=3;

wywala komorki gdzie w kolumnie do jest NULL

-------------------------------------------------------------------------------------

having max(pensja)>3000; - wypisuje powyzej 3000

-------------------------------------------------------------------------------------

select o.nazwisko, z.od, z.do, z.pensja, o.id_os
from osoby o, zatrudnienia z
where o.id_os = z.id_os;

zlancza typy osoby i zatrudnienia

-------------------------------------------------------------------------------------

select o.nazwisko, z.od, z.do, z.pensja, o.id_os
from osoby o, zatrudnienia z
where o.id_os(+) = z.id_os;
union
select o.nazwisko, z.od, z.do, z.pensja, o.id_os
from osoby o, zatrudnienia z
where o.id_os = z.id_os(+);

uzupelnia tam gdzie jest null w kolumnie od, do

--------------------------------------------------------------------------------------

select o.nazwisko, z.od, z.do, z.pensja, o.id_os
from osoby o, zatrudnienia z
where o.id_os = z.id_os and z.do is null;

wyswietla tych ktorzy nadal pracuja

---------------------------------------------------------------------------------------

select o.nazwisko, z.od, z.do, z.pensja, w.nazwa
from osoby o, zatrudnienia z, wydzialy w
where o.id_os = z.id_os and z.do is null and w.id_w = z.id_w;

pokazuje dodatkowo nazwy wydzialow

---------------------------------------------------------------------------------------

select o.nazwisko, z.od, z.do, z.pensja, w.nazwa
from osoby o join zatrudnienia z on o.id_os=z.id_os join wydzialy w on w.id_w=z.id_w
where z.do is null; 

--------------------------------------------------------------------------------------

select o.nazwisko, z.od, z.do, z.pensja
from osoby o join zatrudnienia z on o.id_os=z.id_os
where z.do is null; 

laczy osoby z zatrudnieniem w jedno
Zgłoś jeśli naruszono regulamin