You are on page 1of 18

IDZ DO

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

Podrczna pomoc dla programistw aplikacji bazodanowych


Jzyk SQL jest podstawowym narzdziem programistw i operatorw baz danych.
Posiada stosunkowo niewiele instrukcji, a jednak za jego pomoc mona wykonywa
wszystkie operacje na danych, tabelach i bazach. Czsto jednak podczas pracy trzeba
przypomnie sobie skadni instrukcji, znaczenie jej parametrw lub sposb korzystania
z niej. Spraw dodatkowo komplikuje to, e implementacje jzyka SQL w rnych
systemach zarzdzania bazami danych rni si nieznacznie od siebie. Przetrzsanie
kilkusetstronicowej dokumentacji zwykle zajmuje zbyt wiele czasu. Programistom,
pracujcym najczciej pod presj czasu, potrzebne jest podrczne rdo
podstawowych informacji.
Tak wanie rol peni ksika SQL. Leksykon kieszonkowy. Zgromadzono w niej
opisy polece jzyka w implementacjach dla najpopularniejszych systemw baz danych
Oracle, DB2, MS SQL Server oraz MySQL. Opis kadego z polece jest zilustrowany
przykadami, co dodatkowo uatwia zrozumienie jego zastosowania. W ksice opisano:
Funkcje grupowania i sumowania
Funkcje przetwarzajce dane
Polecenie SELECT wraz z podzapytaniami i funkcjami agregujcymi
Sposoby uaktualniania i usuwania danych
Metody wprowadzania danych
Zarzdzanie transakcjami
Zczenia tabel

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

Funkcje grupowania i sumowania .................................... 34


Funkcje agregujce..................................................................................34
Klauzula GROUP BY..............................................................................35
Uyteczne techniki stosowania klauzuli GROUP BY ........................38
Klauzula HAVING .................................................................................39
Rozszerzenia klauzuli GROUP BY (Oracle) ........................................41
Rozszerzenia klauzuli GROUP BY (SQL Server)................................44

Konwersja typw danych ................................................... 46


Funkcja ANSI/ISO CAST ......................................................................47
Funkcja ANSI/ISO EXTRACT ..............................................................48
Konwersja daty i czasu (Oracle) ...........................................................49
Konwersja wartoci liczbowych (Oracle)...............................................54
Pozostae funkcje konwersji (Oracle) ...................................................57
Konwersja daty i czasu (DB2) ...............................................................58
Konwersja wartoci liczbowych (DB2).................................................62
Inne funkcje konwersji (DB2) ................................................................64
Konwersja daty i czasu (SQL Server) ...................................................64
Konwersja wartoci liczbowych (SQL Server) ....................................69

Spis treci

Inne funkcje konwersji (SQL Server)....................................................71


Konwersja daty i czasu (MySQL) .........................................................72
Konwersja wartoci liczbowych (MySQL)...........................................77

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

Scalanie danych .................................................................. 113


Uaktualnianie danych ....................................................... 115
Proste uaktualnianie .............................................................................115
Nowe wartoci pozyskiwane z podzapyta .....................................116
Uaktualnianie danych za porednictwem kursora...........................117
Uaktualnianie danych za pomoc widokw i podzapyta.............117
Uaktualnianie partycji (Oracle) ...........................................................118
Zwracanie uaktualnionych danych (Oracle) .....................................118
Klauzula FROM instrukcji UPDATE (SQL Server) ..........................119

SQL. Leksykon kieszonkowy

Unie....................................................................................... 120
Operacja UNION i UNION ALL ........................................................120
Kolejno przetwarzania instrukcji.....................................................122
Operacja EXCEPT (lub MINUS)..........................................................123
Operacja INTERSECT...........................................................................125

Usuwanie danych ............................................................... 127


Usuwanie wszystkich wierszy ............................................................129
Usuwanie danych z widokw i podzapyta ....................................130
Usuwanie danych z partycji (Oracle) .................................................130
Zwracanie usuwanych danych (Oracle) ............................................131
Podwjna klauzula FROM (SQL Server) ...........................................132

Wartoci NULL .................................................................. 133


Predykaty dla wartoci NULL ............................................................133
Wartoci NULL w wyraeniach CASE ..............................................135
Funkcje operujce wartociami NULL (Oracle)................................135
Funkcje operujce wartociami NULL (DB2)....................................136
Funkcje operujce wartociami NULL (SQL Server) .......................137
Funkcje operujce wartociami NULL (MySQL)..............................137

Wprowadzanie danych...................................................... 138


Wprowadzanie pojedynczych wierszy ..............................................138
Obiekty docelowe podczas wprowadzania danych.........................140
Wprowadzanie danych do podzapyta ............................................140
Wprowadzanie danych
za pomoc cieek bezporednich (Oracle)....................................141
Zwracanie wprowadzonych wartoci (Oracle) .................................142
Wprowadzenie danych do wielu tabel (Oracle) ...............................143

Wyraenia CASE ................................................................ 145


Proste wyraenia CASE .......................................................................145
Przeszukiwane wyraenia CASE........................................................146

Wyraenia regularne.......................................................... 148


Wyraenia regularne (Oracle) .............................................................148
Wyraenia regularne (SQL Server).....................................................151
Wyraenia regularne (MySQL) ...........................................................151

Spis treci

Zapytania hierarchiczne ................................................... 153


Klauzula WITH rekurencyjnych zapyta ANSI/ISO (DB2) ...........153
Skadnia klauzuli CONNECT BY (Oracle).............................................155

Zapytania rekurencyjne..................................................... 161


Zapytania retrospektywne (Oracle)................................ 161
Zarzdzanie transakcjami................................................ 162
Tryb automatycznego zatwierdzania.................................................163
Rozpoczynanie transakcji ....................................................................164
Koczenie transakcji .............................................................................167
Przerwanie transakcji ...........................................................................169
Przerwanie transakcji i powrt do wyznaczonego punktu.............170

Zczanie tabel ................................................................... 171


Koncepcja zczenia..............................................................................171
Zczenia bezwarunkowe ....................................................................173
Zczenia wewntrzne..........................................................................174
Zczenia wyznaczane za pomoc nierwnoci ...............................178
Zczenia zewntrzne...........................................................................179

Skorowidz............................................................................ 185

SQL. Leksykon kieszonkowy

Zmiana wielkoci liter cigu tekstowego


Aby zamieni litery cigu tekstowego na wielkie lub mae, naley
zastosowa odpowiednio funkcje  lub .
 

 

Serwer Oracle udostpnia rwnie funkcj



 
,
ktrej zadaniem jest ustanowienie wielkiej litery na pocztku
kadego sowa cigu tekstowego i zapewnienie, e pozostae litery
kadego sowa bd maymi literami.
Baza danych DB2 obsuguje rwnie inne nazwy dla funkcji 
i    i  .

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.

Funkcje grupowania i sumowania

34

Funkcje grupowania i sumowania


Jzyk SQL umoliwia grupowanie wierszy w zbiory, a nastpnie
zestawianie uzyskanych wynikw na wiele sposobw. Ostatecznie
zwracany jest pojedynczy wiersz utworzony na bazie takiego
zbioru. Uzyskanie wspomnianego rezultatu wymaga zastosowania klauzul  lub 
 oraz funkcji agregujcych.

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  .
   !"#$
%& '

Doczenie do polecenia sw kluczowych  i (



pozwala
na okrelenie, czy wszystkie niepuste (rne od ) wartoci
zostan wykorzystane jako dane wejciowe oraz czy odrzucone
zostan wartoci powtarzajce si.
   (

$)#*$+ 
  $)#*$+
%& '

Sowo kluczowe  jest doczane w sposb domylny instrukcja     jest tosama z instrukcj     .
Funkcja  ma szczeglny charakter, gdy umoliwia przekazanie jako argumentu symbolu gwiazdki (,).
   , %& '

Funkcje grupowania i sumowania

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$)#*$+
*-./#*$+'

Tabela 3. Najczciej wykorzystywane funkcje agregujce


Funkcja

Opis



Zwraca warto redni ze zbioru liczb

 

Zlicza wartoci rne od  danego zbioru

&2

Zwraca najwiksz warto ze zbioru

&(
 

Zwraca warto mediany (warto rodkow) danego zbioru liczb.


Zwracana warto moe by wynikiem interpolacji. Funkcja jest
dostpna jedynie w bazie danych Oracle

36

SQL. Leksykon kieszonkowy

&


Zwraca najmniejsz warto ze zbioru

 ((

Zwraca warto odchylenia standardowego dla zbioru wartoci.


W serwerze SQL Server w nazwie funkcji  ( wystpuje tylko
jedna litera (

&

Zwraca warto sumy liczb zbioru


 

Zwraca warto wariancji dla zbioru wartoci. W serwerze SQL


Server funkcja ta ma nazw . Nie wystpuje natomiast
w bazach danych DB2 i MySQL

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<

Funkcje grupowania i sumowania

37

&!-$+$-3
&!-$+$-3
")+4- =
-4<
-4
-4
 *;+=


Wszystkie kolumny, ktrym nie odpowiada adna warto funkcji


agregujcej, zostay zastpione jednym wpisem.
&!-$+$-3<
")+4- =
-4<
 *;+=


W praktyce sprowadzenie wielu wierszy do jednego wiersza


wartoci zagregowanych oznacza, e funkcja agregujca musi zosta zastosowana w odniesieniu do dowolnej kolumny nie objtej
klauzul .

Uyteczne techniki
stosowania klauzuli GROUP BY
W dalszej czci tego podrozdziau zostay opisane niektre, czciej stosowane techniki budowania zapyta z klauzul .

38

SQL. Leksykon kieszonkowy

Zmniejszenie liczby kolumn


w klauzuli GROUP BY
Niekiedy zachodzi konieczno umieszczenia danej kolumny
w sekcji  zapytania z klauzul , ale bez umieszczania tej kolumny w klauzuli . Jako przykad mona rozway przedstawione poniej zapytanie, w ktrym nazwa miasta
wynika z identyfikatora miasta.
 *$)#*$+--./#*$+  ,
%&*$+*
0
 
 *$)#*$+1$)#*$+
*$)#*$+*-./#*$+'

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.

Funkcje grupowania i sumowania

39

Grupowanie przed zczeniem


W prezentowanych wczeniej przykadach zastosowania klauzuli
 definiowane byy zczenia wykonywane przed operacj
grupowania. Wykorzystanie podzapyta umoliwia wykonanie
zapytania w inny sposb, tak by zczenie zostao wykonane po
zakoczeniu dziaania funkcji agregujcej.
 *-./#*$+3"$.9#
%&*$+*
0

 $)#*$+  , "$.9#
%&
$)#*$+ 3
 *$)#*$+13$)#*$+'

Zalet zastosowania tej wersji zapytania jest to, e zczenie jest


wykonywane na znacznie mniejszej liczbie wierszy, ni gdyby byo
przeprowadzone przed agregacj danych. Dodatkow korzyci
jest zmniejszenie iloci potrzebnej przestrzeni dyskowej oraz pamici operacyjnej. Wiersze poddawane grupowaniu nie zawieraj
bowiem adnych informacji pochodzcych z tabeli *$+.

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$)#*$+
*-./#*$+

  , >='

Nigdy nie naley umieszcza w klauzuli 


 warunku, ktry nie
obejmuje funkcji agregacji. Rozwamy kolejne zapytanie, ktre

40

SQL. Leksykon kieszonkowy

udostpnia informacje na temat liczby atrakcji turystycznych


Keweenaw Peninsula.
 *-./#*$+  ,
%&**$+
0
 
 *$)#*$+1$)#*$+
*-./#*$+

*-./#*$+

? 466 94??-4? '

Znacznie efektywniejsze jest zastosowane zapytania, w ktrym


ograniczenia nakadane na nazwy miast s wyraone za pomoc
klauzuli .
 *-./#*$+  ,
%&**$+
0
 
 *$)#*$+1$)#*$+
*-./#*$+

? 466 94??-4?
*-./#*$+

Klauzula  zmniejsza liczb wierszy podawanych dziaaniu


klauzuli . Konieczne jest wic zapisanie mniejszej liczby
wierszy i wykonanie mniejszej liczby operacji funkcji agregujcej.
Klauzula 
 znajduje zastosowanie w przypadku filtrowania
wierszy bdcych wynikiem operacji  , jeli filtrowaniu
podlegaj agregowane wartoci.

Rozszerzenia klauzuli GROUP BY


(Oracle)
W bazach danych Oracle zostao zaimplementowanych kilka
uytecznych rozszerze klauzuli . Nale do nich: ,
 oraz 
  . Funkcje poszczeglnych opcji zostay
omwione w kolejnych podrozdziaach. Dodatkowo opisane zostay rwnie pewne funkcje skalarne, ktre uatwiaj przetwa-

Funkcje grupowania i sumowania

41

rzanie danych pozyskanych w wyniku zastosowania wspomnianych rozszerze.

Rozszerzenie ROLLUP (Oracle)


Rozszerzenie klauzuli  o sowo kluczowe  powoduje
dodanie wiersza podsumowania do kadej grupy danych.












 

 !

" #"


 

$ 


" #"

%

 

$
 


& '() '










*+,"&


-./

Poniej zosta zamieszczony wynik wykonania instrukcji. Wiersze


pogrubione zostay wygenerowane w wyniku uycia opcji .
@#  @#&
 
@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
"3 &!-$+$-3<
+0%1
4!374--4<
*2302 1
&B!  
+76 *$-3C
&B!  &B!  <
!
43%%5
67

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

SQL. Leksykon kieszonkowy

Opcja  nie musi by stosowana w odniesieniu do wszystkich


kolumn klauzuli . Przykadowy, przedstawiony poniej,
fragment zapytania umoliwia zliczenie atrakcji wszystkich miast
i wszystkich hrabstw, ale nie powoduje wygenerowania oglnej
wartoci sumy, widocznej w poprzednim przykadzie.
7-./#79+/*-./#*$+

Rozszerzenie CUBE (Oracle)


Dodanie do instrukcji sowa kluczowego  powoduje wygenerowanie podsumowa dla wszystkich moliwych kombinacji kolumn wymienionych w zapytaniu oraz doczenie oglnej wartoci
sumy.












 

 !

" #"


 

$ 


" #"

%

 

$
 


8* 



$9*2302 9
& '()(







/
@#  @#&
 
@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
<
-4<
4!374-<
4!374--4<

Rozszerzenie GROUPING SETS (Oracle)


Wprowadzona w bazie danych Oracle 9i opcja 
  umoliwia wyznaczanie dowolnych obszarw grupowania.












 

Funkcje grupowania i sumowania

43

 !

" #"


 

$ 


" #"

%

 

$
 


& '()
& '"&








*+,"&


-./
@#  @#&
 
@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
"3 <
4!374-<
&B!  D
-4<

+76 *$-3C
&B!  <
&!-$+$-3<

Zastosowane w tym przykadzie rozszerzenie 


  powoduje wykonanie funkcji agregujcej dla hrabstw i miast. Uzyskanie takiego samego wyniku bez wykorzystania opcji 
 
wymagaoby zrealizowania dwch zapyta.

Funkcje zwizane z klauzul GROUP BY


(Oracle)
Jako kolejne zostan przedstawione funkcje, ktrych stosowanie
wraz z dostpnymi w bazie Oracle rozszerzeniami klauzuli 
 bywa bardzo uyteczne.




Funkcja ta zwraca warto 1, jeli wynikiem operacji ,


 lub 
  bya warto . W przeciwnym
przypadku wynikiem jest warto 0.


#
(
 
 

Dziaanie tej funkcji jest podobne do funkcji 


. Rnica polega na tym, e w jej wyniku zwracany jest wektor

44

SQL. Leksykon kieszonkowy

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.
#
(

Funkcja ta umoliwia wyznaczenie duplikowanych wierszy,


generowanych przez opcje ,  i 
 . Wynikiem jej dziaania jest warto z przedziau od 0 do n1, odpowiadajca kademu wierszowi zbioru o n duplikatach.
Poprzez wykorzystanie zwracanej przez funkcj wartoci
mona zdecydowa o tym, ile zduplikowanych wierszy powinno pozosta w wyniku. Aby wyeliminowa wszystkie duplikaty, wystarczy zastosowa klauzul 
#
( 1E.

Rozszerzenia klauzuli GROUP BY


(SQL Server)
W serwerze SQL, podobnie jak w bazie danych Oracle, rwnie
zaimplementowane zostay rozszerzenia  i . Niestety
sposb ich wykorzystania jest nieco odmienny i mniej elastyczny.

Rozszerzenie ROLLUP (SQL Server)


Opcja  dodaje wiersz podsumowania dla kadej grupy
danych.
 7-./#79+/*-./#*$+
  $)#$ "$.9
%&79+/7
0
*$+*
 7$)#79+/1*$)#79+/

0
 
 *$)#*$+1$)#*$+
7-./#79+/*-./#*$+


  $)#$ >='

Funkcje grupowania i sumowania

45

Uzyskany rezultat jest identyczny z prezentowanym podczas


omawiania rozszerzenia  bazy danych Oracle. Serwer SQL
Server nie pozwala jednak na stosowanie opcji  jedynie
w odniesieniu do wybranych kolumn klauzuli . Rozszerzenie obejmuje wszystkie kolumny lub nie obejmuje adnej z nich.

Rozszerzenie CUBE (SQL Server)


Opcja  generuje podsumowania dla wszystkich kombinacji
kolumn ujtych w klauzuli  . Dodaje take oglne podsumowanie.
 7-./#79+/*-./#*$+
  $)#$ "$.9
%&79+/7
0
*$+*
 7$)#79+/1*$)#79+/

0
 
 *$)#*$+1$)#*$+
7-./#79+/1?4!374-?
7-./#79+/*-./#*$+
 '

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

SQL. Leksykon kieszonkowy