background image

P

ODSTAWY J

Ę

ZYKA

SQL

Rodzaje zapyta

ń

background image

S

P

IS
T

R

E

Ś

C

I

Strona tytułowa

Spis tre

ś

ci

Wst

ę

p



J

ę

zyk SQL



Historia SQL



Cele



Bezpiecze

ń

stwo



Terminologia 

Zasady SQL



Zapisywanie polece

ń

 SQL



Podstawowe zapytania w SQL



Wyra

ż

enia arytmetyczne



Priorytet działa

ń



Aliasy kolumn



Operator konkatenacji



Literały 



Warto

ś

c null

NVL
Zmiana warto

ś

ci null



Eliminacja duplikatów



Eliminacja duplikatów



Distinct



Wyspecyfikowanie wzajemne list



Sortowanie: 

Order by
Kolejno

ś

c sortowania

Sortowanie wg kolumn



Where



Operatory:

Operatory logiczne
Operatory SQL
Between…and
In
Like
Is null
Operatory negacji



Tworzenie zło

ż

onych kryteriów



Hierarchia operatorów 



SQL*Plus



Poł

ą

czenie prze MySQL

Bibliografia 

background image

W

ST

Ę

P

Podstawy j

ę

zyka SQL

background image

J

Ę

Z

Y

K

S

Q

L

Czym jest?

Sposób  

przechowywania i 
pobrania danych

SQL (

ang.

Structured Query

Language) – strukturalny 

j

ę

zyk 

zapyta

ń

u

ż

ywany do tworzenia, 

modyfikowania 

baz danych

oraz do 

umieszczania i pobierania danych z 
baz danych.

J

ę

zyk SQL jest 

j

ę

zykiem 

deklaratywnym

. Decyzj

ę

 o sposobie 

przechowywania i pobrania danych 

przechowywania i pobrania danych 
pozostawia si

ę

 

systemowi 

zarz

ą

dzania baz

ą

 danych

(DBMS).

background image

H

IS

T

O

R

IA

S

Q

L

Miejsce i czas 
powstania

SQL został opracowany w 
latach 70. w firmie 

IBM

. Stał 

si

ę

 

standardem

w komunikacji 

serwerami

relacyjnych 

baz 

danych

background image

C

E

L

E

Do czego słu

ż

j

ę

zyk SQL?

Składnia 

J

ę

zyk SQL słu

ż

y do nast

ę

puj

ą

cych 

celów:

specyfikowania zapyta

ń

operowania danymi — DML (Data 
Modification Language) —
wstawiania, modyfikowania i 
usuwania danych z bazy danych,

definiowania danych — DDL (Data 

definiowania danych — DDL (Data 
Definition Language) — dodawania 
do bazy nowych obiektów,

sterowania danymi — DCL (Data 
Control Language) — okre

ś

lania praw 

dost

ę

pu do danych.

background image

D

M

L

Najwa

ż

niejsze 

polecenia ze zbioru 
DML

DML (Data Manipulation Language) 
słu

ż

y do wykonywania operacji na 

danych – do ich umieszczania w 
bazie, kasowania, przegl

ą

dania, 

zmiany. Najwa

ż

niejsze polecenia 

tego zbioru to:



SELECT

– pobranie danych z bazy,



INSERT

– umieszczenie danych w 

bazie,

bazie,



UPDATE

– zmiana danych,



DELETE

– usuni

ę

cie danych z bazy.

Dane tekstowe musz

ą

 by

ć

 zawsze 

uj

ę

te w znaki pojedynczego 

cudzysłowu (').

background image

D

D

L

Najwa

ż

niejsze 

polecenia ze zbioru 
DDL

Dzi

ę

ki DDL (Data Definition

Language) mo

ż

na operowa

ć

 na 

strukturach, w których dane s

ą

 

przechowywane – czyli np. dodawa

ć

zmienia

ć

 i kasowa

ć

 tabele lub bazy. 

Najwa

ż

niejsze polecenia tej grupy 

to:



CREATE

(np. CREATE TABLE, 

CREATE DATABASE, ...) – utworzenie 

CREATE DATABASE, ...) – utworzenie 
struktury (bazy, tabeli, indeksu itp.),



DROP

(np. DROP TABLE, DROP 

DATABASE, ...) – usuni

ę

cie struktury,



ALTER

(np. ALTER TABLE ADD 

COLUMN ...) – zmiana struktury 
(dodanie kolumny do tabeli, zmiana typu 
danych w kolumnie tabeli).

background image

D

C

L

Najwa

ż

niejsze 

polecenia ze zbioru 
CDL

DCL (Data Control Language) ma 
zastosowanie do nadawania 
uprawnie

ń

 do obiektów 

bazodanowych. Najwa

ż

niejsze 

polecenia w tej grupie to:



GRANT

(np. GRANT ALL PRIVILEGES 

ON EMPLOYEE TO PIOTR WITH 
GRANT OPTION) – przyznanie 
wszystkich praw do tabeli EMPLOYEE 

wszystkich praw do tabeli EMPLOYEE 
u

ż

ytkownikowi PIOTR z opcj

ą

 

pozwalaj

ą

c

ą

 mu nadawa

ć

 prawa do tej 

tabeli.



REVOKE

– odebranie u

ż

ytkownikowi 

wszystkich praw do tabeli, które zostały 
przyznane poleceniem GRANT.



DENY

.

background image

B

E

Z

P

IE

C

Z

E

Ń

S

T

W
O

Jak unikn

ą

c SQL 

injection

Jako, 

ż

e SQL jest j

ę

zykiem 

interpretowanym, istnieje mo

ż

liwo

ść

 

nadu

ż

y

ć

 w przypadku konstruowania 

zapyta

ń

 z wykorzystaniem parametrów 

pochodz

ą

cych z zewn

ą

trz aplikacji. 

Szczególnie podatne na ten typ ataku 
s

ą

 tworzone dynamicznie w oparciu o 

SQL-ow

ą

 baz

ę

 danych serwisy 

internetowe. Je

ś

li twórca aplikacji nie 

zadba o sprawdzenie poprawno

ś

ci (tzw. 

zadba o sprawdzenie poprawno

ś

ci (tzw. 

walidacj

ę

) danych wej

ś

ciowych 

stanowi

ą

cych cz

ęść

 zapytania, 

atakuj

ą

cy mo

ż

e by

ć

 w stanie dopisa

ć

 do 

zapytania („wstrzykn

ąć

”) dodatkowe 

komendy lub zmieni

ć

 ich sposób 

działania. Atak taki nosi nazw

ę

 

SQL 

injection

(wstrzykni

ę

cie kodu za 

pomoc

ą

 SQL).

background image

T

ERMINOLOGIA

Termin SQL 

Porównywalna 
cz

ęść

 mowy

Definicja

Przykład

identyfikator

rzeczownik

Nazwa identyfikuj

ą

ca 

obiekt bazy danych, 
na przykład nazwa 
pola.

Klienci.[Numer 
telefonu]

operator

czasownik lub 

Słowo kluczowe 
reprezentuj

ą

ce lub 

AS

operator

przysłówek

reprezentuj

ą

ce lub 

modyfikuj

ą

ce akcj

ę

.

AS

stała

rzeczownik

Warto

ść

 nie 

ulegaj

ą

ca zmianie, 

na przykład liczba 
albo warto

ść

 NULL.

42

wyra

ż

enie

przymiotnik

Kombinacja 
identyfikatorów, 
operatorów, stałych i 
funkcji, która w 
wyniku daje 
pojedyncz

ą

 warto

ść

.

>= Produkty.[Cena 
jednostkowa]

background image

Z

ASADY

SQL

Rodzaje zapyta

ń

background image

Z

A

P

IS

Y

W

A

N

IE
P

O

L

E

C

E

Ń

S

Q

L

Zasady 
zapisywania 
polece

ń

 w SQL

Zapisywanie polece

ń

 SQL:

Polecenia SQL mog

ą

 by

ć

 

rozmieszczone w kilku liniach. Koniec 
polecenia SQL zaznacza si

ę

 

ś

rednikiem.

Zaleca si

ę

 umieszczanie klauzul od 

nowej linii.

Mo

ż

na u

ż

ywa

ć

 tabulacji.

S

Q

L

Mo

ż

na u

ż

ywa

ć

 tabulacji.

Nie wolno dzieli

ć

 słowa pomi

ę

dzy 

linie.

Oboj

ę

tne, czy u

ż

ywamy małych czy 

wielkich liter, chyba 

ż

e sprawdzamy 

zawarto

ść

 pola.

background image

P

O

D

S

T

A

W
O

W
E
Z

A

P

Y

T

A

N

IA
W

Podstawowe 
zapytania w SQL

Podstawowy blok zapyta

ń

SQL:

Za pomoc

ą

 polecenia SELECT

uzyskujemy informacje z bazy.

Polecenie SELECT składa si

ę

 co 

najmniej z klauzuli SELECT i klauzuli 
FROM.

W klauzuli SELECT wymieniamy 
interesuj

ą

ce nas kolumny.

S

Q

L

interesuj

ą

ce nas kolumny.

W klauzuli FROM wskazujemy, sk

ą

pobra

ć

 dane.

background image

W

Y

R

A

Ż

E

N

IA
A

R

Y

T

M

E

T

Y

C

Z

N

E

Klauzula select

Wyra

ż

enia 

arytmetyczne

W klauzuli SELECT mog

ę

 te

ż

 by

ć

 

u

ż

yte:



wyra

ż

enia arytmetyczne,



aliasy (nazwy zast

ę

pcze) kolumn,



konkatenacja, 



literały.

Wyra

ż

enia arytmetyczne

W wyra

ż

eniu arytmetycznym mog

ą

 

W wyra

ż

eniu arytmetycznym mog

ą

 

wyst

ę

powa

ć

 nazwy kolumn, stałe 

warto

ś

ci liczbowe oraz operatory 

arytmetyczne



+

dodawanie



-

odejmowanie



*

mno

ż

enie



/

dzielenie

background image

P

R

IO

R

Y

T

E

T
D

Z

IA

Ł

A

Ń

Priotytet działa

ń

W wyra

ż

eniach zachowywany jest 

nast

ę

puj

ą

cy priorytet działa

ń

:

mno

ż

enie,

dzielenie,

dodawanie,

odejmowanie.

background image

A

L

IA

S

Y
K

O

L

U

M

N

Aliasy kolumn:

Domy

ś

lne nagłówki kolumn mo

ż

emy 

zast

ą

pi

ć

 innymi nazwami, które b

ę

d

ą

 

bardziej znacz

ą

ce. 

Mo

ż

na u

ż

ywa

ć

 polskich liter. Alias 

podaje si

ę

 bezpo

ś

rednio po nazwie 

kolumny, której nazw

ę

 chcemy 

zmieni

ć

. Spacje w aliasie nie s

ą

 

dopuszczane, mo

ż

na natomiast 

dopuszczane, mo

ż

na natomiast 

utworzy

ć

 alias ze spacj

ą

 bior

ą

c cało

ść

 

w podwójne apostrofy.

background image

P

RZYKŁAD

SELECT ENAME NAZWISKO, SAL*12 WYNAGR, COMM PROWIZJA

FROM EMP;

NAZWISKO   WYNAGR     PROWIZJA  

____________________________________

KING 

60000           

BLAKE

34200           

CLARK 

29400           

JONES    

35700           

MARTIN        15000       

1400

ALLEN           19200         300

TURNER       18000      

0

JAMES         11400           

WARD          15000        

500

FORD          36000           

SMITH          9600           

SCOTT          36000           

ADAMS        13200           

MILLER        15600 

background image

O

P

E

R

A

T

O

R
K

O

N

K

A

T

E

N

A

C

J

I

Operator 
konkatenacji:

Czym jest?

Przykład 

Operator konkatenacji

Operator konkatenacji (||) pozwala na 
ł

ą

czenie kolumny z kolumn

ą

literałem, wyra

ż

eniem arytmetycznym 

lub warto

ś

ci

ą

 stał

ą

. Argumenty s

ą

 

ł

ą

czone i tworz

ą

 jedna kolumn

ę

 

wynikow

ą

.

Aby poł

ą

czy

ć

 kolumny EMPNO i 

ENAME i opatrzy

ć

 je tytułem 

ENAME i opatrzy

ć

 je tytułem 

PRACOWNIK, napiszemy:

background image

P

RZYKŁAD

:

SELECT EMPNO||ENAME PRACOWNIK

FROM EMP;

PRACOWNIK                                         

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

7839KING                                          

7698BLAKE                                         

7782CLARK                                         

7782CLARK                                         

7566JONES                                         

7654MARTIN                                        

7499ALLEN                                         

7844TURNER                                        

7900JAMES                                         

7521WARD                                          

7902FORD                                          

7369SMITH                                         

7788SCOTT                                         

7876ADAMS                                         

7934MILLER 

background image

L

IT

E

R

A

Ł

Y

Co to s

ą

 literały?

Literały

Oprócz kolumn na li

ś

cie SELECT

mog

ą

 znajdowa

ć

 si

ę

 literały (ci

ą

gi 

znaków lub liczby). Wtedy dla 
ka

ż

dego wiersza zostanie wypisana 

ta sama warto

ść

 literału:

background image

P

RZYKŁAD

:

SELECT ENAME PRACOWNIK, ' PRACUJE W DEPARTAMENCIE', DEPTNO DEPARTAMENT

FROM EMP;

PRACOWNIK    'PRACUJE W DEPARTAMENCIE' DEPARTAMENT                                    

______________________________________________________

KING          'PRACUJE W DEPARTAMENCIE'  

10                                            

BLAKE         'PRACUJE W DEPARTAMENCIE'  

30                                           

CLARK        'PRACUJE W DEPARTAMENCIE'  

10                                           

CLARK        'PRACUJE W DEPARTAMENCIE'  

10                                           

JONES        'PRACUJE W DEPARTAMENCIE'  

20                                           

MARTIN      'PRACUJE W DEPARTAMENCIE'  

30                                          

ALLEN         'PRACUJE W DEPARTAMENCIE'  

30                                           

TURNER    'PRACUJE W DEPARTAMENCIE'  

30                                          

JAMES        'PRACUJE W DEPARTAMENCIE'  

30                                           

WARD         'PRACUJE W DEPARTAMENCIE'  

30                                            

FORD         'PRACUJE W DEPARTAMENCIE'  

20                                            

SMITH         'PRACUJE W DEPARTAMENCIE'  

20                                           

SCOTT        'PRACUJE W DEPARTAMENCIE'  

20                                           

ADAMS       'PRACUJE W DEPARTAMENCIE'  

20                                           

MILLER       'PRACUJE W DEPARTAMENCIE'  

10                                          

background image

O

B

S

Ł

U

G

A
W

A

R

T

O

Ś

C

I

N

U

L

L

Null

Obsługa warto

ś

ci NULL

Je

ś

li warto

ść

 wiersza w kolumnie jest 

nieokre

ś

lona, to mówimy, 

ż

e na ona 

warto

ść

 NULL. Nie jest to to

ż

same z 

warto

ś

ci

ą

 0.

Warto

ść

 wyra

ż

enia w którym b

ę

dzie 

wyst

ę

powa

ć

 warto

ść

 NULL równie

ż

 

b

ę

dzie NULL. Dlatego te

ż

 wyra

ż

enie 

SAL*12+COMM zwróci NULL tam, 

SAL*12+COMM zwróci NULL tam, 
gdzie COMM było równe NULL.

background image

P

RZYKŁAD

:

SELECT ENAME, SAL*12+COMM

FROM EMP;

ENAME      SAL*12+COM

______________________

KING                 

BLAKE                

CLARK                

CLARK                

JONES                

MARTIN

16400

ALLEN        19500

TURNER     18000

JAMES                

WARD        15500

FORD                 

SMITH                

SCOTT                

ADAMS                

MILLER

background image

F

UNKCJA

NVL

SELECT ENAME, SAL*12+NVL(COMM,0) ROCZNE_WYN

FROM EMP;

ENAME      ROCZNE_WYN

________________________

KING      

60000

Aby w wyra

ż

eniu potraktowa

ć

 warto

ść

 NULL jako warto

ść

 ró

ż

n

ą

 od NULL, 

trzeba u

ż

y

ć

 funkcji NVL.

KING      

60000

BLAKE           

34200

CLARK            29400

JONES            35700

MARTIN           16400

ALLEN           

19500

TURNER           18000

JAMES            11400

WARD             15500

FORD            

36000

SMITH             9600

SCOTT            36000

ADAMS            13200

MILLER           15600

background image

Z

MIANA WARTO

Ś

CI NULL

W powy

ż

szym przykładzie warto

ś

ci ró

ż

ne od NULL 

zachowuj

ą

 swoj

ą

 warto

ść

, za

ś

 warto

ś

ci NULL zostan

ą

 

potraktowane jak 0.

Drugi parametr funkcji NVL okre

ś

la, na jak

ą

 warto

ść

 nale

ż

zamieni

ć

 warto

ść

 NULL:

NVL(DATA,'85/09/01')

NVL(NUMBER, 10)

NVL(MIASTO,'KRAKÓW')

background image

E

LIMINACJA DUPLIKATÓW

SELECT DEPTNO

FROM EMP;

DEPTNO    

----------

10

30

10

20

Eliminacja duplikatów

Domy

ś

lnie 

wy

ś

wietlane s

ą

 

20

30

30

30

30

30

20

20

20

20

10

wy

ś

wietlane s

ą

 

wyniki zapytania bez 
eliminowania 
powtarzaj

ą

cych si

ę

 

warto

ś

ci, np.: 

background image

D

ISTINCT

SELECT DISTINCT DEPTNO

Słowo kluczowe DISTINCT

Eliminacj

ę

 powtarzaj

ą

cych si

ę

 warto

ś

ci uzyskujemy 

stosuj

ą

c słowo kluczowe DISTINCT w klauzuli SELECT.

SELECT DISTINCT DEPTNO
FROM EMP;

DEPTNO    
----------

10
20
30

background image

W

Y

S

P

E

C

Y

F

IK

O

W

A

N

IE
W
Z

A

J

E

M

N

E

Klauzula select, 
słowo kluczowe 
distinct

Mo

ż

na te

ż

 za

żą

da

ć

 wyspecyfikowania 

wzajemnie ró

ż

nych list warto

ś

ci 

poprzez podanie w klauzuli SELECT
wielu nazw kolumn. 

Słowo kluczowe DISTINCT odnosi si

ę

 

do wszystkich nazw kolumn 
wyst

ę

puj

ą

cych w klauzuli SELECT.

W
Z

A

J

E

M

N

E
L

IS

T

background image

P

RZYKŁAD

:

SELECT DISTINCT JOB, DEPTNO
FROM EMP;

JOB       

DEPTNO    

_____________________
ANALYST   

20

ANALYST   

20

CLERK        

10

CLERK            20
CLERK            30
MANAGER     10
MANAGER      20
MANAGER     30
PRESIDENT   10
SALESMAN    30

background image

O

R

D

E

R
B

Y

Klauzula order by

Klauzula ORDER BY

Aby okre

ś

li

ć

 kolejno

ść

, w jakiej b

ę

d

ą

 

zwracane wyniki, nale

ż

y u

ż

y

ć

 klauzuli 

ORDER BY (uporz

ą

dkuj wg). 

Klauzula ORDER BY musi by

ć

 

ostatni

ą

 klauzul

ą

 polecenia SELECT.

background image

P

RZYKŁAD

:

SELECT ENAME, JOB

FROM EMP

ORDER BY ENAME;

ENAME       JOB      

_______________________

ADAMS       CLERK    

ALLEN       SALESMAN 

ALLEN       SALESMAN 

BLAKE       MANAGER  

CLARK       MANAGER  

FORD        ANALYST  

JAMES       CLERK    

JONES       MANAGER  

KING       

PRESIDENT

MARTIN      SALESMAN 

MILLER      CLERK    

SCOTT       ANALYST  

SMITH       CLERK    

TURNER     SALESMAN 

WARD        SALESMAN 

background image

K

O

L

E

J

N

O

Ś

C
S

O

R

T

O

W

A

N

IA

Jak zmienic
kolejno

ś

c

sortowania?

Domy

ś

lnie dane s

ą

 sortowane w 

porz

ą

dku rosn

ą

cym (ASCENDING

— od najmniejszych do najwi

ę

kszych 

liczb, od wcze

ś

niejszych do 

ź

niejszych dat, za

ś

 ci

ą

gi znakowe 

s

ą

 sortowane wg ustawie

ń

 NLS 

(okre

ś

lanych przy tworzeniu bazy 

danych).

Aby odwróci

ć

 kolejno

ść

 sortowania 

Aby odwróci

ć

 kolejno

ść

 sortowania 

nale

ż

y u

ż

y

ć

 słowa DESC

(DESCENDING) u

ż

ytego 

bezpo

ś

rednio po nazwie kolumny 

wyspecyfikowanej w klauzuli ORDER 
BY
.

background image

P

RZYKŁAD

:

SELECT ENAME, JOB, HIREDATE

FROM EMP

ORDER BY HIREDATE DESC;

ENAME       JOB 

HIREDATE 

________________________________________

ADAMS       CLERK     

83/01/12 

SCOTT       ANALYST   

82/12/09 

SCOTT       ANALYST   

82/12/09 

MILLER      CLERK     

82/01/23 

JAMES       CLERK     

81/12/03 

FORD        ANALYST   

81/12/03 

KING       

PRESIDENT 

81/11/17 

MARTIN      SALESMAN  

81/09/28 

TURNER     SALESMAN  

81/09/08 

CLARK       MANAGER   

81/06/09 

BLAKE       MANAGER   

81/05/01 

JONES       MANAGER   

81/04/02 

WARD        SALESMAN  

81/02/22 

ALLEN       SALESMAN  

81/02/20 

SMITH       CLERK     

80/12/17 

background image

S

O

R

T

O

W

A

N

IE
W
G
K

O

L

U

M

N

Sortowanie 

Mo

ż

na sortowa

ć

 według kilku 

kolumn, wtedy po słowie kluczowym 
ORDER BY nale

ż

y poda

ć

 nazwy 

kolumn, po których chcemy sortowa

ć

.

Nazwy kolumn, po których sortujemy, 
musz

ą

 by

ć

 wyspecyfikowane 

w klauzuli SELECT.

Sortowanie dotyczy tylko wyniku 
zapytania wy

ś

wietlanego na ekranie. 

zapytania wy

ś

wietlanego na ekranie. 

Dane w tabelach nie s

ą

 sortowane.

background image

P

RZYKŁAD

:

SELECT ENAME, JOB, DEPTNO

FROM EMP

ORDER BY  DEPTNO, ENAME;

ENAME      

JOB       

DEPTNO    

__________________________________

CLARK    

MANAGER     10

KING       

PRESIDENT   10

MILLER     

CLERK            10

MILLER     

CLERK            10

ADAMS      

CLERK            20

FORD       

ANALYST       20

JONES      

MANAGER     20

SCOTT      

ANALYST       20

SMITH      

CLERK           20

ALLEN      

SALESMAN    30

BLAKE      

MANAGER     30

JAMES      

CLERK            30

MARTIN    

SALESMAN    30

TURNER     

SALESMAN    30

WARD       

SALESMAN    30

background image

W
H

E

R

E

Klauzula where

Operatory where

Klauzula WHERE

Klauzula WHERE odpowiada operacji 
selekcji.

Klauzula ta specyfikuje kryteria 
doboru wierszy. Klauzula WHERE, o 
ile jest, musi wyst

ę

powa

ć

 

bezpo

ś

rednio po klauzuli FROM.

Operatory w klauzuli WHERE mog

ą

 

Operatory w klauzuli WHERE mog

ą

 

by

ć

 dwojakiego rodzaju: 



operatory logiczne, 



operatory SQL.

background image

O

P

E

R

A

T

O

R

Y
L

O

G

IC

Z

N

E

Dane znakowe i 
ci

ą

gi znaków w 

where

Operatory logiczne

Dane znakowe i ci

ą

gi znaków w 

klauzuli WHERE musz

ą

 by

ć

 uj

ę

te w 

pojedyncze apostrofy. Przy 
porównywaniu znaków Oracle 
rozró

ż

nia małe i wielkie litery.

background image

O

PERATORY LOGICZNE

SELECT ENAME, JOB, DEPTNO
FROM EMP

Aby wybra

ć

 nazwiska, zawód i numer departamentu dla 

wszystkich zatrudnionych na stanowisku CLERK, 
napiszemy:

FROM EMP
WHERE JOB='CLERK';

ENAME      

JOB             DEPTNO    

________________________________
JAMES

CLERK             30

SMITH      

CLERK             20

ADAMS      

CLERK             20

MILLER     

CLERK             10

background image

O

PERATORY LOGICZNE

SELECT ENAME, JOB, DEPTNO
FROM EMP

Aby wybra

ć

 wszystkich zatrudnionych po 01.01.1982r., 

napiszemy:

FROM EMP
WHERE HIREDATE>'82/01/01'

ENAME      

JOB       

DEPTNO    

______________________________
SCOTT

ANALYST  

20

ADAMS      

CLERK           20

MILLER     

CLERK           10

background image

O

PERATORY LOGICZNE

SELECT ENAME, JOB, DEPTNO

Mo

ż

na w klauzuli WHERE porównywa

ć

 dla ka

ż

dego wiersza 

warto

ś

ci dwóch kolumn. Np. 

ż

eby wybra

ć

 wszystkich, którzy 

otrzymuj

ą

 wy

ż

sz

ą

 prowizj

ę

 ni

ż

 pensj

ę

, napiszemy:

FROM EMP

WHERE COMM>SAL;

ENAME      JOB       

DEPTNO    

_______________________________

MARTIN     SALESMAN          30

background image

O

P

E

R

A

T

O

R

Y

S

Q

L

Operatory SQL 
działaj

ą

ce na 

wszystkich typach 
danych

Operatory SQL

Wyró

ż

niamy 4 operatory SQL, 

działaj

ą

ce na wszystkich typach 

danych:



BETWEEN... AND,



IN (lista),



LIKE,



IS NULL.

background image

B

E

T

W
E

E

N

A

N

D

Between…and:

Do czego słu

ż

y?

Operator BETWEEN...AND

Operator BETWEEN...AND słu

ż

y do 

sprawdzenia, czy warto

ść

 znajduje si

ę

 

w podanym przedziale (wliczaj

ą

c w to 

kra

ń

ce przedziału). Górna granica 

musi nast

ę

powa

ć

 po dolnej. 

Aby wybra

ć

 wszystkich, którzy 

zarabiaj

ą

 od 1000 do 1500, wliczaj

ą

w to tych, którzy zarabiaj

ą

 1000 i 

w to tych, którzy zarabiaj

ą

 1000 i 

1500, napiszemy:

background image

P

RZYKŁAD

:

SELECT ENAME, JOB, DEPTNO
FROM EMP
WHERE SAL BETWEEN 1000 AND 1500;      

ENAME       JOB       

DEPTNO    

ENAME       JOB       

DEPTNO    

__________________________________
MARTIN      SALESMAN          30
TURNER      SALESMAN          30
WARD       

SALESMAN          30

ADAMS       CLERK                  20
MILLER     

CLERK                  10

background image

I

N

Operator In

Do czego słu

ż

y?

Operator IN

Operator IN słu

ż

y do sprawdzania, 

czy dana warto

ść

 znajduje si

ę

 na 

wyspecyfikowanej li

ś

cie. Aby wybra

ć

 

podwładnych osób o identyfikatorach 
7839 i 7902, napiszemy:

Dane znakowe wyst

ę

puj

ą

ce na li

ś

cie 

nale

ż

y uj

ąć

 w pojedyncze apostrofy.

background image

P

RZYKŁAD

:

SELECT ENAME, JOB, DEPTNO
FROM EMP
WHERE MGR IN (7839,7902);

ENAME       JOB        

DEPTNO    

ENAME       JOB        

DEPTNO    

_____________________________
BLAKE      

MANAGER           30

CLARK      

MANAGER           10

JONES      

MANAGER           20

SMITH      

CLERK                 20

background image

L

IKE

SELECT ENAME, JOB, DEPTNO

FROM EMP

WHERE ENAME LIKE '_A%';

ENAME      JOB           DEPTNO    

___________________________

Operator LIKE

Operator LIKE słu

ż

y do 

wybierania warto

ś

ci 

odpowiadaj

ą

cych podanemu 

wzorcowi. Wzorzec tworz

ą

 dwa 

specjalne symbole:

___________________________

MARTIN     SALESMAN          30

JAMES       CLERK                 30

WARD        SALESMAN          30

% (znak procent) — odpowiada 
dowolnemu ci

ą

gowi znaków,

_ (znak podkre

ś

lenia) —

odpowiada dokładnie jednemu 
dowolnemu znakowi.

Aby wybra

ć

 osoby, które jako 

drug

ą

 liter

ę

 w nazwisku maj

ą

 

liter

ę

 "A", napiszemy:

background image

L

IKE

SELECT ENAME, JOB, 

DEPTNO

FROM EMP
WHERE ENAME LIKE '_____';

ENAME      JOB       DEPTNO    
_________________________

Aby wybra

ć

 osoby, 

których nazwisko składa 

_________________________
BLAKE      MANAGER           30
CLARK      MANAGER          10
JONES      MANAGER           20
ALLEN       SALESMAN         30
JAMES      CLERK                 30
SMITH       CLERK                 20
SCOTT      ANALYST             20
ADAMS     CLERK                 20

których nazwisko składa 
si

ę

 z pi

ę

ciu liter, 

napiszemy:

background image

I

S
N

U

L

L

Operator is null

Do czego słu

ż

y?

Operator IS NULL

Operator IS NULL słu

ż

y do 

wyszukiwania warto

ś

ci NULL.

Aby wybra

ć

 dane o osobach, które nie 

posiadaj

ą

 szefa, napiszemy:

Nie mo

ż

na napisa

ć

 w klauzuli 

WHERE warunku MGR=NULL, gdy

ż

 

wtedy Oracle nie wyszuka 

ż

adnych 

wtedy Oracle nie wyszuka 

ż

adnych 

warto

ś

ci.

background image

P

RZYKŁAD

:

SELECT ENAME, JOB, DEPTNO

FROM EMP

WHERE MGR IS NULL;

ENAME       JOB           

DEPTNO    

____________________________

KING       

PRESIDENT      10

background image

O

P

E

R

A

T

O

R

Y
N

E

G

A

C

J

I

Do czego słu

żą

 

operatory negacji?

Operatory negacji

Operatory negacji słu

żą

 do 

zaprzeczania warunkom w klauzuli 
WHERE.

!=

nie jest równy (VAX, UNIX, PC)

^=, _=

nie jest równy (IBM)

<>

nie jest równy (wszystkie systemy operacyjne)

NOT kolumna=

nie jest równy

NOT kolumna>

nie jest wi

ę

kszy

NOT BETWEEN

nie jest w podanym przedziale

NOT IN

nie jest w zbiorze

NOT LIKE

nie jest zgodny z mask

ą

IS NOT NULL

nie jest NULL

background image

P

RZYKŁAD

:

Aby wybra

ć

 wszystkie osoby, które nie zarabiaj

ą

 wi

ę

cej ni

ż

 2000, 

napiszemy:

SELECT ENAME, SAL
FROM EMP
WHERE NOT SAL>2000; 

ENAME      

SAL       

_______________________
MARTIN           

1250

ALLEN            

1600

TURNER           

1500

JAMES             

950

WARD             

1250

SMITH             

800

ADAMS            

1100

MILLER           

1300

background image

P

RZYKŁAD

:

Aby wybra

ć

 osoby, które nie otrzymuj

ą

 prowizji, 

napiszemy:

SELECT ENAME, JOB, COMM
FROM EMP
WHERE COMM IS NOT NULL 

ENAME     

JOB       

COMM      

_______________________________
MARTIN     

SALESMAN   1400

ALLEN      

SALESMAN    300

TURNER       SALESMAN   0
WARD       

SALESMAN    500

background image

T

W
O

R

Z

E

N

IE
Z

Ł

O

Ż

O

N

Y

C

H
K

R

Y

T

E

R

W

Budowa warunków 
zło

ż

onych:

Jakie operatory do 
tego słu

żą

?

Tworzenie zło

ż

onych kryteriów

Do budowania warunków zło

ż

onych 

słu

żą

 operatory AND (i) oraz OR

(lub).



Warunek (X AND Y) jest prawdziwy 
wtedy i tylko wtedy, gdy X jest 
prawdziwy Y jest prawdziwy.



Warunek (X OR Y) jest prawdziwy wtedy 
i tylko wtedy, gdy X jest prawdziwy lub 

K

R

Y

T

E

R

W

i tylko wtedy, gdy X jest prawdziwy lub 
jest prawdziwy.



Operator AND ma wi

ę

kszy priorytet ni

ż

 

operator OR.

Aby wybra

ć

 wszystkich pracowników 

zatrudnionych na stanowisku 
'MANAGER' i zarabiaj

ą

cych wi

ę

cej ni

ż

 

2000, napiszemy:

background image

P

RZYKŁAD

:

SELECT ENAME, JOB, SAL

FROM EMP

WHERE SAL>2000

AND JOB='MANAGER' 

NAME     

JOB       

SAL       

________________________________

BLAKE      

MANAGER         

2850

CLARK      

MANAGER         

2450

JONES     

MANAGER         

2975

background image

P

RZYKŁAD

:

Poniewa

ż

 operator AND ma wy

ż

szy priorytet ni

ż

 operator OR, to poni

ż

szy przykład 

znajdzie nam wszystkie osoby zatrudnione na stanowisku 'CLERK' oraz te osoby 
zatrudnione na stanowisku 'MANAGER', których zarobki przekraczaj

ą

 1000.

SELECT ENAME, JOB, SAL
FROM EMP
WHERE SAL>1000
AND JOB='MANAGER' OR JOB='CLERK';

AND JOB='MANAGER' OR JOB='CLERK';
ENAME 

JOB       

SAL       

_____________________________________
BLAKE     MANAGER         

2850

CLARK    MANAGER         

2450

JONES     MANAGER         

2975

JAMES     CLERK            

950

SMITH      CLERK            

800

ADAMS    CLERK           

1100

MILLER    CLERK           

1300

background image

P

RZYKŁAD

:

Poni

ż

szy przykład, w którym zastosowano nawiasy zmieniaj

ą

ce 

kolejno

ść

 wykonywania działa

ń

 wybierze tylko osoby zatrudnione 

na stanowisku 'CLERK' lub na stanowisku 'MANAGER', które 
przy tym zarabiaj

ą

 wi

ę

cej ni

ż

 1000.

SELECT ENAME, JOB, SAL
FROM EMP

FROM EMP
WHERE SAL>1000
AND (JOB='MANAGER' OR JOB='CLERK');
ENAME

JOB       

SAL       

_____________________________________
BLAKE      

MANAGER         2850

CLARK      

MANAGER         2450

JONES      

MANAGER         2975

ADAMS      

CLERK           

1100

MILLER     

CLERK           

1300

background image

H

IE

R

A

R

C

H

IA
O

P

E

R

A

T

O

R

Ó

W

Priorytety

Hierarchia operatorów

=, <>, <=, >=, >,<, BETWEEN…AND
INLIKEIS NULL

NOT

AND

OR

Aby zapis był bardziej przejrzysty i w 
celu unikni

ę

cia bł

ę

dów, zaleca si

ę

 

celu unikni

ę

cia bł

ę

dów, zaleca si

ę

 

stosowanie nawiasów.

background image

S

Q

L

*

P

L

U

S

Polecenia w 
SQL*Plus

Krótki opis polece

ń

 wła

ś

ciwych dla 

SQL*Plus

Pod SQL*Plus najcz

ęś

ciej 

uruchamiamy skrypty SQL-owe.

Najcz

ęś

ciej u

ż

ywane polecenia:

SPOOL plik;

wszystkie polecenia SQL do czasu wydania rozkazu SPOOL
OFF b

ę

d

ą

zapisywane do pliku plik

@plik

uruchomienie skryptu plik

ed plik

edycja pliku plik w domy

ś

lnym edytorze

SPOOL OFF

ko

ń

czy wysyłanie danych do pliku

DESC

wy

ś

wietla opis struktury tabeli

CONNECT

zmiana podł

ą

czenia do bazy

EXIT

wyj

ś

cie z programu

background image

P

O

Ł

Ą

C

Z

E

N

IE
P

R

Z

E

Z
M

Y

S

Q

L

Poł

ą

czenie z baz

ą

 

danych przez 
klienta MySQL

Do połaczenia z baza uzyjemy
klienta mysql 
wywołanie z linii 
polecen jest nastepujace:



mysql -u root



aby zakonczyc połaczenie nalezy
wpisac polecenie exit.

background image

B

IB

L

IO

G

R

A

F

IA

Podstawy j

ę

zyka 

SQL

http://bazyall.wordpress.com/
http://pl.wikipedia.org/wiki/SQL

http://www.google.pl/url?sa=t&source
=web&cd=7&ved=0CEcQFjAG&url=ht
tp%3A%2F%2Fservi.icis.pcz.pl%2Ffil
es%2FKursSQL.doc&rct=j&q=Podsta
wy%20j%EAzyka%20SQL&ei=yCubT
ZvvE9DzsgbVy4GuBg&usg=AFQjCN
HifbQqTH-
NFmXUW25LKxxXjIlY4w&sig2=A5Ur

HifbQqTH-
NFmXUW25LKxxXjIlY4w&sig2=A5Ur
zbd58p4tV2Bf-KTlgA&cad=rja

http://office.microsoft.com/pl-
pl/access-help/jezyk-access-sql-
podstawowe-pojecia-sownictwo-i-
skadnia-HA010256402.aspx
http://ektanet.pl/pobieralnia/podstawy
_sql.pdf