Helion - SQL Od Podstaw.pdf

(609 KB) Pobierz
SQL. Od podstaw
IDZ DO
PRZYK£ADOW Y ROZDZIA£
SQL. Od podstaw
SPIS TREŒCI
KATALOG KSI¥¯EK
Autorzy: Paul Wilton, John Colby
T³umaczenie: Miko³aj Szczepaniak
ISBN: 83-7361-999-2
Tytu³ orygina³ u: Beginning SQL
Format: B5, stron: 473
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Dane i informacje to dziœ najcenniejszy towar. Systemy zarz¹dzania bazami danych to
potê¿ne narzêdzia, pozwalaj¹ce nie tylko na przechowywanie danych, ale tak¿e na ich
przetwarzanie, modyfikowanie i wydobywanie w oparciu o przeró¿ne kryteria. Podstaw¹
wszystkich operacji na danych zgromadzonych w bazach jest jêzyk SQL — narzêdzie
s³u¿¹ce do manipulowania zbiorami informacji. SQL, przyjêty i zatwierdzony przez
miêdzynarodowe organizacje i komitety standaryzacyjne, jest wykorzystywany
w niemal wszystkich systemach zarz¹dzania bazami danych. Ka¿dy z producentów
dodaje do niego "w³asne" elementy, ale rdzeñ jêzyka pozostaje taki sam niezale¿nie
od platformy.
Ksi¹¿ka „SQL. Od podstaw” to podrêcznik jêzyka SQL i omówienie zagadnieñ
zwi¹zanych z projektowaniem baz danych przeznaczone dla osób wkraczaj¹cych
dopiero w œwiat baz danych. Przedstawia podstawowe wyra¿enia jêzyka SQL,
s³u¿¹ce do wprowadzania danych do bazy, wyci¹gania ich oraz manipulowania nimi.
Czytaj¹c t¹ tê ksi¹¿kê, dowiesz siê, czym s¹ z³¹czenia i podzapytania, postaci normalne
baz danych oraz transakcje i perspektywy. Poznasz sposoby projektowania tabel,
zabezpieczania zgromadzonych w nich informacji oraz metody podnoszenia wydajnoœci
i szybkoœci dzia³ania baz danych.
• Struktura relacyjnych baz danych
• Wpisywanie danych do bazy
• Wydobywanie i porz¹dkowanie danych
• Normalizacja i postaci normalne
• Projektowanie baz danych
• Operacje matematyczne, grupuj¹ce i agreguj¹ce
• Stosowanie z³¹czeñ i podzapytañ
• Tworzenie i wykorzystywanie perspektyw
• Mechanizmy transakcyjne
• Podnoszenie wydajnoœci bazy danych i optymalizowanie zapytañ
Dziêki tej ksi¹¿ce poznasz wszystko — znajdziesz omówienie tego, co mo¿e okazaæ siê
potrzebne podczas projektowania i korzystania z baz danych.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ONOWOŒCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
99070116.001.png 99070116.002.png 99070116.003.png 99070116.004.png
Spis treści
O autorach ................................................................................................................................................ 13
Wprowadzenie ......................................................................................................................................... 15
Dla kogo jest ta książka? ............................................................................................. 16
O czym jest ta książka? ................................................................................................ 16
Jak zorganizowano tę książkę? ...................................................................................... 17
Czego będziesz potrzebował do pracy z tą książką? ........................................................ 18
Konwencje .................................................................................................................. 18
Kod źródłowy ............................................................................................................... 19
p2p.wrox.com .............................................................................................................. 19
Rozdział 1. Wprowadzenie do języka SQL ............................................................................................... 21
Krótka historia baz danych ............................................................................................ 21
Identyfikacja baz danych .......................................................................................... 22
W jakich okolicznościach należy korzystać z baz danych ........................................ 24
Stosowane w tej książce systemy zarządzania bazami danych ............................... 26
Strukturalny język zapytań (SQL) .................................................................................... 27
Wprowadzenie do zapytań języka SQL ....................................................................... 27
Zestawienie języka SQL z pozostałymi językami programowania .................................. 28
Standardy języka SQL .............................................................................................. 29
Tworzenie baz danych ................................................................................................... 30
Organizacja relacyjnych baz danych .......................................................................... 31
Składnia języka SQL .......................................................................................... 33
Tworzenie bazy danych ....................................................................................... 35
Typy danych ...................................................................................................... 36
Tworzenie, modyfikowanie i usuwanie tabel .................................................................... 44
Tworzenie tabeli ..................................................................................................... 44
Modyfikowanie istniejącej tabeli ............................................................................... 46
Usuwanie istniejącej tabeli ...................................................................................... 47
Dobry projekt bazy danych ............................................................................................ 47
Gromadzenie i analiza rzeczywistych potrzeb związanych z danymi .............................. 48
Logiczny podział danych .......................................................................................... 49
Dobór właściwych typów danych ............................................................................... 52
Stosowanie klucza głównego ................................................................................... 54
Tworzenie przykładowej bazy danych .............................................................................. 56
Podsumowanie ............................................................................................................ 61
Ćwiczenia .................................................................................................................... 62
Rozdział 2. Wpisywanie informacji ........................................................................................................63
Wstawianie nowych danych ........................................................................................... 63
Wstawianie danych do bazy danych przykładu użycia ....................................................... 67
Aktualizowanie danych ................................................................................................. 68
Klauzula WHERE ..................................................................................................... 70
 
6
SQL. Od podstaw
Operatory logiczne AND i OR ............................................................................... 71
Usuwanie danych ......................................................................................................... 73
Podsumowanie ............................................................................................................ 74
Ćwiczenia .................................................................................................................... 75
Rozdział 3. Wydobywanie informacji .....................................................................................................77
Wyrażenie SELECT ....................................................................................................... 77
Zwracanie tylko różnych wierszy ............................................................................... 79
Stosowanie aliasów ................................................................................................ 80
Filtrowanie danych wynikowych za pomocą klauzuli WHERE ........................................ 81
Jak to działa? .................................................................................................... 85
Operatory logiczne i kolejność operatorów ...................................................................... 86
Wprowadzenie do kolejności operatorów ................................................................... 87
Jak to działa? .................................................................................................... 90
Stosowanie operatorów logicznych ........................................................................... 91
Operator NOT .................................................................................................... 91
Operator BETWEEN ............................................................................................ 92
Jak to działa? .................................................................................................... 93
Operator LIKE .................................................................................................... 95
Jak to działa? .................................................................................................... 98
Operator IN ....................................................................................................... 99
Jak to działa? .................................................................................................. 100
Porządkowanie danych wynikowych za pomocą klauzuli ORDER BY ................................. 101
Jak to działa? .................................................................................................. 106
Łączenie kolumn — konkatenacja .......................................................................... 108
Microsoft SQL Server i Microsoft Access ........................................................... 109
Oracle i IBM DB2 ............................................................................................. 111
MySQL ............................................................................................................ 114
Wydobywanie danych z wielu tabel ............................................................................... 117
Stosowanie nawiasów wokół złączeń wewnętrznych w systemie Microsoft Access ...... 128
Język SQL i zbiory ................................................................................................. 130
Jak to działa? .................................................................................................. 137
Wprowadzenie do danych NULL ................................................................................... 141
Podsumowanie .......................................................................................................... 144
Ćwiczenia .................................................................................................................. 145
Rozdział 4. Zaawansowane projektowanie baz danych ...................................................................... 147
Normalizacja .............................................................................................................. 147
Pierwsza postać normalna ..................................................................................... 148
Druga postać normalna ......................................................................................... 150
Trzecia postać normalna ....................................................................................... 151
Zapewnianie poprawności danych za pomocą ograniczeń .............................................. 154
Ograniczenie NOT NULL ......................................................................................... 155
Ograniczenie UNIQUE ............................................................................................ 157
Ograniczenie CHECK ............................................................................................. 161
Jak to działa? .................................................................................................. 162
Klucz główny i ograniczenie PRIMARY KEY .............................................................. 164
Jak to działa? .................................................................................................. 166
Klucz obcy ............................................................................................................ 168
Jak to działa? .................................................................................................. 172
Przyspieszanie procesu generowania zbiorów wynikowych za pomocą indeksów .............. 173
Udoskonalanie projektu bazy danych Klub Filmowy .................................................. 177
Ponowna analiza struktury bazy danych Klub Filmowy ......................................... 177
Spis treści
7
Udoskonalanie mechanizmów weryfikowania poprawności danych
i poprawa efektywności ...................................................................................... 180
Wskazówki dotyczące projektowania lepszych baz danych ........................................ 188
Podsumowanie .......................................................................................................... 190
Ćwiczenia .................................................................................................................. 190
Rozdział 5. Przetwarzanie danych .......................................................................................................193
Arytmetyka języka SQL ............................................................................................... 193
Podstawowe operacje matematyczne ..................................................................... 194
Najczęściej stosowane funkcje matematyczne ......................................................... 195
Funkcja ABS() .................................................................................................. 196
Funkcja POWER() ............................................................................................. 197
Funkcja SQRT() ................................................................................................ 198
Funkcja RAND() ............................................................................................... 199
Zaokrąglanie liczb ................................................................................................. 200
Funkcja CEILING() ............................................................................................ 201
Funkcja FLOOR() .............................................................................................. 202
Funkcja ROUND() ............................................................................................. 203
Wprowadzenie do funkcji przetwarzających łańcuchy ..................................................... 205
Funkcja SUBSTRING() ............................................................................................ 206
Funkcje konwertujące wielkość znaków ................................................................... 208
Funkcja REVERSE() ............................................................................................... 209
Funkcja TRIM() ...................................................................................................... 209
Funkcja LENGTH() ................................................................................................. 210
Funkcje SOUNDEX() i DIFFERENCE() ....................................................................... 213
Funkcje przetwarzające daty .................................................................................. 216
Konwertowanie różnych typów danych .......................................................................... 217
Ponowna analiza wartości NULL .................................................................................. 219
Wartości NULL w wyrażeniach matematycznych ....................................................... 219
Wartości NULL w operacjach na łańcuchach ............................................................ 220
Funkcja COALESCE() ............................................................................................. 222
Stosowanie poleceń INSERT INTO w wyrażeniach SELECT ............................................. 224
Podsumowanie .......................................................................................................... 226
Ćwiczenia .................................................................................................................. 227
Rozdział 6. Grupowanie i agregowanie danych .................................................................................. 229
Wyniki grupowania ..................................................................................................... 229
Podsumowywanie i agregowanie danych ...................................................................... 232
Zliczanie wierszy wynikowych ................................................................................. 232
Jak to działa? .................................................................................................. 236
Sumowanie wyników ............................................................................................. 237
Jak to działa? .................................................................................................. 238
Uśrednianie wyników ............................................................................................. 239
Jak to działa? .................................................................................................. 240
Szukanie wartości maksymalnych i minimalnych w danych wynikowych ..................... 241
Jak to działa? .................................................................................................. 243
Stosowanie wyrażeń GROUP BY łącznie z klauzulą HAVING ............................................ 244
Jak to działa? .................................................................................................. 245
Podsumowanie .......................................................................................................... 247
Ćwiczenia .................................................................................................................. 247
Rozdział 7. Wydobywanie danych z różnych tabel ............................................................................. 249
Jeszcze raz o złączeniach ........................................................................................... 249
8
SQL. Od podstaw
Złączenia wewnętrzne — analiza szczegółowa ......................................................... 250
Równozłączenia i nierównozłączenia .................................................................. 251
Złączenia wielokrotne i warunki wielokrotne ....................................................... 253
Złączenia krzyżowe .......................................................................................... 256
Samozłączenia ................................................................................................ 257
Złączenia zewnętrzne ............................................................................................ 262
Lewe złączenie zewnętrzne ............................................................................... 262
Prawe złączenia zewnętrzne .............................................................................. 265
Pełne złączenie zewnętrzne .............................................................................. 269
Łączenie zbiorów wynikowych za pomocą operatora UNION ............................................ 270
Podsumowanie .......................................................................................................... 276
Ćwiczenia .................................................................................................................. 277
Rozdział 8. Zapytania w zapytaniach ................................................................................................... 279
Terminologia związana z podzapytaniami ...................................................................... 279
Podzapytania na liście kolumn wyrażenia SELECT ......................................................... 280
Podzapytanie w klauzuli WHERE .................................................................................. 285
Operatory w podzapytaniach ....................................................................................... 287
Przypomnienie operatora IN ................................................................................... 288
Stosowanie operatorów ANY, SOME i ALL ............................................................... 291
Operatory ANY i SOME ..................................................................................... 291
Operator ALL ................................................................................................... 293
Stosowanie operatora EXISTS ................................................................................ 295
Jak to działa? .................................................................................................. 298
Stosowanie klauzuli HAVING z podzapytaniami ........................................................ 299
Podzapytania skorelowane .......................................................................................... 300
Podzapytania stosowane w innych wyrażeniach ............................................................ 302
Stosowanie podzapytań w wyrażeniach INSERT ....................................................... 302
Jak to działa? .................................................................................................. 305
Stosowanie podzapytań w wyrażeniach UPDATE ...................................................... 305
Stosowanie podzapytań w wyrażeniach DELETE FROM ............................................. 307
Podsumowanie .......................................................................................................... 309
Ćwiczenia .................................................................................................................. 310
Rozdział 9. Zapytania zaawansowane ................................................................................................... 311
Aktualizowanie bazy danych ........................................................................................ 311
Procedura postępowania z trudnymi zapytaniami .......................................................... 318
Rób co chcesz, rób co Ci się żywnie podoba ........................................................... 319
Wybór listy kolumn wyrażenia SELECT ............................................................... 320
Tworzenie klauzuli FROM .................................................................................. 320
Jak to działa? .................................................................................................. 327
Najważniejsze wskazówki w zakresie tworzenia efektywnych zapytań .............................. 334
Podsumowanie .......................................................................................................... 336
Ćwiczenia .................................................................................................................. 337
Rozdział 10. Perspektywy .................................................................................................................... 339
Wprowadzenie do perspektyw ..................................................................................... 339
Tworzenie perspektyw ........................................................................................... 341
Jak to działa? .................................................................................................. 342
Typy perspektyw ................................................................................................... 342
Perspektywy tabel złączonych ........................................................................... 343
Perspektywa bazowa ........................................................................................ 343
Perspektywy wierszowe .................................................................................... 345
Zgłoś jeśli naruszono regulamin