1
H:\INNE\P \06. semestr\Bazy Danych\LABORATORIUM\2010-03-03\KOD_SQL server.sql
--select * from pracownicy;
select
nazwisko
,
imie
from
pracownicy
;
/*aliasowanie danych */
select
nazwisko "naz 8weqe"
,
imie IMIE
;
--sortowanie danych
select
imie
,
nazwisko
from
pracownicy
--bez rednika !!!
order by
imie
;
--sortowanie 2-poziomowe
select
imie
,
nazwisko
from
pracownicy
--bez rednika !!!
order by
nazwisko
,
imie
;
--sortowanie malej ce
select
imie
,
nazwisko
from
pracownicy
--bez rednika !!!
order by
nazwisko
desc
,
imie
asc
;
--nazwisko malej co, imie rosno co
--
select
nazwisko
,
imie
,
wiek
from
pracownicy
order by
wiek
desc
;
--pomini cie dubluj cych si rekordów -
owo kluczowe distinct - dzia a w ca ym rekordzie
select distinct
nazwisko
,
wiek
from
pracownicy
order by
nazwisko
desc
;
--sklejanie kolumn - np tworzenie maila
select
imie
+
'.'
+
nazwisko
+
'@firma.com'
from
pracownicy
order by
imie
;
--wycinanie rekordów -
owo where - musi by warynek true/false
select
*
from
pracownicy
where
wiek
>
30
AND
wiek
<
45
;
--sprawdzanie czy null (is lub is not)
select
*
from
pracownicy
where
wiek
is not null;
--sprawdzanie czy co jest równe?
select
*
from
pracownicy
where
imie
=
'jan'
;
/*sprawdzanie czy jest ciag znaków w nazwie -
owo like, oraz %
zawiera o w nazwie i ko czy si na i : '%o%i'*/
select
*
from
pracownicy
where
nazwisko
like
'%o%i'
;
/*sprawdzanie czy zawiera si w przedziale, between, przyjmuje oba
kra ce zakresu wi c jest wi ksze b
równe*/
select
*
from
pracownicy
where
wiek
between
30
and
40
;
/*Aliasowanie kolumny wed ug warto ci
operacja CASE, wykonuje wed ug kolejno ci, end ko czy case */
select
imie
+
' '
+
nazwisko
,
wiek
,
case
when
wiek
<=
25
then
'mlody'
when
wiek
<
50
then
'sredni'
when
wiek
>=
50
then
'stary'
else
'nie mam pojecia'
end
"ALIAS KOLUMNY"
-- ca y case jest definicj jednej kolumny
from
pracownicy
;
/*aby zwróci kilka pierwszych 2 rekordów, dla nazwisk zaczynaj cych
si na N*/
select top
2
*
from
pracownicy
where
nazwisko
like
'N%'
;
/*aby zwróci
50% rekordów, */
select top
50
percent
*
from
pracownicy
/*trzy osoby, które zosta y najpó niej zatreudnione*/
select top
50
percent
*
from
pracownicy
2
H:\INNE\P \06. semestr\Bazy Danych\LABORATORIUM\2010-03-03\KOD_SQL server.sql
order by
pracID
desc
;
/*Agregacja globalna, chcemy zwróci ilo
rekordów*/
select
count
(*)
from
pracownicy
where
nazwisko
like
'N%'
-- agregacja na ko cu, najpierw wycinanie, pó niej zliczanie
select
COUNT
(
imie
)
from
pracownicy
select
COUNT
(
wiek
)
from
pracownicy
-- null nie jest uwzgl dniane
/* rednia wieku*/
select
AVG
(
wiek
)
from
pracownicy
--lub
select
SUM
(
wiek
)/
COUNT
(
wiek
)
from
pracownicy
/*min, max*/
select
MIN
(
wiek
)
'MINIMUM'
,
MAX
(
wiek
)
'MAKSIMUM'
from
pracownicy
/*po
czenie dwóch tabel*/
select
*
from
pracownicy
select
*
from
dzialy
;
select
nazwa
,
imie
,
nazwisko
from
pracownicy
join
dzialy
/*co z czym*/
on
/*warunek*/
pracownicy
.
dzialID
=
dzialy
.
dzialID