100_sposobow_na_SQL_100sql.pdf

(350 KB) Pobierz
100 sposobów na SQL
Autor: Andrew Cumming, Gordon Russell
T³umaczenie: Marcin Karbowski
ISBN: 978-83-246-0985-7
Tytu³ orygina³u:
SQL Hacks
Format: B5, stron: 400
Przyk³ady na ftp: 135 kB
Zbiór praktycznych porad dla programistów i projektantów baz danych
Jak obs³ugiwaæ ró¿ne typy danych?
W jaki sposób optymalizowaæ wydajnoœæ baz danych?
Jak budowaæ raporty za pomoc¹ jêzyka SQL?
Jesteœ programist¹, któremu przypad³o w udziale opracowanie aplikacji bazodanowej?
Szukasz sposobu na zoptymalizowanie dzia³ania zapytañ SQL? A mo¿e zastanawiasz
siê, w jaki sposób sprawnie zarz¹dzaæ kontami u¿ytkowników bazy danych? Jêzyk SQL
to potê¿ne narzêdzie, którego opanowanie pozwoli Ci na sprawne poruszanie siê
w g¹szczu tabel ka¿dej bazy danych. Za pomoc¹ odpowiednio sformu³owanych
instrukcji mo¿na manipulowaæ danymi, zarz¹dzaæ kontami u¿ytkowników i generowaæ
raporty. Jednak, pomimo stosunkowo niewielkiej iloœci poleceñ, jêzyk SQL kryje w sobie
wiele zawi³oœci.
Dziêki ksi¹¿ce
„100
sposobów na SQL” nie bêdziesz musia³ odkrywaæ ka¿dej z nich
samodzielnie. W ka¿dym z rozdzia³ów znajdziesz praktyczne porady i sposoby
rozwi¹zywania typowych zadañ programistycznych zwi¹zanych z bazami danych
i jêzykiem SQL. Poznasz podstawy jêzyka, dowiesz siê, w jaki sposób przetwarzaæ
ró¿ne typy danych i korzystaæ z symboli zastêpczych. Nauczysz siê tworzyæ aplikacje
sieciowe, optymalizowaæ wydajnoœæ tabel i zapytañ SQL oraz tworzyæ raporty.
Przeczytasz ponadto o administrowaniu serwerem bazy danych i udostêpnianiu tabel
u¿ytkownikom.
Podstawowe elementy jêzyka SQL
£¹czenie tabel
Przetwarzanie danych tekstowych
Operacje na liczbach i datach
Bazy danych w aplikacjach sieciowych
Zapytania niezale¿ne od tabel
Maksymalizowanie wydajnoœci zapytañ
Tworzenie raportów
Administrowanie kontami u¿ytkowników
Udostêpnianie informacji
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Zostañ ekspertem w programowaniu baz danych!
Spis treści
Twórcy książki ................................................................................................................................9
Wstęp .............................................................................................................................................11
Rozdział 1. Podstawy SQL ...........................................................................................................19
1.
2.
3.
4.
5.
6.
Uruchamianie SQL za pomocą wiersza poleceń ........................................................ 19
Nawiązywanie połączenia między aplikacją a bazą danych SQL .................................. 27
Warunkowe polecenia INSERT ..................................................................................... 32
Polecenie UPDATE .......................................................................................................... 36
Rozwiązywanie krzyżówek w SQL .............................................................................. 39
Nie powtarzajcie bez przerwy tych samych obliczeń ................................................ 41
Rozdział 2. Polecenia JOIN, UNION oraz VIEW ..........................................................................45
7.
8.
9.
10.
11.
12.
13.
14.
Modyfikowanie schematu bez naruszania kwerend ................................................. 45
Filtrowanie wierszy i kolumn ........................................................................................ 47
Filtrowanie kolumn indeksowanych ............................................................................ 50
Konwertowanie podzapytań na wyrażenia JOIN ...................................................... 52
Konwertowanie zagregowanych podzapytań na wyrażenia JOIN ......................... 55
Upraszczanie skomplikowanych poleceń UPDATE .................................................. 56
Dopasowywanie złączeń do relacji ............................................................................... 58
Tworzenie kombinacji ..................................................................................................... 61
Rozdział 3. Obsługa tekstu ..........................................................................................................65
15.
16.
17.
18.
Wyszukiwanie słów kluczowych bez użycia operatora LIKE ................................. 65
Wyszukiwanie ciągów tekstowych w kolumnach ..................................................... 69
Rozwiązywanie anagramów .......................................................................................... 71
Sortowanie poczty elektronicznej ................................................................................. 76
Rozdział 4. Daty ............................................................................................................................81
19.
20.
21.
22.
23.
Konwertowanie ciągów tekstowych na daty .............................................................. 81
Wyszukiwanie trendów .................................................................................................. 85
Tworzenie raportów w oparciu o dowolne przedziały czasowe ................................. 89
Raporty kwartalne ........................................................................................................... 94
Drugi wtorek miesiąca .................................................................................................... 97
Spis treści
|
5
Rozdział 5. Dane liczbowe ......................................................................................................... 103
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Mnożenie wartości ......................................................................................................... 103
Sumy pośrednie ............................................................................................................. 105
Dołączanie wierszy pominiętych przez wyrażenie JOIN ....................................... 109
Identyfikowanie nakładających się zakresów ........................................................... 111
Unikanie dzielenia przez zero ..................................................................................... 114
Wyrażenie COUNT ....................................................................................................... 115
Wyznaczanie wartości maksymalnej z dwóch pól .................................................. 118
Dzielenie rezultatów funkcji COUNT ........................................................................ 120
Błędy podczas zaokrąglania ........................................................................................ 121
Jednoczesne pobieranie wartości i sum częściowych .............................................. 123
Obliczanie mediany ....................................................................................................... 126
Przedstawianie wyników w formie wykresu ........................................................... 130
Obliczanie odległości między lokalizacjami wskazywanymi przez system GPS .... 132
Porównywanie faktur i wpłat ...................................................................................... 136
Wyszukiwanie błędów transpozycji ........................................................................... 139
Naliczanie podatku progresywnego .......................................................................... 143
Rangi ................................................................................................................................ 146
Rozdział 6. Aplikacje sieciowe .................................................................................................. 149
41.
42.
43.
44.
45.
46.
47.
48.
Kopiowanie stron internetowych do tabeli ............................................................... 149
Prezentowanie danych z wykorzystaniem skalowalnej grafiki wektorowej ...... 157
Wzbogacanie aplikacji sieciowych o narzędzia do nawigacji ................................ 164
Definiowanie połączenia między systemem MySQL a programem Access ........ 170
Przetwarzanie dzienników serwerów sieciowych ................................................... 174
Przechowywanie obrazów w bazie danych .............................................................. 181
Atak SQL injection ......................................................................................................... 185
Zapobieganie atakowi SQL injection .......................................................................... 191
Rozdział 7. Porządkowanie danych .......................................................................................... 197
49.
50.
51.
52.
53.
54.
55.
56.
57.
Śledzenie rzadko zmieniających się wartości ........................................................... 197
Łączenie tabel zawierających różne dane .................................................................. 200
Wyświetlanie wierszy w charakterze kolumn .......................................................... 202
Wyświetlanie kolumn w charakterze wierszy .......................................................... 205
Usuwanie niespójnych rekordów ............................................................................... 207
Denormalizowanie tabel ............................................................................................... 209
Importowanie danych innych użytkowników ......................................................... 211
Zabawa w swatanie ....................................................................................................... 213
Generowanie unikalnych numerów sekwencyjnych ............................................... 215
6
|
Spis treści
Rozdział 8. Przechowywanie małych ilości danych ................................................................221
58.
59.
60.
61.
62.
63.
Przechowywanie parametrów w bazie danych ........................................................ 221
Definiowanie osobnych parametrów dla poszczególnych użytkowników ......... 227
Lista parametrów ........................................................................................................... 231
Bezpieczeństwo oparte na wierszach ......................................................................... 232
Wykonywanie kwerend bez wykorzystywania tabel .............................................. 235
Tworzenie wierszy bez udziału tabel ......................................................................... 237
Rozdział 9. Blokowanie i wydajność .........................................................................................241
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
Określanie poziomu izolacji ......................................................................................... 241
Blokowanie pesymistyczne .......................................................................................... 246
Blokowanie optymistyczne .......................................................................................... 248
Niejawne blokowanie wewnątrz transakcji ............................................................... 251
Obsługa powtarzanych operacji .................................................................................. 252
Wykonywanie funkcji w bazie danych ...................................................................... 257
Łączenie kwerend .......................................................................................................... 259
Pobieranie dużej liczby wierszy .................................................................................. 261
Pobieranie podzbioru uzyskanych rezultatów ......................................................... 264
Przechowywanie plików w bazie danych ................................................................. 266
Porównywanie i synchronizowanie tabel .................................................................. 270
Minimalizowanie obciążenia łącz dla zbyt wielu złączeń ...................................... 274
Kompresowanie w celu uniknięcia typu danych LOB ............................................ 278
Rozdział 10. Raporty ...................................................................................................................281
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
Uzupełnianie brakujących wartości w tabeli przestawnej ...................................... 281
Podział na zakresy ......................................................................................................... 286
Jednoznaczne identyfikowanie aktualizacji .............................................................. 290
Sześć stopni od Kevina Bacona .................................................................................... 295
Tabele decyzyjne ............................................................................................................ 298
Generowanie sekwencyjnych lub brakujących danych ........................................... 302
Wyszukiwanie n pierwszych wierszy w grupach .................................................... 309
Przechowywanie list wartości oddzielonych przecinkami w kolumnach ........... 312
Analizowanie prostych drzewek ................................................................................. 314
Definiowanie kolejek w bazie danych ........................................................................ 318
Tworzenie kalendarza ................................................................................................... 319
Testowanie dwóch wartości za pomocą podzapytania ........................................... 322
Wybieranie trzech możliwości spośród pięciu ......................................................... 324
Spis treści
|
7
Rozdział 11. Użytkownicy i administracja ................................................................................ 329
90.
91.
92.
93.
94.
95.
96.
Implementowanie kont na poziomie aplikacji ......................................................... 329
Eksportowanie i importowanie definicji tabel .......................................................... 336
Wdrażanie aplikacji ....................................................................................................... 345
Automatyczne tworzenie kont użytkowników ........................................................ 350
Tworzenie kont użytkowników i administratorów ................................................. 352
Automatyczne aktualizacje .......................................................................................... 355
Tworzenie dziennika zdarzeń ..................................................................................... 358
Rozdział 12. Szerszy dostęp ...................................................................................................... 363
97.
98.
99.
100.
Anonimowe konta ......................................................................................................... 364
Wyszukiwanie i przerywanie długo wykonywanych kwerend ............................... 366
Zarządzanie przestrzenią dyskową ............................................................................ 370
Uruchamianie kwerend za pośrednictwem stron internetowych ......................... 374
Skorowidz .................................................................................................................................. 381
8
|
Spis treści
Zgłoś jeśli naruszono regulamin