Helion - SQL Praktyczny kurs. Wydanie II.pdf

(13165 KB) Pobierz
888584842.001.png
Spis treci
Wstp .............................................................................................. 9
Cz I
Troch teorii, czyli modele i standardy .......................... 17
Rozdzia 1.
Relacyjny model baz danych ........................................................... 19
Tabele jako zbiory danych .............................................................................................. 19
Kolumny maj niepowtarzalne nazwy i zawieraj okrelone typy danych ............... 20
Wiersze powinny by unikalne ................................................................................ 21
Kolejno kolumn jest bez znaczenia ....................................................................... 21
Kolejno wierszy jest bez znaczenia ....................................................................... 22
Bazy danych ................................................................................................................... 22
Trzy modele baz danych: relacyjny, obiektowy i jednorodny ........................................ 23
Model jednorodny .................................................................................................... 23
Model relacyjny ....................................................................................................... 24
Model obiektowy ..................................................................................................... 26
Zaoenia relacyjnego modelu baz danych ..................................................................... 27
Postulaty Codda dotyczce struktury danych ........................................................... 27
Postulaty Codda dotyczce przetwarzania danych ................................................... 28
Postulaty Codda dotyczce integralnoci danych ..................................................... 29
Normalizacja ............................................................................................................ 29
Podsumowanie ................................................................................................................ 31
Zadania ........................................................................................................................... 31
Rozdzia 2.
Standardy jzyka SQL ..................................................................... 33
Strukturalny jzyk zapyta ............................................................................................. 33
Przetwarzanie zbiorów a przetwarzanie pojedynczych danych ................................ 34
Jzyk deklaratywny a jzyk proceduralny ................................................................ 35
Jzyk interpretowany a jzyk kompilowany ............................................................. 35
Skadnia jzyka SQL ................................................................................................ 37
Dialekty jzyka SQL ................................................................................................ 39
Standardy ANSI .............................................................................................................. 40
Historia ..................................................................................................................... 40
SQL3 ........................................................................................................................ 41
Podsumowanie ................................................................................................................ 44
Zadania ........................................................................................................................... 44
4
Praktyczny kurs SQL
Cz II
Pobieranie danych, czyli instrukcja SELECT ................... 47
Rozdzia 3.
Odczytywanie danych z wybranej tabeli ........................................... 49
Klauzula FROM ............................................................................................................. 49
W peni kwalifikowane nazwy obiektów ................................................................. 50
Wybieranie kolumn ........................................................................................................ 51
Eliminowanie duplikatów ............................................................................................... 52
Wyraenia ....................................................................................................................... 54
Operatory arytmetyczne ........................................................................................... 54
czenie danych tekstowych .................................................................................... 55
Funkcje systemowe .................................................................................................. 55
Formatowanie wyników ................................................................................................. 58
Aliasy ....................................................................................................................... 59
Stae (literay) ........................................................................................................... 60
Sortowanie wyników ...................................................................................................... 60
Sortowanie danych tekstowych ................................................................................ 63
Podsumowanie ................................................................................................................ 65
Zadania ........................................................................................................................... 65
Rozdzia 4.
Wybieranie wierszy ......................................................................... 67
Logika trójwartociowa .................................................................................................. 67
Warto NULL ......................................................................................................... 68
Operatory logiczne ................................................................................................... 68
Klauzula WHERE .......................................................................................................... 70
Standardowe operatory porównania ......................................................................... 71
Operatory SQL ......................................................................................................... 72
Zoone warunki logiczne ........................................................................................ 75
Klauzula TOP ................................................................................................................. 78
Stronicowanie wierszy .................................................................................................... 79
Wydajne wyszukiwanie danych ...................................................................................... 80
W jaki sposób serwery bazodanowe odczytuj dane? .............................................. 81
W jakiej kolejnoci serwery bazodanowe wykonuj poszczególne
klauzule zapyta? .................................................................................................. 84
Argumenty SARG .................................................................................................... 85
Podsumowanie ................................................................................................................ 87
Zadania ........................................................................................................................... 87
Rozdzia 5.
czenie tabel i wyników zapyta ................................................... 89
Zczenia naturalne i nienaturalne .................................................................................. 89
Klucze obce .............................................................................................................. 90
Aliasy ....................................................................................................................... 93
Zczenia równociowe i nierównociowe ..................................................................... 94
Zczenia zewntrzne ..................................................................................................... 96
Zczenie lewostronne .............................................................................................. 97
Zczenie prawostronne ............................................................................................ 97
Zczenie obustronne ................................................................................................ 98
Zczenie krzyowe (iloczyn kartezjaski) ..................................................................... 98
Zczenia wielokrotne ................................................................................................... 100
Okrelanie kolejnoci zcze ................................................................................ 103
Zczenie tabeli z ni sam ........................................................................................... 104
Eliminacja duplikatów ............................................................................................ 105
Klucze obce w obrbie jednej tabeli ....................................................................... 106
Spis treci
5
czenie wyników zapyta ........................................................................................... 107
Suma ....................................................................................................................... 108
Cz wspólna ........................................................................................................ 111
Rónica ................................................................................................................... 111
czenie wierszy i wyników funkcji tabelarycznych ................................................... 112
Operator APPLY .................................................................................................... 113
Podsumowanie .............................................................................................................. 115
Zadania ......................................................................................................................... 115
Rozdzia 6.
Grupowanie wierszy ...................................................................... 117
Funkcje grupujce ........................................................................................................ 117
Funkcja COUNT() .................................................................................................. 118
Funkcje SUM() i AVG() ........................................................................................ 119
Funkcje MIN() i MAX() ......................................................................................... 120
Inne funkcje grupujce ........................................................................................... 120
Wyraenia .............................................................................................................. 121
Klauzula GROUP BY ................................................................................................... 122
Kolejno wykonywania klauzuli GROUP BY ...................................................... 125
Operatory CUBE i ROLLUP .................................................................................. 126
Operator GROUPING SETS .................................................................................. 129
Wydajne grupowanie danych ....................................................................................... 132
Niestandardowa klauzula OVER .................................................................................. 132
Partycje ................................................................................................................... 134
Funkcje rankingu .................................................................................................... 136
Niestandardowe operatory PIVOT i UNPIVOT ........................................................... 137
PIVOT .................................................................................................................... 137
UNPIVOT .............................................................................................................. 140
Klauzula HAVING ....................................................................................................... 141
Podsumowanie .............................................................................................................. 143
Zadania ......................................................................................................................... 144
Zadanie dodatkowe, do wykonania w bazie AdventureWorks ............................... 144
Rozdzia 7.
Podzapytania ............................................................................... 145
Czym s podzapytania? ................................................................................................ 145
Podzapytania jako zmienne .......................................................................................... 146
Podzapytania niepowizane .................................................................................... 146
Podzapytania powizane ........................................................................................ 151
Podzapytania jako róda danych ................................................................................. 156
Tabele pochodne .................................................................................................... 157
CTE ........................................................................................................................ 159
Wyznaczanie trendów ............................................................................................ 165
Operatory ...................................................................................................................... 169
Operator EXISTS ................................................................................................... 170
Operator ANY lub SOME ...................................................................................... 173
Operator ALL ......................................................................................................... 177
Podsumowanie .............................................................................................................. 178
Zadania ......................................................................................................................... 179
Zadanie dodatkowe, do wykonania w bazie AdventureWorks ............................... 179
6
Praktyczny kurs SQL
Cz III
Modyfikowanie danych, czyli instrukcje INSERT,
UPDATE, DELETE oraz MERGE .................................... 181
Rozdzia 8.
Modyfikowanie danych ................................................................. 183
Wstawianie danych ....................................................................................................... 183
Klucze podstawowe ................................................................................................ 184
Wartoci domylne ................................................................................................. 185
Warto NULL ....................................................................................................... 186
Konstruktor wierszy ............................................................................................... 187
Wstawianie wyników zapyta ................................................................................ 187
Usuwanie danych .......................................................................................................... 189
Instrukcja DELETE ................................................................................................ 189
Instrukcja TRUNCATE TABLE ............................................................................ 191
Aktualizowanie danych ................................................................................................ 191
Jednoczesne aktualizowanie wielu kolumn ............................................................ 192
Wyraenia .............................................................................................................. 193
Aktualizowanie danych wybranych na podstawie danych z innych tabel .............. 193
Aktualizowanie danych za pomoc wyrae odwoujcych si do innych tabel .... 194
Instrukcja MERGE ....................................................................................................... 194
Podsumowanie .............................................................................................................. 196
Zadania ......................................................................................................................... 196
Zadanie dodatkowe, do wykonania w bazie AdventureWorks ............................... 197
Rozdzia 9.
Transakcje i wspóbieno .......................................................... 199
Waciwoci transakcji ................................................................................................. 199
Transakcyjne przetwarzanie danych ............................................................................. 201
Tryb jawnego zatwierdzania transakcji .................................................................. 202
Rozpoczynanie transakcji ....................................................................................... 203
Wycofywanie transakcji ......................................................................................... 204
Zatwierdzanie transakcji ......................................................................................... 205
Zagniedanie transakcji ........................................................................................ 205
Punkty przywracania .............................................................................................. 206
Wspóbieno .............................................................................................................. 207
Blokady .................................................................................................................. 207
Zakleszczenia ......................................................................................................... 208
Poziomy izolowania transakcji ............................................................................... 209
Model optymistyczny ............................................................................................. 213
Model pesymistyczny ............................................................................................. 214
Podsumowanie .............................................................................................................. 215
Zadania ......................................................................................................................... 215
Cz IV Tworzenie baz danych, czyli instrukcje CREATE,
ALTER i DROP ............................................................ 217
Rozdzia 10. Bazy danych i tabele .................................................................... 219
Tworzenie i usuwanie baz danych ................................................................................ 219
Tworzenie i usuwanie tabel .......................................................................................... 222
Schematy ................................................................................................................ 223
Zmiana struktury tabeli ................................................................................................. 223
Ograniczenia ................................................................................................................. 224
NOT NULL ............................................................................................................ 224
Klucz podstawowy ................................................................................................. 225
Niepowtarzalno ................................................................................................... 227
Zgłoś jeśli naruszono regulamin