SQL_Receptury_sqlrec.pdf

(188 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREœCI
SQL. Receptury
Autor: Anthony Molinaro
T³umaczenie: Miko³aj Szczepaniak
ISBN: 83-246-0450-2
Tytu³ orygina³u:
SQL Cookbook
Format: B5, stron: 624
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
SQL jest jêzykiem programowania u¿ywanym we wszystkich najpopularniejszych
systemach zarz¹dzania bazami danych. Oczywiœcie, ka¿dy z nich ma specyficzne
dla siebie polecenia i parametry, jednak rdzeñ jêzyka jest ustandaryzowany.
SQL wykorzystuje siê do tworzenia baz i tabel, wprowadzania danych do bazy
i manipulowania nimi oraz do administrowania serwerem bazy danych.
Mimo stosunkowo niewielkiego zbioru s³ów kluczowych, jest niezwykle elastyczny
i uniwersalny.
Ksi¹¿ka „SQL. Receptury” to zestawienie rozwi¹zañ problemów, z jakimi programiœci
baz danych spotykaj¹ siê w swojej pracy. Przedstawia zagadnienia zwi¹zane
z wybieraniem rekordów z bazy, grupowaniem, sortowaniem ich i tworzeniem z³o¿onych
zapytañ wykorzystuj¹cych kilka tabel. Opisuje metody wprowadzania danych do bazy,
tworzenia raportów i przetwarzania wyników zapytañ. Ka¿de z rozwi¹zañ
zaprezentowane jest w formie polecenia SQL opatrzonego szczegó³owym
komentarzem.
• Odczytywanie danych z bazy
• Sortowanie wyników zapytañ
• £¹czenie tabel w zapytaniach
• Wprowadzanie i aktualizowanie danych w tabelach
• Usuwanie rekordów
• Operacje na liczbach i datach
• Zapytania z³o¿one
• Tworzenie raportów
• Polecenia SQL specyficzne dla okreœlonych systemów baz danych
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Optymalna konstrukcja zapytañ SQL jest jednym z warunków szybkiego dzia³ania
aplikacji bazodanowych. Dziêki wiadomoœciom z tej ksi¹¿ki ka¿dy programista baz
danych wykorzysta wszystkie mo¿liwoœci jêzyka SQL.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOœCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Przedmowa ................................................................................................................... 11
1. Odczytywanie rekordów ............................................................................................. 29
Odczytywanie wszystkich wierszy i kolumn tabeli
Odczytywanie podzbioru wierszy tabeli
Odnajdywanie wierszy spełniających wiele warunków
Odczytywanie podzbioru kolumn tabeli
Definiowanie znaczących nazw kolumn
Odwołania do aliasów kolumn w klauzuli WHERE
Konkatenacja wartości kolumn
Stosowanie logiki warunkowej w wyrażeniu SELECT
Ograniczanie liczby zwracanych wierszy
Zwracanie n losowych rekordów tabeli
Odnajdywanie wartości pustych
Tłumaczenie wartości pustych na wartości rzeczywiste
Poszukiwanie wzorców
29
30
30
31
32
33
34
35
36
38
39
40
41
2. Sortowanie wyników zapytań ................................................................................... 43
Zwracanie wyników zapytań posortowanych w określonym porządku
Sortowanie zbioru wynikowego według zawartości wielu pól
Sortowanie według podłańcuchów
Sortowanie wymieszanych danych alfanumerycznych
Obsługa wartości pustych w zapytaniach sortujących
Sortowanie według klucza zależnego od danych
43
44
45
46
49
55
3. Praca z wieloma tabelami ........................................................................................... 57
Umieszczanie jednego zbioru wierszy ponad drugim
Łączenie wzajemnie powiązanych wierszy
Odnajdywanie wspólnych wierszy pomiędzy dwiema tabelami
Uzyskiwanie z jednej tabeli tylko tych wartości, które nie występują w innej tabeli
Spis treści
|
57
59
60
62
5
Uzyskiwanie z jednej tabeli tylko tych wierszy, dla których nie istnieją
odpowiedniki w innej tabeli
Dodawanie złączeń do zapytań bez konieczności modyfikowania pozostałych,
już istniejących złączeń
Określanie, czy dwie tabele zawierają te same dane
Identyfikowanie i eliminowanie iloczynów kartezjańskich
Stosowanie złączeń w zapytaniach wykorzystujących funkcje agregujące
Stosowanie złączeń zewnętrznych w zapytaniach wykorzystujących funkcje
agregujące
Zwracanie brakujących danych z wielu tabel
Wykorzystywanie wartości NULL w operacjach i wyrażeniach warunkowych
66
68
70
76
78
82
85
89
4. Wstawianie, aktualizowanie i usuwanie ................................................................... 91
Wstawianie nowych rekordów
Wstawianie wartości domyślnych
Przykrywanie wartości domyślnych wartością NULL
Kopiowanie wierszy pomiędzy tabelami
Kopiowanie definicji tabel
Wstawianie wierszy do wielu tabel jednocześnie
Blokowanie możliwości wstawiania wartości do wybranych kolumn
Modyfikowanie rekordów tabeli
Aktualizowanie danych pod warunkiem zawierania w tabeli określonych wierszy
Aktualizowanie wartości według zawartości innej tabeli
Scalanie rekordów
Usuwanie wszystkich rekordów z tabeli
Usuwanie rekordów spełniających określone kryteria
Usuwanie pojedynczych rekordów
Usuwanie wierszy naruszających integralność odwołań
Usuwanie powtarzających się rekordów
Usuwanie wierszy będących przedmiotem odwołań rekordów składowanych
w innej tabeli
92
92
94
95
95
97
99
100
101
102
105
107
107
108
109
110
111
5. Zapytania przetwarzające metadane ....................................................................... 113
Generowanie listy tabel wchodzących w skład schematu bazy danych
Generowanie listy kolumn danej tabeli
Generowanie listy indeksowanych kolumn danej tabeli
Generowanie listy ograniczeń zdefiniowanych dla tabeli
Generowanie listy kluczy obcych pozbawionych indeksów
Generowanie kodu języka SQL za pomocą wyrażeń tego języka
Opisywanie perspektyw słowników danych w bazie danych Oracle
113
114
115
117
118
121
123
6
|
Spis treści
6. Praca z
łańcuchami
..................................................................................................... 125
Przechodzenie pomiędzy znakami łańcucha
Umieszczanie apostrofów w stałych łańcuchowych
Zliczanie wystąpień znaku w łańcuchu wejściowym
Usuwanie z łańcucha niechcianych znaków
Oddzielanie danych numerycznych od danych znakowych
Określanie, czy łańcuch jest ciągiem alfanumerycznym
Określanie inicjałów na podstawie całych imion i nazwisk
Sortowanie kolumn według wybranych fragmentów łańcuchów
Sortowanie danych według liczb zapisanych w łańcuchach
Tworzenie listy wartości oddzielonych przecinkami z danych zawartych
w wierszach tabeli
Konwertowanie danych oddzielonych przecinkami na wielowartościową listę IN
Sortowanie znaków w łańcuchach w porządku alfabetycznym
Identyfikowanie łańcuchów, które można traktować jak liczby
Odnajdywanie n-tego podłańcucha na liście oddzielonej przecinkami
Przetwarzanie adresów IP
126
128
129
130
131
135
140
144
145
151
157
162
168
174
180
7. Praca z liczbami .......................................................................................................... 183
Wyznaczanie wartości średniej
Identyfikacja minimalnej i maksymalnej wartości w kolumnie
Sumowanie wartości składowanych w kolumnie
Zliczanie wierszy tabeli
Zliczanie różnych wartości w kolumnie
Generowanie sum bieżących
Generowanie iloczynów bieżących
Wyznaczanie różnic bieżących
Wyznaczanie wartości modalnej (dominanty)
Wyznaczanie mediany
Określanie procentowego udziału w wartości łącznej
Agregowanie kolumn zawierających wartości NULL
Wyznaczanie wartości średnich z wyłączeniem wartości spoza określonego
przedziału
Konwertowanie łańcuchów alfanumerycznych na liczby
Modyfikowanie wartości uwzględnianych w sumach bieżących
183
185
187
188
190
191
194
197
198
201
205
207
209
210
213
8. Działania na datach .................................................................................................... 215
Dodawanie i odejmowanie dni, miesięcy i lat
Określanie liczby dni pomiędzy dwiema datami
Określanie liczby dni roboczych pomiędzy dwiema datami
Określanie liczby miesięcy lub lat dzielących dwie daty
Określanie liczby sekund, minut lub godzin dzielących dwie daty
Spis treści
|
215
218
220
224
227
7
Zliczanie wystąpień poszczególnych dni tygodnia w roku
Określanie różnicy dzielącej datę reprezentowaną w bieżącym rekordzie
i datę reprezentowaną w rekordzie następnym
228
239
9. Przetwarzanie dat ..................................................................................................... 245
Określanie, czy dany rok jest rokiem przestępnym
Określanie liczby dni w roku
Wydobywanie jednostek czasu z dat wejściowych
Określanie pierwszego i ostatniego dnia miesiąca
Określanie wszystkich dat dla konkretnego dnia tygodnia w ciągu danego roku
Określanie dat pierwszego i ostatniego wystąpienia określonego dnia tygodnia
w danym miesiącu
Tworzenie kalendarza
Generowanie dat rozpoczynających i kończących
poszczególne kwartały danego roku
Określanie daty początkowej i końcowej dla danego na wejściu kwartału
Odnajdywanie brakujących dat
Przeszukiwanie według określonych jednostek czasu
Porównywanie rekordów według określonych fragmentów dat
Identyfikacja wzajemnie pokrywających się przedziałów czasowych
246
252
255
257
260
267
274
291
296
303
312
314
317
10. Praca z przedziałami ................................................................................................. 323
Lokalizowanie przedziałów w ramach ciągów wartości
Odnajdywanie różnic pomiędzy wierszami należącymi do tej samej grupy
lub wycinka danych
Lokalizowanie początków i końców przedziałów wartości następujących
bezpośrednio po sobie
Uzupełnianie brakujących wartości w przedziale
Generowanie kolejnych wartości liczbowych
323
328
337
342
346
11. Zaawansowane przeszukiwanie ............................................................................... 351
Podział zbioru wynikowego na strony
Pomijanie n wierszy tabeli
Stosowanie logiki alternatywy w zapytaniach wykorzystujących złączenia
zewnętrzne
Identyfikacja par odwrotnych w przetwarzanym zbiorze wierszy
Wybieranie n najlepszych rekordów
Odnajdywanie rekordów z największymi i najmniejszymi wartościami
Badanie „przyszłych” wierszy
Przenoszenie wartości nieprzetworzonych
Przypisywanie ocen do wierszy zbioru wynikowego
Eliminowanie powtórzeń
351
354
357
360
361
363
365
369
372
373
8
|
Spis treści
Zgłoś jeśli naruszono regulamin