Transact_SQL_Czarna_ksiega_tsqlbb.pdf

(306 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Transact-SQL.
Czarna ksiêga
Autor: Marcin Szeliga
ISBN: 83-7361-125-8
Format: B5, stron: 492
Przyk³ady na ftp: 65 kB
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Transact-SQL to podstawowy jêzyk programowania baz danych w rodowisku MS SQL
Server. Transact-SQL jest zmodyfikowan¹ i uzupe³nion¹ o elementy typowe dla
proceduralnych jêzyków programowania (jak zmienne i instrukcje steruj¹ce
wykonaniem programu) wersj¹ standardu SQL-92. Dziêki temu rozszerzeniu,
jego mo¿liwo ci s¹ znacznie wiêksze ni¿ mo¿liwo ci standardowego SQL-a.
SQL Server zosta³ wyposa¿ony w intuicyjne, a zarazem potê¿ne narzêdzie
administracyjne — konsolê SQL Server Enterprise Menager. W rezultacie czê æ
administratorów SQL Servera nie zna albo nie korzysta z mo¿liwo ci jêzyka Transact-
-SQL. A okazuje siê, ¿e ta sama operacja mo¿e byæ przeprowadzona kilkukrotnie
szybciej, je¿eli zamiast konsoli u¿yjemy Transact-SQLa.
Ksi¹¿ka „Transact-SQL. Czarna Ksiêga” to wyczerpuj¹ce i dog³êbne kompendium
omawiaj¹ce nie tylko sam jêzyk Transact-SQL, ale równie¿ zasady projektowania
baz danych, a tak¿e zarz¹dzanie SQL Serverem za pomoc¹ jêzyka Transact-SQL.
Przedstawiono:
• Standardowe interfejsy jêzyka SQL instalowane wraz z SQL Serverem
• Elementy jêzyka Transact-SQL i sk³adniê poszczególnych instrukcji jêzyka
wraz z praktycznymi przyk³adami ich wykorzystania
• Metody pobierania i modyfikowania danych
• Optymalizacjê zapytañ
• Wyszukiwanie pe³notekstowe i us³uga MS Search.
• Zasady projektowania relacyjnych baz danych
• Algorytmy przekszta³cania relacji poprzez kolejne postacie normalne
• Tworzenie, modyfikowanie i usuwanie wszystkich typów obiektów bazodanowych
• Bezpieczeñstwo i kontrolowanie dostêpu do danych
• Integracjê SQL Servera z innymi serwerami firmy Microsoft
• Tworzenie i przywracanie kopii zapasowych
• Automatyzacjê czynno ci administracyjnych
• Monitorowanie pracy SQL Servera i optymalizacjê jego wydajno ci
• £¹czenie serwerów bazodanowych
• Replikacjê danych pomiêdzy wieloma SZBD
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO 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
Spis treści
Wstęp ................................................................................................................. 11
Część I Język Transact-SQL ......................................................................15
Rozdział 1. Interfejsy języka Transact-SQL ............................................................ 17
SQL Query Analyzer ...................................................................................................................... 18
Uruchamianie programu............................................................................................................ 19
Praca z programem................................................................................................................... 19
OSQL ........................................................................................................................................... 24
Uruchamianie programu............................................................................................................ 25
Praca z programem................................................................................................................... 25
BCP.............................................................................................................................................. 26
Uruchomienie programu............................................................................................................ 26
Praca z programem................................................................................................................... 26
TEXTCOPY.................................................................................................................................. 27
Uruchomienie programu............................................................................................................ 27
Praca z programem................................................................................................................... 27
Oprogramowanie dodatkowe........................................................................................................... 28
T-SQLEditPro ......................................................................................................................... 28
SQL Editor .............................................................................................................................. 28
Rozdział 2. Leksykon języka Transact-SQL ............................................................ 29
Standardy SQL i historia ich powstania ............................................................................................ 29
Typy instrukcji języka Transact-SQL............................................................................................... 31
Instrukcje DDL ........................................................................................................................ 32
Instrukcje DML ....................................................................................................................... 32
Instrukcje DCL ........................................................................................................................ 33
Znaczniki języka ............................................................................................................................ 33
Dyrektywy wsadowe ................................................................................................................ 33
Komentarze ............................................................................................................................. 36
Identyfikatory .......................................................................................................................... 36
Typy danych............................................................................................................................ 37
Zmienne .................................................................................................................................. 41
Funkcje ................................................................................................................................... 44
Operatory ................................................................................................................................ 92
Wyra enia ............................................................................................................................... 94
Znaczniki sterujące wykonaniem programu................................................................................. 94
Słowa kluczowe ....................................................................................................................... 96
Rozdział 3. Pobieranie danych .............................................................................. 97
Przetwarzanie zapytań przez SQL Server ......................................................................................... 97
Instrukcja SELECT ........................................................................................................................ 98
Zwracanie określonej liczby wierszy ........................................................................................ 100
Klauzula FROM..................................................................................................................... 101
Łączenie wielu obiektów......................................................................................................... 103
4
Transact-SQL. Czarna księga
Klauzula WHERE .................................................................................................................. 107
Klauzula ORDER BY............................................................................................................. 111
Klauzula GROUP BY............................................................................................................. 113
Klauzula HAVING ................................................................................................................. 116
Klauzule COMPUTE i COMPUTE BY.................................................................................... 116
Klauzula OPTION.................................................................................................................. 118
Klauzula FOR ........................................................................................................................ 119
Klauzula INTO ...................................................................................................................... 120
Podzapytania ............................................................................................................................... 121
Podzapytania jako źródła danych ............................................................................................. 121
Podzapytania jako wyra enia................................................................................................... 121
Podzapytania powiązane ......................................................................................................... 122
Podzapytanie jako złączenie .................................................................................................... 123
Podzapytania z operatorem EXISTS ........................................................................................ 124
Kursory....................................................................................................................................... 125
Deklarowanie kursora ............................................................................................................. 125
Typy kursorów....................................................................................................................... 126
Blokady................................................................................................................................. 127
Pobieranie danych .................................................................................................................. 127
Opcje kursora ........................................................................................................................ 128
Usuwanie kursora................................................................................................................... 130
Rozdział 4. Optymalizacja zapytań ...................................................................... 133
Query Optimizer .......................................................................................................................... 133
Plan wykonania zapytania ............................................................................................................. 135
Indeksy zawierające zapytania....................................................................................................... 138
Analiza zapytań ........................................................................................................................... 139
SARG ................................................................................................................................... 139
Zapytania z operatorem AND .................................................................................................. 142
Zapytania z operatorem OR..................................................................................................... 143
Zapytania pobierające dane z kilku źródeł danych ..................................................................... 144
Zapytania grupujące dane........................................................................................................ 152
Rozdział 5. Wyszukiwanie pełnotekstowe............................................................ 155
Usługa Microsoft Search............................................................................................................... 155
Indeksy wyszukiwania pełnotekstowego......................................................................................... 156
Procedury systemowe związane z usługą Microsoft Serach ........................................................ 156
Funkcje języka Transact-SQL związane z usługą Microsoft Search............................................. 157
Zapytania pełnotekstowe............................................................................................................... 159
Predykat CONTAINS ............................................................................................................. 159
Predykat FREETEXT ............................................................................................................. 161
Funkcja CONTAINSTABLE................................................................................................... 161
Funkcja FREETEXTTABLE................................................................................................... 162
Rozdział 6. Modyfikowanie danych ..................................................................... 165
Przetwarzanie transakcyjne ........................................................................................................... 165
Wstawianie danych ...................................................................................................................... 167
Instrukcja INSERT................................................................................................................. 167
Usuwanie danych ......................................................................................................................... 171
Instrukcja DELETE................................................................................................................ 171
Instrukcja TRUNCATE .......................................................................................................... 173
Aktualizowane danych.................................................................................................................. 174
Instrukcja UPDATE ............................................................................................................... 174
Spis treści
5
Część II Projektowanie i programowanie baz danych.................................. 177
Rozdział 7. Projektowanie relacyjnych baz danych............................................... 179
Model relacyjnych baz danych ...................................................................................................... 179
Zasady dotyczące struktury danych.......................................................................................... 182
Zasady dotyczące przetwarzania danych................................................................................... 182
Zasady dotyczące integralności danych .................................................................................... 188
Diagram związków E/R ................................................................................................................ 193
Określanie typów obiektów ..................................................................................................... 193
Określanie atrybutów obiektów poszczególnych typów.............................................................. 194
Wyodrębnianie danych elementarnych ..................................................................................... 194
Określanie zale ności funkcyjnych zachodzących pomiędzy atrybutami...................................... 195
Grupowanie danych w tabelach ............................................................................................... 196
Określanie związków (relacji) zachodzących między encjami..................................................... 198
Normalizacja ............................................................................................................................... 200
Pierwsza postać normalna 1PN................................................................................................ 200
Pierwsza postać anormalna...................................................................................................... 200
Druga postać normalna 2PN.................................................................................................... 206
Trzecia postać normalna 3PN .................................................................................................. 207
Algorytmy sprowadzania relacji do wy szej postaci normalnej ................................................... 208
Postać normalna Boyce’a-Codda ............................................................................................. 213
Rozdział 8. Bazy danych..................................................................................... 215
Konwencja nazewnicza................................................................................................................. 215
Fizyczna struktura bazy danych..................................................................................................... 215
Dziennik transakcyjny ............................................................................................................ 216
Struktura plików bazodanowych .............................................................................................. 217
Struktura wiersza danych ........................................................................................................ 218
Tworzenie baz danych.................................................................................................................. 219
Instrukcja CREATE DATABASE............................................................................................ 220
Opcje baz danych................................................................................................................... 222
Modyfikacja baz danych ............................................................................................................... 228
Instrukcja ALTER DATABASE .............................................................................................. 228
Zwiększanie rozmiaru plików bazy danych............................................................................... 229
Zmniejszanie rozmiaru plików bazy danych.............................................................................. 230
Usuwanie baz danych ................................................................................................................... 233
Instrukcja DROP DATABASE ................................................................................................ 233
Grupy plików............................................................................................................................... 233
Rozdział 9. Tabele.............................................................................................. 237
Typy danych u ytkownika ............................................................................................................ 237
Procedura systemowa sp_addtype............................................................................................ 237
Procedura systemowa sp_droptype .......................................................................................... 238
Instrukcja CREATE TABLE......................................................................................................... 238
Przechowywanie wartości obliczonych na podstawie innych wartości ......................................... 240
Opcje tabel .................................................................................................................................. 242
Opcje zawę eń....................................................................................................................... 244
Atrybuty rozszerzone.................................................................................................................... 245
Procedura sp_addextendedproperty .......................................................................................... 245
Odczytywanie wartości atrybutów rozszerzonych...................................................................... 246
Procedura sp_updateextendedproperty...................................................................................... 247
Procedura sp_dropextendedproperty......................................................................................... 247
Instrukcja ALTER TABLE ........................................................................................................... 248
Zmiana nazwy tabeli............................................................................................................... 249
Instrukcja DROP TABLE ............................................................................................................. 250
6
Transact-SQL. Czarna księga
Rozdział 10. Indeksy .......................................................................................... 251
Po co tworzyć indeksy? ................................................................................................................ 251
Typy indeksów ............................................................................................................................ 252
Indeksy grupujące .................................................................................................................. 252
Indeksy niegrupujące .............................................................................................................. 253
Indeksy kompozytowe ............................................................................................................ 253
Dla których kolumn tworzyć indeksy?............................................................................................ 254
Wpływ indeksów grupujących na sortowanie danych................................................................. 255
Wpływ indeksów niegrupujących na sortowanie danych ............................................................ 257
Wpływ indeksów na modyfikowanie danych............................................................................. 258
Wpływ indeksów na dodawanie danych.................................................................................... 261
Indeksy zawierające zapytanie ................................................................................................. 262
Instrukcja CREATE INDEX ......................................................................................................... 264
Współczynnik wypełnienia...................................................................................................... 266
Opcje indeksów ........................................................................................................................... 268
Instrukcja DROP INDEX ............................................................................................................. 269
Statystyki .................................................................................................................................... 270
Instrukcja CREATE STATISTICS .......................................................................................... 271
Instrukcja UPDATE STATISTICS .......................................................................................... 272
Instrukcja DROP STATISTICS............................................................................................... 272
Rozdział 11. Widoki............................................................................................ 273
Instrukcja CREATE VIEW ........................................................................................................... 273
Złączenie zewnętrzne w definicji widoków ............................................................................... 276
Uporządkowywanie danych poprzez widoki.............................................................................. 276
Opcje widoków............................................................................................................................ 277
Modyfikowanie danych poprzez widoki ......................................................................................... 279
Instrukcja ALTER VIEW ............................................................................................................. 280
Instrukcja DROP VIEW ............................................................................................................... 280
Rozdział 12. Procedury składowane.................................................................... 281
Przetwarzanie procedur przez SQL Server ..................................................................................... 282
Tworzenie ............................................................................................................................. 282
Wykonanie ............................................................................................................................ 282
Wywołanie ............................................................................................................................ 283
Konwencja nazewnicza procedur składowanych ............................................................................. 283
Instrukcja CREATE PROCEDURE............................................................................................... 284
Automatyczne uruchamianie procedur...................................................................................... 286
Zagnie d anie procedur .......................................................................................................... 287
Opcje procedur składowanych....................................................................................................... 287
Wykonywanie procedur składowanych........................................................................................... 288
Instrukcja ALTER PROCEDURE ................................................................................................. 289
Instrukcja DROP PROCEDURE ................................................................................................... 289
Rozdział 13. Wyzwalacze.................................................................................... 291
Wyzwalacze a zawę enia .............................................................................................................. 292
Typy wyzwalaczy ........................................................................................................................ 292
Wyzwalacze wywoływane wykonaniem instrukcji INSERT....................................................... 292
Wyzwalacze wywoływane wykonaniem instrukcji DELETE...................................................... 292
Wyzwalacze wywoływane wykonaniem instrukcji UPDATE ..................................................... 293
Instrukcja CREATE TRIGGER..................................................................................................... 293
Wyzwalacze a monitorowanie aktywności u ytkowników.......................................................... 295
Opcje wyzwalaczy ....................................................................................................................... 297
Instrukcja ALTER TRIGGER ....................................................................................................... 298
Instrukcja DROP TRIGGER ......................................................................................................... 299
Zgłoś jeśli naruszono regulamin