sql server 2005. programowanie. od podstaw helion, ebooki
[ Pobierz całość w formacie PDF ]
6
SQL Server 2005. Programowanie. Od podstaw
Rozdział 3. Podstawowe polecenia języka T-SQL ....................................................................................65
Podstawowe polecenie — SELECT ................................................................................. 66
Polecenie SELECT i klauzula FROM ........................................................................... 66
Klauzula WHERE ..................................................................................................... 70
ORDER BY .............................................................................................................. 73
Agregacje danych za pomocą klauzuli GROUP BY ....................................................... 77
Tworzenie warunków za pomocą klauzuli HAVING ....................................................... 85
Generowanie XML-a za pomocą klauzuli FOR XML ...................................................... 87
Wykorzystanie wskazówek za pomocą klauzuli OPTION ............................................... 88
Predykaty DISTINCT i ALL ......................................................................................... 88
Wprowadzanie danych za pomocą polecenia INSERT ....................................................... 90
Polecenie INSERT INTO...SELECT ............................................................................. 95
Wprowadzanie zmian za pomocą polecenia UPDATE ........................................................ 97
Polecenie DELETE ...................................................................................................... 100
Podsumowanie .......................................................................................................... 101
Ćwiczenia .................................................................................................................. 102
Rozdział 4. Złączenia (JOINs) .................................................................................................................. 103
Złączenia JOIN ........................................................................................................... 104
Złączenia wewnętrzne (INNER JOIN) ............................................................................. 105
Dlaczego INNER JOIN przypomina klauzulę WHERE .................................................. 110
Złączenia zewnętrzne .................................................................................................. 114
Proste złączenie zewnętrzne .................................................................................. 115
Bardziej skomplikowane złączenia zewnętrzne ......................................................... 120
Spojrzenie w obie strony za pomocą złączeń pełnych ..................................................... 124
Złączenia krzyżowe ..................................................................................................... 126
Alternatywne składnie złączeń ..................................................................................... 127
Alternatywne INNER JOIN ....................................................................................... 127
Alternatywne OUTER JOIN ...................................................................................... 128
Alternatywne CROSS JOIN ...................................................................................... 129
Unia .......................................................................................................................... 130
Podsumowanie .......................................................................................................... 135
Ćwiczenia .................................................................................................................. 135
Rozdział 5. Tworzenie i modyfikacja tabel ............................................................................................ 137
Nazwy obiektów w systemie SQL Server ....................................................................... 137
Nazwa schematu .................................................................................................. 138
Nazwa bazy danych ............................................................................................... 141
Nazwa serwera ..................................................................................................... 141
Przegląd ustawień domyślnych ............................................................................... 141
Polecenie CREATE ...................................................................................................... 142
CREATE DATABASE ............................................................................................... 142
CREATE TABLE ...................................................................................................... 148
Polecenie ALTER ........................................................................................................ 161
ALTER DATABASE .................................................................................................. 161
ALTER TABLE ........................................................................................................ 164
Polecenie DROP ......................................................................................................... 168
Wykorzystanie narzędzia GUI ....................................................................................... 169
Tworzenie bazy danych za pomocą SQL Server Management Studio .......................... 169
Powrót do kodowania — podstawy tworzenia skryptów
za pomocą SQL Server Management Studio ......................................................... 175
Podsumowanie .......................................................................................................... 176
Ćwiczenia .................................................................................................................. 176
Spis treści
7
Rozdział 6. Ograniczenia ......................................................................................................................... 177
Rodzaje ograniczeń .................................................................................................... 178
Ograniczenia domeny ............................................................................................ 178
Ograniczenia encji ................................................................................................. 179
Ograniczenia integralności referencyjnej .................................................................. 179
Nazewnictwo ograniczeń ............................................................................................. 180
Ograniczenia kluczy .................................................................................................... 181
Ograniczenia PRIMARY KEY .................................................................................... 182
Ograniczenia FOREIGN KEY .................................................................................... 184
Ograniczenia UNIQUE ............................................................................................ 195
Ograniczenia CHECK ................................................................................................... 196
Ograniczenia DEFAULT ................................................................................................ 198
Definiowanie ograniczenia DEFAULT w poleceniu CREATE TABLE ............................... 199
Dodawanie ograniczenia DEFAULT do istniejącej tabeli ............................................. 199
Wyłączanie ograniczeń ................................................................................................ 200
Ignorowanie niewłaściwych danych podczas tworzenia ograniczenia .......................... 200
Tymczasowe wyłączenie istniejącego ograniczenia ................................................... 202
Reguły i wartości domyślne — kuzyni ograniczeń .......................................................... 204
Reguły .................................................................................................................. 204
Wartości domyślne ................................................................................................ 206
Określanie tabel wykorzystujących konkretne reguły i wartości domyślne ................... 207
Wyzwalacze a integralność danych ............................................................................... 208
Czego używać ............................................................................................................ 208
Podsumowanie .......................................................................................................... 209
Rozdział 7. Zwiększanie możliwości zapytań ......................................................................................... 211
Co to jest podzapytanie .............................................................................................. 212
Tworzenie podzapytania zagnieżdżonego ................................................................. 213
Podzapytania skorelowane .......................................................................................... 216
W jaki sposób działają podzapytania skorelowane .................................................... 216
Podzapytania skorelowane w klauzuli WHERE .......................................................... 217
Praca z wartościami NULL — funkcja ISNULL .......................................................... 221
Tabele pochodne ........................................................................................................ 222
Operator EXISTS ........................................................................................................ 224
Inne sposoby wykorzystania EXISTS ........................................................................ 226
Mieszanie typów danych — funkcje CAST i CONVERT ...................................................... 227
Kwestie wydajności .................................................................................................... 230
Lepiej używać złączeń, podzapytań czy czegoś innego? ............................................ 230
Podsumowanie .......................................................................................................... 232
Ćwiczenia .................................................................................................................. 232
Rozdział 8. „Być normalnym”
normalizacja i inne kwestie podstaw projektowania .................. 233
Tabele ....................................................................................................................... 234
Utrzymywanie danych „normalnymi” ............................................................................. 234
Zanim zaczniemy ................................................................................................... 235
Pierwsza postać normalna ..................................................................................... 237
Druga postać normalna ......................................................................................... 241
Trzecia postać normalna ........................................................................................ 242
Inne postacie normalne ......................................................................................... 244
Relacje ...................................................................................................................... 245
Jeden do jednego .................................................................................................. 245
—
8
SQL Server 2005. Programowanie. Od podstaw
Jeden do jednego lub wielu .................................................................................... 247
Wiele do wielu ...................................................................................................... 249
Diagramy ................................................................................................................... 253
Tabele ................................................................................................................. 255
Dodawanie i usuwanie tabel .................................................................................. 256
Relacje ................................................................................................................. 262
Denormalizacja .......................................................................................................... 266
Poza normalizacją ...................................................................................................... 267
Prostota ............................................................................................................... 267
Wybór typów danych .............................................................................................. 267
Błędy w sposobie przechowywania .......................................................................... 268
Szkic prostego przykładu ............................................................................................. 269
Tworzenie bazy danych .......................................................................................... 269
Dodawanie diagramu i tabeli początkowej ............................................................... 269
Dodawanie relacji .................................................................................................. 274
Dodawanie ograniczeń ........................................................................................... 276
Podsumowanie .......................................................................................................... 278
Ćwiczenia .................................................................................................................. 278
Rozdział 9. Struktury danych i indeksów w SQL Server .................................................................... 279
Struktury danych w SQL Serverze ................................................................................. 279
Baza danych ......................................................................................................... 279
Zakres ................................................................................................................. 280
Strona .................................................................................................................. 280
Wiersze ................................................................................................................ 281
Podstawy indeksów .................................................................................................... 281
B-drzewa .............................................................................................................. 283
Sposób udostępniania danych w SQL Serverze ........................................................ 286
Tworzenie, modyfikacja i usuwanie indeksów ................................................................ 295
Polecenie CREATE INDEX ....................................................................................... 295
Tworzenie indeksów XML ....................................................................................... 302
Indeksy wywiedzione tworzone z ograniczeniami ...................................................... 303
Mądry wybór — jaki indeks, gdzie i kiedy go stosować .................................................. 303
Selektywność ....................................................................................................... 304
Przyglądanie się kosztom — gdy mniej znaczy więcej ............................................... 305
Wybieranie właściwego indeksu klastrowego ........................................................... 305
Kolejność kolumn ................................................................................................. 308
Usuwanie indeksów ............................................................................................... 308
Korzystanie z Database Engine Tuning Advisor ........................................................ 309
Utrzymywanie indeksów .............................................................................................. 309
Fragmentacja ........................................................................................................ 310
Identyfikacja fragmentacji a prawdopodobieństwo podziału stron .............................. 310
Podsumowanie .......................................................................................................... 314
Ćwiczenia .................................................................................................................. 315
Rozdział 10. Widoki .................................................................................................................................. 317
Proste widoki ............................................................................................................. 317
Widoki jako filtry ................................................................................................... 321
Bardziej złożone widoki ............................................................................................... 323
Wykorzystanie widoków do zmiany danych bez użycia wyzwalaczy INSTEAD OF ........... 326
Edycja widoków za pomocą T-SQL-a ............................................................................. 330
Spis treści
9
Usuwanie widoków ..................................................................................................... 330
Tworzenie i edycja widoków w SQL Server Management Studio ...................................... 330
Edycja widoków w SQL Server Management Studio .................................................. 334
Sprawdzanie — wyświetlanie istniejącego kodu ............................................................ 334
Ochrona kodu — szyfrowanie widoków ......................................................................... 336
Słowo o schemacie powiązania ................................................................................... 337
Upodabnianie widoków do tabel za pomocą VIEW_METADATA ........................................ 338
Widoki indeksowane (materializowane) ........................................................................ 338
Podsumowanie .......................................................................................................... 342
Ćwiczenia .................................................................................................................. 342
Rozdział 11. Tworzenie skryptów i programów wsadowych ............................................................. 343
Podstawy skryptów ..................................................................................................... 344
Instrukcja USE ...................................................................................................... 344
Deklaracja zmiennych ............................................................................................ 345
Użycie @@IDENTITY .............................................................................................. 349
Użycie @@ROWCOUNT .......................................................................................... 352
Batch ........................................................................................................................ 353
Błędy w programach wsadowych ............................................................................. 355
Kiedy korzystać z programów wsadowych ................................................................ 356
SQLCMD ................................................................................................................... 359
Dynamiczny SQL — tworzenie kodu „w locie” za pomocą polecenia EXEC ....................... 363
Zastosowania EXEC .............................................................................................. 364
Podsumowanie .......................................................................................................... 368
Ćwiczenia .................................................................................................................. 369
Rozdział 12. Procedury składowane ...................................................................................................... 371
Tworzenie procedury składowanej — podstawy składni .................................................. 372
Przykład prostej procedury ..................................................................................... 372
Zmiana procedury składowanej za pomocą ALTER ......................................................... 373
Usuwanie procedur składowanych ............................................................................... 374
Określanie parametrów ............................................................................................... 374
Deklaracja parametrów .......................................................................................... 374
Instrukcje sterujące przepływem danych ....................................................................... 379
Polecenie IF ... ELSE ............................................................................................. 380
Instrukcja CASE .................................................................................................... 390
Zapętlanie przy użyciu instrukcji WHILE ................................................................... 397
Instrukcja WAITFOR ............................................................................................... 398
Bloki TRY/CATCH .................................................................................................. 399
Potwierdzanie powodzenia lub niepowodzenia za pomocą wartości zwrotnych .................. 399
Jak używać RETURN .............................................................................................. 400
Obsługa błędów ......................................................................................................... 402
Dotychczasowe sposoby... ..................................................................................... 403
Bloki TRY/CATCH .................................................................................................. 409
Obsługa błędów przed ich wystąpieniem ................................................................. 412
Ręczne zgłaszanie błędu ........................................................................................ 415
Dodawanie własnych komunikatów o błędzie ........................................................... 419
Co oferuje procedura składowana ................................................................................ 422
Tworzenie wywoływalnych procesów ........................................................................ 423
Używanie procedur składowanych w celu zapewnienia bezpieczeństwa ...................... 424
Procedura składowana a wydajność ........................................................................ 425
[ Pobierz całość w formacie PDF ]