background image

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

background image

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