Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
SQL. Leksykon
kieszonkowy
Autor: Jonathan Gennick
Tumaczenie: Tomasz Pdziwiatr
ISBN: 83-7361-596-2
Tytu oryginau: SQL Pocket Guide
Format: B5, stron: 192
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
Wprowadzenie ........................................................................ 7
Struktura ksiki .......................................................................................8
Informacje zwrotne...................................................................................9
Konwencje typograficzne.........................................................................9
Podzikowania ........................................................................................10
Przykady kodu.......................................................................................11
Funkcje ................................................................................... 13
Funkcje przetwarzania daty ..................................................................15
Funkcje liczbowe i matematyczne ........................................................22
Funkcje trygonometryczne ....................................................................25
Funkcje tekstowe.....................................................................................26
Pozostae funkcje.....................................................................................33
Spis treci
Literay................................................................................... 79
Literay tekstowe.....................................................................................79
Literay liczbowe.....................................................................................81
Literay daty i czasu ...............................................................................81
Pobieranie danych................................................................ 83
Klauzula SELECT....................................................................................83
Sowa kluczowe ALL i DISTINCT........................................................93
Klauzula FROM ......................................................................................95
Klauzula WHERE ...................................................................................99
Klauzula GROUP BY..............................................................................99
Klauzula HAVING ...............................................................................100
Klauzula ORDER BY ............................................................................100
Podzapytania...................................................................... 101
Klauzula WITH .....................................................................................102
Klauzula WITH i podzapytania skorelowane...................................104
Predykaty............................................................................. 106
Predykaty porwna grupowych.......................................................107
Wiksza liczba wartoci po lewej stronie porwnania (Oracle) .....109
Predykaty EXISTS .................................................................................110
Predykaty IN .........................................................................................110
Predykaty BETWEEN...........................................................................111
Predykaty LIKE.....................................................................................112
Unie....................................................................................... 120
Operacja UNION i UNION ALL ........................................................120
Kolejno przetwarzania instrukcji.....................................................122
Operacja EXCEPT (lub MINUS)..........................................................123
Operacja INTERSECT...........................................................................125
Spis treci
Skorowidz............................................................................ 185
Pozostae funkcje
Wrd funkcji bazy danych Oracle s dostpne dwie, ktre nie
speniaj kryteriw adnej z wymienionych kategorii. Nie oznacza
to jednak, e s mniej uyteczne.
Funkcja ta zwraca najwiksz warto z listy wprowadzonych wartoci. Danymi wejciowymi mog tu by zarwno
liczby, jak i daty bd cigi tekstowe.
Funkcja ta zwraca najmniejsz warto z listy wprowadzonych wartoci. Danymi wejciowymi mog tu by zarwno
liczby, jak i daty bd cigi tekstowe.
34
Funkcje agregujce
Funkcje agregujce pobieraj jako dane wejciowe zbir wartoci,
po jednej z kadego wiersza, i zwracaj jedn warto wyniku.
Jedn z najczciej wykorzystywanych funkcji agregujcych jest
. Jej zadanie polega na zliczaniu wszystkich niepustych wartoci kolumny. Przedstawiona poniej instrukcja zlicza wszystkie
odsyacze zapisane w tabeli .
!"#$
%& '
Sowo kluczowe jest doczane w sposb domylny instrukcja
jest tosama z instrukcj
.
Funkcja
ma szczeglny charakter, gdy umoliwia przekazanie jako argumentu symbolu gwiazdki (,).
, %& '
35
W przypadku zastosowania instrukcji
, zliczaniu podlegaj wiersze, a nie wartoci kolumn. Fakt wystpowania wartoci
w kolumnie nie ma tu adnego znaczenia, poniewa odrzucanie wartoci pustych wystpuje jedynie podczas zliczania
wartoci kolumn, a nie wierszy jako caoci.
W tabeli 3. zostay zestawione najczciej wykorzystywane funkcje
agregujce. Wikszo producentw baz danych implementuje
wszystkie z wymienionych funkcji. Na szczegln uwag zasuguje w tym przypadku firma Oracle, ktra wyposaa swoje
produkty w bardzo wiele funkcji agregujcych, cho skadnia
ich wywoania czsto jest do skomplikowana. Wicej informacji
na ten temat znajduje si w dokumentacji serwera.
Klauzula GROUP BY
Uyteczno funkcji agregujcych jest zauwaalna dopiero wwczas, gdy zastosuje si je do grupy wierszy, a nie do wszystkich
wierszy tabeli. W tym celu trzeba zastosowa klauzul .
Kolejna z prezentowanych instrukcji umoliwia wyznaczenie
liczby atrakcji turystycznych w kadym miecie.
*-./#*$+
,
%&*$+*
0
*$)#*$+1$)#*$+
*-./#*$+'
Opis
&2
&(
36
&
((
&
Podczas wykonywania tego typu zapytania baza danych w pierwszej kolejnoci sortuje wiersze, a nastpnie grupuje je zgodnie
z wyraeniem okrelonym w klauzuli .
&!-$+$-3$! )4+
&!-$+$-3"" 56!
&!-$+$-37$6/ 4!+
")+4- 4 37
+
4*6-5
-48!$-5 *4$+
-4 *6" 049
-4%$-"-)$-$: +$5
*;+ - 5$4-"$")"$; ;!3
Grupy mog si niekiedy skada tylko z jednego wiersza. Grupowanie wymaga zazwyczaj przeprowadzenia pewnej formy
sortowania danych. Niemniej, jak mona zauway na powyszym
przykadzie, sortowanie musi by wykonywane jedynie do pewnego etapu do chwili pogrupowania stosownych wierszy.
Po utworzeniu grup kada funkcja agregujca jest wykonywana
tylko raz na danej grupie. Warto zastosowanej w tym przypadku
funkcji
, jest wyznaczana oddzielnie dla kadej grupy.
&!-$+$-3<
37
&!-$+$-3
&!-$+$-3
")+4- =
-4<
-4
-4
*;+=
Uyteczne techniki
stosowania klauzuli GROUP BY
W dalszej czci tego podrozdziau zostay opisane niektre, czciej stosowane techniki budowania zapyta z klauzul .
38
W takim przypadku, zamiast grupowania wzgldem dwch kolumn, znacznie korzystniejsze bdzie przeprowadzenie grupowania jedynie wzgldem kolumny
. Skrceniu ulega w ten
sposb klucz sortowania. Sortowanie grupujce bdzie prawdopodobnie wykonane znacznie szybciej i zuyje mniej przestrzeni
dyskowej. Jednym ze sposobw osignicia zamierzonego efektu
jest zastosowanie nastpujcego zapytania.
*$)#*$+&2*-./#*$+
,
%&*$+*
0
*$)#*$+1$)#*$+
*$)#*$+'
Kolumna
zostaa usunita z klauzuli . Jednoczenie do sekcji
zostao dodane wywoanie funkcji &2.
Dziki temu spenione jest zaoenie, e wszystkie wyraenia
nie objte klauzul musz by uwzgldnione w funkcji
agregujcej. W rezultacie otrzymujemy tak samo uyteczn warto nazwy miasta. Wynika to z faktu, e wszystkie nazwy miast
nalece do grupy miast o jednakowej wartoci
s takie
same. Funkcja &2 moe wic zwrci tylko t jedn nazw.
39
Klauzula HAVING
Klauzula
nakada ograniczenia na wiersze zwracane przez
zapytanie zawierajce klauzul . Na przykad w celu
pobrania nazw tylko tych miast, w ktrych wystpuje wicej ni
jedna atrakcja turystyczna, mona zastosowa instrukcj:
*-./#*$+
,
%&*$+*
0
*$)#*$+1$)#*$+
*-./#*$+
, >='
40
41
!
" #"
$
" #"
%
$
Doczenie klauzuli spowodowao wygenerowanie standardowego podsumowania wzgldem miast. Sowo kluczowe
odpowiada za dodanie podsumowa na wszystkich pozostaych poziomach wygenerowanych dla poszczeglnych
hrabstw i dla caego zestawienia. Hrabstwo Marquette ma pi
atrakcji turystycznych, natomiast cae zestawienie informuje
o dwudziestu atrakcjach.
42
!
" #"
$
" #"
%
$
8*
$9*2302 9
& '()(
/
@#@#&
@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
<
-4<
4!374-<
4!374--4<
43
!
" #"
$
" #"
%
$
& '()
& '"&
*+,"&
-./
@#@#&
@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
"3 <
4!374-<
&B! D
-4<
+76 *$-3C
&B! <
&!-$+$-3<
#
(
44
bitw o wartociach 1 lub 0, zalenych od tego, czy odpowiadajce im kolumny zawieraj wartoci , wygenerowane przez rozszerzenia klauzuli . Funkcja ta jest
dostpna w bazie danych Oracle w wersji 9i i kolejnych.
#
(
45
Uzyskany wynik nie odbiega w aden sposb od rezultatu wykonania zapytania z opcj
w bazie danych Oracle (opisanego
wczeniej). Podobnie jak w przypadku rozszerzenia , nie
mona stosowa opcji
jedynie w odniesieniu do wybranych
kolumn klauzuli .
46