background image

1

Podstawowe cechy języka SQL

Tworzenie bazy danych i struktur relacji

Manipulowanie danymi

Dodawanie

Modyfikacja danych

Usuwanie danych z relacji

Wydobywanie informacji

Prosty w opanowaniu

Zgodność z określonym standardem

background image

2

Własności SQL

Język nieproceduralny

Użytkownik opisuje informację, której potrzebuje

Nie podaje sposobu uzyskania tej informacji

Składnia  języka  SQL  dopuszcza  umieszczanie  poleceń  w 

różnych miejscach

Polecenie składa się z typowych słów języka angielskiego: 

CREATE, SELECT, INSERT itp.

CREATE TABLE Dom(id int(5), numer int(5));

Każdy użytkownik może utworzyć zapytanie w języku SQL

background image

3

Formułowanie poleceń

Słowa 

zarezerwowane

 (kluczowe)

Niezmienna część języka

Ustalone znaczenie

Muszą  być  zapisane  zgodnie  ze  składnią,  nie  mogą  być 
dzielone

Słowa 

definiowane

 przez użytkownika

Nazwy różnych obiektów baz danych

Tabele, kolumny, perspektywy

Słowa  układane  są  słowa  (zapytania)  zgodnie  z  regułami 

języka

Każde  polecenie  zakończone  jest  znacznikiem  końca 

zapytania: „ 

;

 ”

background image

4

Zasady tworzenia zapytań

Słowa  kluczowe  i  definiowane  mogą  być  wpisywane  wielkimi 
lub małymi znakami

Dane  występujące  w  bazie  danych  myszą  być  wpisywane  z 

zachowaniem wielkości znaków

„Kowalski” - „KOWALSKI”

Każde polecenie powinno rozpoczynać się od nowego wiersza

Początek nowej klauzuli powinien być dopasowany do 
początków innych klauzul

Zapytanie składające się z kilku klauzul powinno być zapisane 

w kilku wierszach

Stosowanie wcięć dla podkreślenia zależności klauzul

background image

5

Nazewnictwo

Wielkie litery stosujemy przy wpisywaniu słów kluczowych

Nazwę  relacji  rozpoczynamy  od  wielkiej  litery  –  nazwa  relacji 

zapisana jest w liczbie pojedynczej

Personel, Biuro

Jeżeli  nazwa  relacji  składa  się  z  kilku  członów,  każdy  człon 

rozpoczynamy od wielkiej litery

WlascicielPrywatny

Nazwy atrybutów rozpoczynamy z małej litery

Jeżeli  nazwa  atrybutu  składa  się  z  kilku  członów,  drugi  i  następne 

człony rozpoczynamy z litery wielkiej

biuroNr, kodPocztowy

W nazwach relacji oraz atrybutów staramy się nie używać znaków 

charakterystycznych dla danego języka

Maksymalna długość identyfikatora wynosi 128 znaków

background image

6

Cudzysłów

Jeżeli  nazwa  zawiera  spacje  należy  zastosować 

ograniczone identyfikatory

Wesoły  domek  –  błąd  niejednoznaczne  określenie 
nazwy

”Wesoły domek” - poprawnie

Jeżeli  nazwa  zawiera  w  sobie  cudzysłów  należy 
zastosować podwójny znak ”

Wesoły”Domek – błąd

Wesoły””Domek – poprawnie

Należy unikać spacji oraz cudzysłowów w nazwach

background image

7

Apostrofy

Apostrofy służą do określania literałów łańcuchowych

Stosowane  przy  dokonywaniu  operacji  na  ciągach 

znaków

Mały domek – błąd

'Mały domek' – poprawnie

Jeżeli ciąg znaków zawiera apostrof należy poprzedzić 

go drugim znakiem apostrofa

Mały'domek

'Mały

'

'

domek'

Należy unikać stosowania apostrofów w literałach

background image

8

Zapytania

Zapytanie  SELECT  służy  do  wyszukiwania  danych  z 

jednej lub wielu tabel

SELECT  

[

 DISTINCT 

|

 ALL

 ] {

 *

 |

 kolumna 

[

 AS nowa_nazwa 

][

, ...

] }

FROM NazwaTabeli 

alias 

] [

 , ... 

]

[

 WHERE

warunek_selekcji_wierszy 

]

[

 GROUP BYlista_kolumn 

] [

 HAVING warunek_selekcji_grup 

]

[

 ORDERED BY lista_kolumn 

]

Porządek elementów zapytania SELECT musi być 

zachowany – nie można go zmieniać

Wynikiem działania zapytania jest również relacja

background image

9

Kolejność przetwarzania

określa tabelę lub zbiór tabel

GROUP BY

określa uporządkowanie wyniku

FROM

WHERE

pozwala wybrać wiersze spełniające zda-
ny warunek korzystać
tworzy grupy wierszy o tej samej wartości 
wskazanej kolumny

HAVING

pozwala wybrać grupy ze względu na po-
dany warunek selekcji grup

SELECT

Wskazuje, które grupy powinny znaleźć 
się w wyniku

ORDERED BY

background image

10

background image

11

Wyszukiwanie wszystkich wierszy

Podaj wszystkie dane wszystkich pracowników

SELECT pracownikNr, imie, nazwisko, stanowisko, plec, 

dataUr, pensja, biuroNr 

FROM Personel;

SELECT *
FROM Personel;

background image

12

Wyszukiwanie wybranych kolumn

Aby wybrać dane odpowiadające wybranym atrybutom 
po klauzuli

 SELECT 

należy podać nazwy kolumn

SELECT pracownikNr, imie,  nazwisko, pensja
FROM Personel;

Kolejność kolumn określona jest przez kolejność pojawienia 

się po słowie SELECT

Kolejność  wyświetlanych  encji  (wierszy)  odpowiada 

kolejności wprowadzania informacji

background image

13

Eliminacja powtórzeń

Polecenie SELECT nie eliminuje 

powtórzeń

SELECT nieruchomoscNr
FROM Wizyta;

SELECT DISTINCT 

nieruchomoscNr

FROM Wizyta;

background image

14

Pola wyliczane

Na liście SELECT może pojawić się pole wyliczane

Dowolne wyrażenie arytmetyczny

Nawiasy określające kolejność działań

W kolumnie wyliczanej może wystąpić więcej niż 

jedna kolumna z tabeli

Kolumny muszą mieć typ liczbowy

Nazwa kolumny wyliczanej określana jest przez SZBD

Nadanie własnej nazwy dla kolumny wyliczanej 

wymaga zastosowania klauzuli 

AS

background image

15

Klauzula AS

SELECT pracownikNr, imie, nazwisko, pensja/12
FROM Personel;

SELECT pracownikNr, imie, nazwisko, pensja/12 AS 

„Pensja Miesięczna”

FROM Personel;

background image

16

Klauzula WHERE

Klauzula  WHERE  służy  do  ograniczania  ilości 

wyników (operator selekcji)

Po słowie kluczowym następuje warunek selekcji

Porównanie

Porównanie wartości dwóch wyrażeń

Sprawdzenie zakresu

Polega na sprawdzeniu, czy zadana wartość należy do 

wskazanego zakresu

Przynależność do zbioru

Element należy do wskazanego zbioru

Wartość pusta

Sprawdza czy kolumna zawiera wartość null

background image

17

Porównanie

Porównując dwie wartości możemy skorzystać z 
następujących operatorów

Wartość wyrażenia obliczana jest od lewej do prawej

W pierwszej kolejności obliczane są wyrażenia w nawiasach

NOT ma wyższy priorytet niż AND i OR

AND jest obliczane przed OR

=

równe

<>

różne

!=

różne

<

mniejsze niż

<=

mniejsze lub równe

>

większe niż

>=

większe lub równe

AND iloczyn logiczny
OR

suma logiczna

NOT przeczenie

background image

18

Przykłady

Podaj  adresy  wszystkich  biur  znajdujących  się  w 

Londynie lub Glasgow

SELECT * FROM Biuro WHERE miasto = 'Londyn' OR

miasto = 'Glasgow';

Podaj  wszystkich  pracowników  mających  pensje 

pomiędzy 2000 a 3000 zł

SELECT  pracownikNr,  imie,  nazwisko,  stanowisko, 
pensja FROM Personel WHERE pensja >= 2000 AND

pensja <= 3000;

background image

19

BETWEEN

Operator BETWEEN służy do definiowania przedziału 

zamkniętego

SELECT  pracownik,  imie,  nazwisko,  stanowisko, 
pensja  FROM  Personel  WHERE  pensja  BETWEEN
2000 AND 3000;

Negacja operatora BETWEEN

SELECT  pracownik,  imie,  nazwisko,  stanowisko, 
pensja  FROM  Personel  WHERE  pensja 

NOT

BETWEEN 2000 AND 3000;

WHERE pensja < 2000 OR pensja > 3000;

background image

20

IN – NOT IN

Operator IN pozwala na sprawdzenie czy wartość danego 
atrybutu należy do określonego zbioru

Podaj  informacje  na  temat  wszystkich  kierowników  i 
dyrektorów

SELECT  *  FROM  Personel  WHERE  stanowisko  IN

('kierownik','dyrektor');

Operator  IN  stosowany  jest  dla  zbiorów  o  wielu 
elementach

Zbiór może być utworzony przez inne zapytanie SQL

Zgodność dziedzin atrybutu i zbioru wynikowego

Operator NOT IN 

Wszystkie elementy nie należące do wskazanego zbioru

background image

21

Dopasowanie do wzorca

Atrybuty przechowujące dane w postaci ciągu znaków

Wyszukiwanie według określonego wzorca

Operator LIKE lub NOT LIKE

Znaki zastępcze

 

%

 

oraz

 

_

 (

*, ? - Microsoft

)

%

 dopasowuje jeden lub wiele znaków

Pusty ciąg znaków

_

 dopasowuje dokładnie jeden znak

Jeżeli szukany ciąg znaków zawiera jeden ze znaków 
specjalnych należy zastosować klauzulę ESCAPE

background image

22

Działanie operatora LIKE

Jeśli  dopasowywana  wartość,  wzorzec  lub  znak 
zdefiniowany  w  ESCAPE  są  typu  NULL,  wynik 
porównania przyjmuje status nieokreślony

Jeśli  dopasowywana  wartość  i  wzorzec  są  łańcuchami  o 
zerowej długości wynikiem TRUE

Jeśli  dopasowywana  wartość  może  zostać  podzielona  na 
takie  segmenty,  że  każdy  segment  będzie    równy 

wzorcowi  lub  reprezentowany  we  wzorcu  za  pomocą 
symboli specjalnych wynikiem jest TRUE

Segmenty i symbole mają taką samą kolejność we 
wzorcu, jak w pasujących segmentach

W  przeciwnym  przypadku  wartością  porównania  jest 
FALSE

background image

23

Działanie operatora LIKE

Dopasowywana wartość nie jest wypełniana ani obcinana

Jeżeli  wzorzec  jest  podłańcuchem  należy  umieścić  znak 

%

 na 

początku lub/i na końcu wzorca

Operator 

LIKE

 nie  dopasowuje  końcowych  spacji  chyba  że 

umieścimy symbol 

%

LIKE 'H%' - pierwszym znakiem musi być litera H

LIKE 'H_ _ _ _' - dokładnie cztery znaki pierwsza litera H

LIKE '%e' – dowolny ciąg znaków zakończony literą e

LIKE  '%Glasgow'  –  dowolny  ciąg  znaków  o  dowolnej 
długości zawierających słowo Glasgow

NOT LIKE 'H%' - pierwszym słowem nie może być H

background image

24

Działanie operatora LIKE - ESCAPE

Znaleźć ciąg znaków '

15%

'

Wymaga zastosowania znaku zdejmującego 

znaczenie specjalne

LIKE '

15

#

%

ESCAPE '

#

'

TRUE

'

Mały_Domek 

' LIKE '%

ły

#

_Dom

%' ESCAPE '

#

'

FALSE

'

Mały_Domek 

' LIKE '%

ły

#

_Domek

' ESCAPE '

#

'

UNKNOWN (nieokreślony)

'

Mały_Domek 

' LIKE '%

ły

#

_Dom

%' ESCAPE NULL

background image

25

Ograniczanie wyników zapytań

Jeżeli relacja zawiera dużą liczbę rekordów zapytanie 

SELECT

 zwróci dużą liczbę krotek

Liczbę  zwracanych  krotek  ogranicza  się  za  pomocą 
klauzuli 

LIMIT

SELECT * FROM Personel LIMIT 20;

Zapytanie  zwróci  pierwszych  20  rekordów  relacji 

Personel

SELECT * FROM Personel LIMIT 20, 10;

Zapytanie  zwróci  10  rekordów  po  pominięciu 

pierwszych 20 rekordów


Document Outline