Podstawy języka SQL

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

z

serwerami

relacyjnych

baz

danych

.

background image

C

E

L

E

Do czego słu

ż

y

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 z

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

ą

d

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

ść

ż

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

ż

y

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

ą

c

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 i Y jest prawdziwy.



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

K

R

Y

T

E

R

W

i tylko wtedy, gdy X jest prawdziwy lub Y
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,
IN, LIKE, IS 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


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron