1
1
Wyszukiwanie danych w zapytaniach SQL cz.2
Wyszukiwanie danych w zapytaniach SQL cz.2
(Aliasy, BETWEEN, IN, NULL, NOT NULL, ORDER BY)
(Aliasy, BETWEEN, IN, NULL, NOT NULL, ORDER BY)
Prezentacja do ćwiczenia 6
Prezentacja do ćwiczenia 6
Materiały wykorzystane w przykładach:
Materiały wykorzystane w przykładach:
Materiały pomocnicze do ćwiczeń laboratoryjnych\Ćwiczenie 6
Materiały pomocnicze do ćwiczeń laboratoryjnych\Ćwiczenie 6
2
2
Zakres ćwiczeń
Zakres ćwiczeń
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:
Aliasy
Aliasy
AS
AS
Operator
Operator
BETWEEN…AND
BETWEEN…AND
Predykat
Predykat
IN
IN
Predykat
Predykat
IS NULL i IS NOT NULL
IS NULL i IS NOT NULL
Klauzula
Klauzula
ORDER BY
ORDER BY
Prezentacja kończy się ćwiczeniami do wykonania, aby utrwalić
Prezentacja kończy się ćwiczeniami do wykonania, aby utrwalić
nabytą wiedzę.
nabytą wiedzę.
3
3
Aliasy AS
Alias to alternatywna nazwa atrybutu. Z aliasów można korzystać
podczas sortowania i prezentacji wyników.
use [baza]
use [baza]
select [kolumna] AS [nowa_nazwa]
select [kolumna] AS [nowa_nazwa]
from [tabela];
from [tabela];
Przykład 1. W tabeli „pojazdy” nazwa w kolumnie marka zmieniona
Przykład 1. W tabeli „pojazdy” nazwa w kolumnie marka zmieniona
zostanie na nazwę Nazwa_marki.
zostanie na nazwę Nazwa_marki.
use msmot
use msmot
select marka AS Nazwa_marki ,marka
select marka AS Nazwa_marki ,marka
from pojazdy;
from pojazdy;
Rysunek 1
Przykład 1 pokazuje w jak prosty sposób zmienić nazwę kolumny na
czas prezentacji wyników (Rysunek 1).
4
4
Operator BETWEEN…AND
Operator
Operator
BETWEEN … AND
BETWEEN … AND
pozwala sprawdzić czy szukana wartość
pozwala sprawdzić czy szukana wartość
zawiera się między dwoma wskazanymi wartościami.
zawiera się między dwoma wskazanymi wartościami.
Wartość dolna musi być poprzedzana wartością górną.
Wartość dolna musi być poprzedzana wartością górną.
use [baza]
use [baza]
select [kolumna]
select [kolumna]
from [tabela]
from [tabela]
where [klumna] BETWEEN x AND y ;
where [klumna] BETWEEN x AND y ;
Gdzie
Gdzie
x i y
x i y
to liczby rzeczywiste lub znaki tekstowe.
to liczby rzeczywiste lub znaki tekstowe.
BETWEEN sprawdza czy wartość danego wyrażenia mieści się w określonym
BETWEEN sprawdza czy wartość danego wyrażenia mieści się w określonym
przez nas przedziale, jeśli tak to zwrócona zostanie wartość TRUE, w
przez nas przedziale, jeśli tak to zwrócona zostanie wartość TRUE, w
przeciwnym wypadku zwróci FALSE.
przeciwnym wypadku zwróci FALSE.
Jeśli któraś z porównywanych wartości jest NULL , zwrócona zostanie
Jeśli któraś z porównywanych wartości jest NULL , zwrócona zostanie
wartość UNKNOW.
wartość UNKNOW.
Możliwe jest tez zastosowanie operatora NOT, aby uzyskać wynik przeciwny.
Możliwe jest tez zastosowanie operatora NOT, aby uzyskać wynik przeciwny.
Operator BETWEEN ... AND stosujemy w klauzuli WHERE.
Operator BETWEEN ... AND stosujemy w klauzuli WHERE.
5
5
Przykłady
Przykład 2. W tabeli „pracownik” wyszukane zostaną osoby, których
Przykład 2. W tabeli „pracownik” wyszukane zostaną osoby, których
numery domów mieszczą się w przedziale od 1 do 50.
numery domów mieszczą się w przedziale od 1 do 50.
use msmot
use msmot
select imie, nazwisko, numer
select imie, nazwisko, numer
from pracownik
from pracownik
where numer BETWEEN 1 AND 50 ;
where numer BETWEEN 1 AND 50 ;
Wynik działania zapytania (Rysunek 2).
Wynik działania zapytania (Rysunek 2).
Kwerenda wypisała 3 kolumny (imie, nazwisko, numer) i wyszukała osoby, których numer
Kwerenda wypisała 3 kolumny (imie, nazwisko, numer) i wyszukała osoby, których numer
mieszkania/domu mieszczą się w przedziale od 1 do 50.
mieszkania/domu mieszczą się w przedziale od 1 do 50.
Rysunek 2
6
6
Predykat IN
Predykat
Predykat
IN
IN
pozwala na porównanie wartości w kolumnie przeszukiwanej
pozwala na porównanie wartości w kolumnie przeszukiwanej
tabeli z wartościami ze zbioru. Wartości typu znakowego, daty i czasu
tabeli z wartościami ze zbioru. Wartości typu znakowego, daty i czasu
muszą być otoczone nawiasami w apostrofach.
muszą być otoczone nawiasami w apostrofach.
use [baza]
use [baza]
select [nazwa_pola]
select [nazwa_pola]
from [tabela]
from [tabela]
where [pole] IN (x, y) ;
where [pole] IN (x, y) ;
Gdzie
Gdzie
x
x
i
i
y
y
to liczby rzeczywiste.
to liczby rzeczywiste.
7
7
Przykłady
Przykład 3. Z tabeli „wypozyczenie” wybrane zostaną operacje
Przykład 3. Z tabeli „wypozyczenie” wybrane zostaną operacje
wypożyczenia z cenami „600” i „2000” zł .
wypożyczenia z cenami „600” i „2000” zł .
use msmot
use msmot
select data_wyp, data_odd, cena
select data_wyp, data_odd, cena
from wypozyczenie
from wypozyczenie
where cena IN (600,2000) ;
where cena IN (600,2000) ;
Wynik działania zapytania przedstawia Rysunek 3.
Wynik działania zapytania przedstawia Rysunek 3.
Kwerenda wybiera wszystkie wypożyczenia z cenami o wartościach
Kwerenda wybiera wszystkie wypożyczenia z cenami o wartościach
600 i 2000..
600 i 2000..
Rysunek 3
8
8
Predykat IS NUT i IS NOT NULL
Wybieranie wierszy z tabeli, w których jedno z pół zawiera wartość
Wybieranie wierszy z tabeli, w których jedno z pół zawiera wartość
pustą
pustą
NULL
NULL
, polega na użyciu predykatu
, polega na użyciu predykatu
IS NULL
IS NULL
Predykat
Predykat
IS
IS
NOT NULL
NOT NULL
działa odwrotnie, wybiera wartości nie puste
działa odwrotnie, wybiera wartości nie puste
z tabeli.
z tabeli.
use [baza]
use [baza]
select [kolumna]
select [kolumna]
from [tabela]
from [tabela]
where [kolumna] IS NULL / NOT NULL ;
where [kolumna] IS NULL / NOT NULL ;
Obliczenia jakiegokolwiek wyrażenia, którego jeden z argumentów
Obliczenia jakiegokolwiek wyrażenia, którego jeden z argumentów
jest NULL, będzie rozpoznawany jako wartość pusta w komórce.
jest NULL, będzie rozpoznawany jako wartość pusta w komórce.
9
9
Przykłady
Przykład 4. Zapytanie wybierze wiersze z pustymi polami w kolumnie
Przykład 4. Zapytanie wybierze wiersze z pustymi polami w kolumnie
nr_tel tabeli „klient” .
nr_tel tabeli „klient” .
use msmot
use msmot
select *
select *
from klient
from klient
where nr_tel IS NULL ;
where nr_tel IS NULL ;
Wynik działania zapytania przedstawia poniższy zrzut ekranu
Wynik działania zapytania przedstawia poniższy zrzut ekranu
(Rysunek 4).
(Rysunek 4).
Jeżeli zastosujemy natomiast predykat :
Jeżeli zastosujemy natomiast predykat :
where nr_tel IS NOT NULL;
where nr_tel IS NOT NULL;
Otrzymamy wszystkie niepuste wartości kolumny „nr_tel”.
Otrzymamy wszystkie niepuste wartości kolumny „nr_tel”.
Rysunek 4
10
10
Klauzula ORDER BY
Klauzula
Klauzula
ORDER BY
ORDER BY
pozwala sortować wynik zwracany przez
pozwala sortować wynik zwracany przez
instrukcję SELECT.
instrukcję SELECT.
Możemy podać nie jedną nazwę kolumny a listę kolumn, według
Możemy podać nie jedną nazwę kolumny a listę kolumn, według
której ma odbyć się sortowanie, oraz dla poszczególnej kolumny
której ma odbyć się sortowanie, oraz dla poszczególnej kolumny
określić porządek sortowania.
określić porządek sortowania.
use [baza]
use [baza]
select [kolumna]
select [kolumna]
from [tabela]
from [tabela]
ORDER BY [kolumna] ASC/DESC,
ORDER BY [kolumna] ASC/DESC,
[kolumna] ASC/DESC ;
[kolumna] ASC/DESC ;
Słowo
Słowo
DESC
DESC
oznacza sortowanie w porządku malejącym (z ang.
oznacza sortowanie w porządku malejącym (z ang.
descanding), słowo
descanding), słowo
ASC
ASC
oznacza sortowanie w porządku rosnącym
oznacza sortowanie w porządku rosnącym
(z ang. ascanding).
(z ang. ascanding).
11
11
Przykłady
Przykład 5. Pokazuje sortowanie malejąco według imion wierszy
Przykład 5. Pokazuje sortowanie malejąco według imion wierszy
wybranych z tabeli „klient” .
wybranych z tabeli „klient” .
use msmot
use msmot
select *
select *
from klient
from klient
ORDER BY imie DESC ;
ORDER BY imie DESC ;
Wynik działania powyższego zapytania przedstawia Rysunek 5.
Wynik działania powyższego zapytania przedstawia Rysunek 5.
Rysunek 5
Przykład 6. Sortowanie według rosnących
Przykład 6. Sortowanie według rosnących
wartości.
wartości.
use msmot
use msmot
select *
select *
from klient
from klient
ORDER BY imie ASC ;
ORDER BY imie ASC ;
Wynik działania zapytania przedstawia Rysunek 6.
Wynik działania zapytania przedstawia Rysunek 6.
Uwaga.
Uwaga.
Znakom przyporzątkowane są numery
Znakom przyporzątkowane są numery
porządkowe w tablicy kodów i dlatego można sortować
porządkowe w tablicy kodów i dlatego można sortować
znaki i łańcuchy znaków.
znaki i łańcuchy znaków.
Rysunek 6
12
12
Przykłady
Przykład 7. Pokazuje sortowanie wierszy według imion malejąco i
Przykład 7. Pokazuje sortowanie wierszy według imion malejąco i
nazwisk rosnąco.
nazwisk rosnąco.
use msmot
use msmot
select imie, nazwisko
select imie, nazwisko
from klient
from klient
ORDER BY imie DESC
ORDER BY imie DESC
ORDER BY nazwisko ASC;
ORDER BY nazwisko ASC;
Wynik działania zapytania przedstawiono obok.
Wynik działania zapytania przedstawiono obok.
Rysunek 7
13
13
Ćwiczenia
Ćwiczenia
1.
1.
Wyświetl imiona z przedziału od „a” do „m” i nazwij ją
Wyświetl imiona z przedziału od „a” do „m” i nazwij ją
Imiona_A_Z , użyj tabeli „klient”.
Imiona_A_Z , użyj tabeli „klient”.
2.
2.
Za pomocą predykatu IN wyświetl pojemności 500 i 300 z tabeli
Za pomocą predykatu IN wyświetl pojemności 500 i 300 z tabeli
„pojazdy”
„pojazdy”
3.
3.
Posortuj malejąco wiersze z tabeli „pojazdy” według kolumny
Posortuj malejąco wiersze z tabeli „pojazdy” według kolumny
„model”.
„model”.
4.
4.
Posortuj rosnąco imiona i nazwiska z tabeli pracownik.
Posortuj rosnąco imiona i nazwiska z tabeli pracownik.
5.
5.
W tabeli „wypozyczenie” wyświetl wszystkie ceny, oprócz cen
W tabeli „wypozyczenie” wyświetl wszystkie ceny, oprócz cen
600 i 630.
600 i 630.