background image

1

1

Wyszukiwanie danych w zapytaniach SQL

Wyszukiwanie danych w zapytaniach SQL

 

 

cz.1

cz.1

(opis instrukcji SELECT, ALL|DISTINCT, operatory 

(opis instrukcji SELECT, ALL|DISTINCT, operatory 

logiczne, LIKE, OR i AND)

logiczne, LIKE, OR i AND)

Prezentacja do ćwiczenia 5

Prezentacja do ćwiczenia 5

Materiały wykorzystane w przykładach:

Materiały wykorzystane w przykładach:

Materiały pomocnicze  do ćwiczeń laboratoryjnych\Ćwiczenie 5

Materiały pomocnicze  do ćwiczeń laboratoryjnych\Ćwiczenie 5

background image

2

2

Zakres ćwiczeń

Zakres ćwiczeń

Celem prezentacji jest wprowadzenia do tworzenia zapytań SELECT z 

Celem prezentacji jest wprowadzenia do tworzenia zapytań SELECT z 

różnymi parametrami i opcjami.

różnymi parametrami i opcjami.

W przykładach zawartych w prezentacji do laboratorium opisane 

W przykładach zawartych w prezentacji do laboratorium opisane 

zostaną następujące zagadnienia:

zostaną następujące zagadnienia:

Operatory porównania (<>, = , <, >, <=, >=)

Operatory porównania (<>, = , <, >, <=, >=)

Operatory AND i OR

Operatory AND i OR

Słowo kluczowe ALL i DISTINCT

Słowo kluczowe ALL i DISTINCT

Predykat LIKE

Predykat LIKE

Zaprzeczenie NOT

Zaprzeczenie NOT

Prezentacja kończy się ćwiczeniami do wykonania, aby utrwalić 

Prezentacja kończy się ćwiczeniami do wykonania, aby utrwalić 

nabytą  

nabytą  

wiedzę.

wiedzę.

background image

3

3

Instrukcja SELECT

Pobieranie danych z bazy danych umożliwia zastosowanie instrukcji 
SELECT, czyli wykonanie zapytania. Nazywana INSTRUKCJA 
WYBIERAJĄCĄ .
Instrukcja SELECT  zwraca zbiór wierszy i kolumn. 

Podstawowa składnia instrukcji SELECT:

                                 Select [lista_pól]

                                               From [tabela(e)];

Wyrażenie umieszczone  w instrukcja SELECT staje się kolumną 
zbioru wynikowego danego zapytania. Wyrażeniami mogą być nazwy 
kolumn, instrukcje, które generują nowe wartości na podstawie 
danych w tabeli, lub funkcje nie mające nic wspólnego z wartościami 
kolumn. Instrukcja SELECT  umożliwia określenie poszczególnych 
elementów danych, które powinny zostać zwrócone przez instrukcję, 
którą stworzyliśmy. Wynikiem instrukcji, jest kolumna ze zbiorem 
wyników.

Po instrukcji SELECT podajemy listę pól oddzielonych przecinkami, 
które pojawią się w wyniku wywołania zapytania. Po słowie FROM 
podajemy listę tabel i kwerend oddzielonych przecinkami, które będą 
stanowić źródło danych. Po zakończeniu instrukcji należy zawsze 
pamiętać o znaku średnika (;).

Inne klauzule wchodzące w skład polecenia SELECT zostaną 
szczegółowo omówione w następnych ćwiczeniach. 

background image

4

4

Przykłady:

Przykłady:

Przykład 1. Wypisanie całej zawartości tabeli „klient”.

Przykład 1. Wypisanie całej zawartości tabeli „klient”.

   

   

use msmot

use msmot

       

       

 

 

        

        

select * 

select * 

from klient;

from klient;

Instrukcja powyżej jest najprostszą jaka występuje. Wypisuje 

Instrukcja powyżej jest najprostszą jaka występuje. Wypisuje 

wszystkich klientów z tabeli „klient” , znacznik „*”  oznacza, że 

wszystkich klientów z tabeli „klient” , znacznik „*”  oznacza, że 

zostaną wypisane wszystkie kolumny z tabeli (Rysunek 1).

zostaną wypisane wszystkie kolumny z tabeli (Rysunek 1).

Rysunek 1

Polecenie „use” informuje, która baza ma być użyta do wykonania zapytania.

Polecenie „use” informuje, która baza ma być użyta do wykonania zapytania.

Można nie wpisywać „use”, wtedy wybieramy bazę z górnego rozwijalnego 

Można nie wpisywać „use”, wtedy wybieramy bazę z górnego rozwijalnego 

paska zadań.

paska zadań.

background image

5

5

Przykład 2. Wypisanie zawartości określonych kolumn tabeli „klient”.

Przykład 2. Wypisanie zawartości określonych kolumn tabeli „klient”.

        

        

   

   

use msmot 

use msmot 

                                

                                

select imie, nazwisko, ulica, miejscowosc

select imie, nazwisko, ulica, miejscowosc

                  

                  

from klient;

from klient;

Kwerenda wypisze tylko następujące kolumny: imię, nazwisko, ulica oraz 

Kwerenda wypisze tylko następujące kolumny: imię, nazwisko, ulica oraz 

Miejscowość.

Miejscowość.

Wynik zapytania przedstawia poniższy rysunek:

Wynik zapytania przedstawia poniższy rysunek:

Rysunek 2

background image

6

6

Przykład 3. Z tabeli „klient” zostaną wypisane kolumny zawierające: 

Przykład 3. Z tabeli „klient” zostaną wypisane kolumny zawierające: 

imię, nazwisko oraz numer telefonu dla osób o imieniu Tomek.

imię, nazwisko oraz numer telefonu dla osób o imieniu Tomek.

use msmot

use msmot

select imie, nazwisko, nr_tel

select imie, nazwisko, nr_tel

from klient

from klient

where imie = 'Tomek';

where imie = 'Tomek';

Działanie kwerendy przedstawia rysunek 3.

Działanie kwerendy przedstawia rysunek 3.

Rysunek 3

Kwerenda została wzbogacona klauzulą WHERE , dzięki niej można 

Kwerenda została wzbogacona klauzulą WHERE , dzięki niej można 

rozbudować zapytanie o dowolny warunek. W tym przypadku instrukcja  

rozbudować zapytanie o dowolny warunek. W tym przypadku instrukcja  

SELECT  wypisała  wszystkich Tomków. 

SELECT  wypisała  wszystkich Tomków. 

Jeżeli wyszukiwane dane są typu tekstowego należy je umieścić w 

Jeżeli wyszukiwane dane są typu tekstowego należy je umieścić w 

apostrofach 

apostrofach 

np. where imie = 'Tomek‘;

np. where imie = 'Tomek‘;

Jeżeli wyszukiwane dane są typu liczbowego nie używamy apostrofów.

Jeżeli wyszukiwane dane są typu liczbowego nie używamy apostrofów.

np. where nr_tel = 988776661;

np. where nr_tel = 988776661;

background image

7

7

Podstawowa składnia SELECT z klauzulą WHERE:

Podstawowa składnia SELECT z klauzulą WHERE:

Select [lista_pól]

Select [lista_pól]

From [tabela(e)]

From [tabela(e)]

Where [warunek];

Where [warunek];

Do wybrania określonych wierszy z tabeli używa się klauzuli WHERE, 

Do wybrania określonych wierszy z tabeli używa się klauzuli WHERE, 

która służy do określenia kryterium wyboru wierszy. W klauzuli WHERE 

która służy do określenia kryterium wyboru wierszy. W klauzuli WHERE 

specyfikujemy warunek, który musi być spełniony dla szukanych wierszy.

specyfikujemy warunek, który musi być spełniony dla szukanych wierszy.

W klauzuli WHERE stosujemy operatory porównania

W klauzuli WHERE stosujemy operatory porównania

równe

równe

<> 

<> 

różne

różne

>

>

większe niż

większe niż

>=

>=

większe i równe

większe i równe

<

<

mniejsze niż

mniejsze niż

<=

<=

mniejsze i równe

mniejsze i równe

Instrukcja SELECT z operatorami 

porównania.

background image

8

8

Przykłady:

Przykłady:

Przykład 4. Zapytanie wyszuka wszystkie pojemności silnika mniejsze 

Przykład 4. Zapytanie wyszuka wszystkie pojemności silnika mniejsze 

od „200” z tabeli „pojazdy”.

od „200” z tabeli „pojazdy”.

        

        

use msmot

use msmot

       

       

 

 

        

        

select * 

select * 

                      

                      

from pojazdy

from pojazdy

        

        

where pojemnosc < 200;

where pojemnosc < 200;

Kwerenda wypisze wszystkie pojazdy, których pojemność jest 

Kwerenda wypisze wszystkie pojazdy, których pojemność jest 

mniejsza od „200” (Rysunek 4).

mniejsza od „200” (Rysunek 4).

Rysunek 4

Inne przykłady z zastosowaniem operatorów:

Inne przykłady z zastosowaniem operatorów:

where pojemność <> 200;

where pojemność <> 200;

  - wynikiem będą wszystkie pojemności 

  - wynikiem będą wszystkie pojemności 

różne 

różne 

          od „200” 

          od „200” 

where pojemnosc <= 100; 

where pojemnosc <= 100; 

 - wynikiem będą wszystkie pojemności 

 - wynikiem będą wszystkie pojemności 

          mniejsze lub równe „100”  

          mniejsze lub równe „100”  

where pojemnosc >= 100; 

where pojemnosc >= 100; 

 - wynikiem będą wszystkie pojemności 

 - wynikiem będą wszystkie pojemności 

          większe lub równe „100” 

          większe lub równe „100” 

where pojemnosc = 150; 

where pojemnosc = 150; 

 -   wynikiem będą wszystkie pojemności 

 -   wynikiem będą wszystkie pojemności 

           równe „150”

           równe „150”

background image

9

9

Instrukcja SELECT z operatorami 

AND i OR.

Kiedy w warunku złożonym do połączenia warunków składowych używamy 

Kiedy w warunku złożonym do połączenia warunków składowych używamy 

operatora 

operatora 

AND

AND

 oba warunki połączone operatorem 

 oba warunki połączone operatorem 

AND

AND

 muszą zostać 

 muszą zostać 

spełnione, tzn. muszą zwrócić wartość prawdy (TRUE). 

spełnione, tzn. muszą zwrócić wartość prawdy (TRUE). 

Warunek z operatorem 

Warunek z operatorem 

OR

OR

 zwróci wartość TRUE, gdy przynajmniej jedna 

 zwróci wartość TRUE, gdy przynajmniej jedna 

ze 

ze 

stron zwróci wartość TRUE.

stron zwróci wartość TRUE.

Składnia zapytania z operatorami 

Składnia zapytania z operatorami 

AND

AND

 i 

 i 

OR

OR

:

:

use [baza]

use [baza]

select [kolumna]

select [kolumna]

from [tabela]

from [tabela]

where [instrukcja1] AND/OR [instrukcja2];

where [instrukcja1] AND/OR [instrukcja2];

Operatorów 

Operatorów 

AND

AND

 oraz 

 oraz 

OR

OR

 możemy używać jednocześnie do tworzenia 

 możemy używać jednocześnie do tworzenia 

bardziej 

bardziej 

rozbudowanych zapytań, które przedstawione będą w przykładach.

rozbudowanych zapytań, które przedstawione będą w przykładach.

background image

10

10

Przykłady:

Przykłady:

Przykład 5. Używając operatora AND zostaną wyszukani klienci o 

Przykład 5. Używając operatora AND zostaną wyszukani klienci o 

nazwisku Kowalski pochodzący z Gdańska z tabeli „klient”.

nazwisku Kowalski pochodzący z Gdańska z tabeli „klient”.

use msmot

use msmot

       

       

select * 

select * 

from klient

from klient

where nazwisko= 'Kowalski' 

where nazwisko= 'Kowalski' 

and miejscowosc= 'Gdańsk';

and miejscowosc= 'Gdańsk';

Wynik instrukcji prezentuje (Rysunek 5)

Wynik instrukcji prezentuje (Rysunek 5)

Rysunek 5

Zapytanie składa się z jednego operatora 

Zapytanie składa się z jednego operatora 

AND

AND

, jeżeli chcielibyśmy bardziej 

, jeżeli chcielibyśmy bardziej 

sprecyzować zapytanie można by było dodać następne operatory 

sprecyzować zapytanie można by było dodać następne operatory 

AND

AND

.

.

Przykładowo oprócz nazwiska i miejscowości chcielibyśmy dodatkowo wyszukać 

Przykładowo oprócz nazwiska i miejscowości chcielibyśmy dodatkowo wyszukać 

imię, trzeba by było dodać kolejny operator:  

imię, trzeba by było dodać kolejny operator:  

where nazwisko= 'Kowalski' 

where nazwisko= 'Kowalski' 

and miejscowosc= 'Gdańsk‘

and miejscowosc= 'Gdańsk‘

and imie= ‘Marcin’;

and imie= ‘Marcin’;

background image

11

11

Przykłady:

Przykłady:

Przykład 5. Używając operatora 

Przykład 5. Używając operatora 

AND i OR

AND i OR

 wyświetleni zostaną klienci 

 wyświetleni zostaną klienci 

z Gdańska  o imieniu Maciej lub Marcin z tabeli „klient”.

z Gdańska  o imieniu Maciej lub Marcin z tabeli „klient”.

use msmot

use msmot

select * 

select * 

from klient 

from klient 

where miejscowosc = 'Gdańsk' 

where miejscowosc = 'Gdańsk' 

and (imie='Maciej' or imie='Marcin');

and (imie='Maciej' or imie='Marcin');

Wynik instrukcji prezentuje (Rysunek 6)

Wynik instrukcji prezentuje (Rysunek 6)

Rysunek 6

Kolejność operatorów 

Kolejność operatorów 

AND i OR

AND i OR

: operator 

: operator 

AND

AND

 dominuje nad operatorem 

 dominuje nad operatorem 

OR

OR

.

.

Warunek w klauzuli WHERE jest otoczony nawiasami. Nawiasy pozwalają 

Warunek w klauzuli WHERE jest otoczony nawiasami. Nawiasy pozwalają 

określić kolejność wykonywania zadania.

określić kolejność wykonywania zadania.

Zapytanie wyświetla tylko klientów z miejscowości Gdańsk o imionach Maciej 

Zapytanie wyświetla tylko klientów z miejscowości Gdańsk o imionach Maciej 

lub Marcin. 

lub Marcin. 

background image

12

12

Instrukcja SELECT z ALL i 

DISTINCT.

Słowo kluczowe  DISTINCT zapewnia, że wynik zwrócony w wyniku zapytania 

Słowo kluczowe  DISTINCT zapewnia, że wynik zwrócony w wyniku zapytania 

Zawierać będzie tylko nie powtarzające się wiersze.

Zawierać będzie tylko nie powtarzające się wiersze.

Wszystkie powtarzające się wartości nie zostaną wyświetlone.

Wszystkie powtarzające się wartości nie zostaną wyświetlone.

select DISTINCT [lista_pól]

select DISTINCT [lista_pól]

from [tabela(e)]

from [tabela(e)]

where [warunek];

where [warunek];

Wyrażenie ALL jest wartością domyślną i oznacza, że zwrócone zostaną 

Wyrażenie ALL jest wartością domyślną i oznacza, że zwrócone zostaną 

wszystkie wiersze (również te powtarzające się).

wszystkie wiersze (również te powtarzające się).

select ALL cena 

select ALL cena 

from wypozyczenie;

from wypozyczenie;

Powyższe dwa zapytania maja takie samo znaczenie i zwracają identyczne 

Powyższe dwa zapytania maja takie samo znaczenie i zwracają identyczne 

wyniki.

wyniki.

Słowa kluczowe 

Słowa kluczowe 

ALL

ALL

 oraz 

 oraz 

DISTINCT

DISTINCT

 występują bezpośrednio po słowie SELECT. 

 występują bezpośrednio po słowie SELECT. 

background image

13

13

Przykłady:

Przykłady:

Przykład 7. Lista miejscowości z tabeli „klient”.

Przykład 7. Lista miejscowości z tabeli „klient”.

use msmot

use msmot

select DISTINCT miejscowosc 

select DISTINCT miejscowosc 

from klient ;

from klient ;

Wynik instrukcji prezentuje poniższy rysunek

Wynik instrukcji prezentuje poniższy rysunek

Rysunek 7

Powyższe zapytanie wyświetla wszystkie miejscowości z tabeli „klient”, 

Powyższe zapytanie wyświetla wszystkie miejscowości z tabeli „klient”, 

zauważmy, że miejscowości  nie powtarzają się, zostały wyświetlone 

zauważmy, że miejscowości  nie powtarzają się, zostały wyświetlone 

tylko raz.

tylko raz.

background image

14

14

Zaprzeczenie NOT

Zaprzeczenie NOT

Warunki wyszukiwania mogą być łączone ze sobą lub modyfikowane 

Warunki wyszukiwania mogą być łączone ze sobą lub modyfikowane 

przy użyciu operatora logicznego 

przy użyciu operatora logicznego 

NOT

NOT

.

.

 

 

Zaprzeczenie 

Zaprzeczenie 

NOT

NOT

 to logiczne przeciwieństwo warunku.

 to logiczne przeciwieństwo warunku.

Przykład:

Przykład:

      

      

use msmot

use msmot

                

                

select imie,nazwisko

select imie,nazwisko

from klient

from klient

                            

                            

where NOT (imie=‘Tomek’);

where NOT (imie=‘Tomek’);

Zapytanie zwróci imiona z tabeli „klient”, lecz bez imienia „Tomek”.

Zapytanie zwróci imiona z tabeli „klient”, lecz bez imienia „Tomek”.

background image

15

15

Instrukcja SELECT z predykatem 

LIKE.

Predykat 

Predykat 

LIKE

LIKE

 służy do wybierania wartości odpowiadających 

 służy do wybierania wartości odpowiadających 

podanemu wzorcowi. Wzorzec ten składa się z dwóch znaków:

podanemu wzorcowi. Wzorzec ten składa się z dwóch znaków:

% (znak procenta) – odpowiada dowolnemu ciągowi znaków

% (znak procenta) – odpowiada dowolnemu ciągowi znaków

_ (znak podkreślenia dolnego) – odpowiada jednemu dowolnemu 

_ (znak podkreślenia dolnego) – odpowiada jednemu dowolnemu 

znakowi

znakowi

Często istnieje konieczność wyszukania np. nazwisk klientów, które 

Często istnieje konieczność wyszukania np. nazwisk klientów, które 

zaczynają się od jakieś litery, lub fragmentu nazwy, wtedy 

zaczynają się od jakieś litery, lub fragmentu nazwy, wtedy 

zastosujemy predykat 

zastosujemy predykat 

LIKE

LIKE

.

.

Najlepszym sposobem zapoznania się z predykatem 

Najlepszym sposobem zapoznania się z predykatem 

LIKE

LIKE

 jest praktyka. 

 jest praktyka. 

W przykładach przedstawione zostaną różne kombinacje….

W przykładach przedstawione zostaną różne kombinacje….

W zapytaniach z predykatem 

W zapytaniach z predykatem 

LIKE

LIKE

 możemy stosować zaprzeczenie NOT 

 możemy stosować zaprzeczenie NOT 

oraz operatory AND i OR.

oraz operatory AND i OR.

                                                      

                                                      

use [baza]

use [baza]

          

          

select [lista_pól]

select [lista_pól]

    

    

  

  

from [tabela(e)]

from [tabela(e)]

                         

                         

where [warunek] LIKE ‘  ’;

where [warunek] LIKE ‘  ’;

background image

16

16

Przykłady:

Przykłady:

Przykład 8. Wyszukanie imion zaczynających się na literę „J” z tabeli „klient”.

Przykład 8. Wyszukanie imion zaczynających się na literę „J” z tabeli „klient”.

use msmot

use msmot

select * 

select * 

from klient 

from klient 

where imie LIKE ‘J%’;

where imie LIKE ‘J%’;

Wynik instrukcji prezentuje (Rysunek 8)

Wynik instrukcji prezentuje (Rysunek 8)

Rysunek 8

Powyższe zapytanie wyszukuje imiona na literę „J”. Poniższe zapytanie 

Powyższe zapytanie wyszukuje imiona na literę „J”. Poniższe zapytanie 

działa podobnie, tylko z tą różnicą, że wyszukuje imiona zakończone na 

działa podobnie, tylko z tą różnicą, że wyszukuje imiona zakończone na 

litery „ta”.

litery „ta”.

use msmot

use msmot

select * 

select * 

from klient 

from klient 

where imie LIKE ‘%ta’;

where imie LIKE ‘%ta’;

background image

17

17

Przykłady:

Przykłady:

Przykład 9. Wyszukanie imion zaczynających się na literę „J” oraz nazwisk 

Przykład 9. Wyszukanie imion zaczynających się na literę „J” oraz nazwisk 

na 

na 

literę „K” z tabeli „klient”.

literę „K” z tabeli „klient”.

use msmot

use msmot

select * 

select * 

from klient 

from klient 

where imie LIKE ‘J%’

where imie LIKE ‘J%’

and nazwisko LIKE ‘K%’;

and nazwisko LIKE ‘K%’;

Wynik instrukcji prezentuje (Rysunek 9)

Wynik instrukcji prezentuje (Rysunek 9)

Rysunek 9

Powyższe zapytanie wyszukuje imiona na literę „J” oraz nazwiska na literę „K”. 

Powyższe zapytanie wyszukuje imiona na literę „J” oraz nazwiska na literę „K”. 

Poniższe zapytanie działa podobnie, tylko z tą różnicą, że wyszukuje imiona

Poniższe zapytanie działa podobnie, tylko z tą różnicą, że wyszukuje imiona

nie zaczynające się na literę „J” i nazwiska nie zaczynające się na literę „K”.

nie zaczynające się na literę „J” i nazwiska nie zaczynające się na literę „K”.

use msmot

use msmot

select * 

select * 

from klient 

from klient 

where imie NOT LIKE ‘J%’

where imie NOT LIKE ‘J%’

and nazwisko NOT LIKE ‘K%’;

and nazwisko NOT LIKE ‘K%’;

background image

18

18

Przykłady:

Przykłady:

Inne przykłady z zastosowaniem LIKE:

Inne przykłady z zastosowaniem LIKE:

 

 

imiona w których druga litera to „a”

imiona w których druga litera to „a”

where imie LIKE ‘_a%’;

where imie LIKE ‘_a%’;

nazwiska, w których długość wynosi 5 znaków

nazwiska, w których długość wynosi 5 znaków

where nazwisko LIKE ‘_____’;

where nazwisko LIKE ‘_____’;

nazwiska, które posiadają litery „o” i  „k”

nazwiska, które posiadają litery „o” i  „k”

where nazwisko LIKE ‘%o%k%’; 

where nazwisko LIKE ‘%o%k%’; 

nazwiska, które kończą się na litery „ak”

nazwiska, które kończą się na litery „ak”

where nazwisko LIKE ‘%ak’;

where nazwisko LIKE ‘%ak’;

imiona, w których przedostatnią literą jest „a”

imiona, w których przedostatnią literą jest „a”

where nazwisko LIKE ‘%a_’;

where nazwisko LIKE ‘%a_’;

background image

19

19

Ćwiczenia

Ćwiczenia

1. Wypisz zawartość całej tabeli „pojazdy”.

2. Z tabeli „klient” wyświetl wszystkie imiona Jan.

3. Z tabeli „klient” wyświetl wszystkie imiona: Jan i Dobromił

4. Z tabeli „klient” wypisz imiona zaczynające się na literę „M” 

lub „A”.

5. Z tabeli „pojazdy” wyświetl pojemności mniejsze i równe 100.


Document Outline