Szczegóły ebooka

T-SQL dla zaawansowanych. Przewodnik programisty. Wydanie IV

T-SQL dla zaawansowanych. Przewodnik programisty. Wydanie IV

Michael Coles, Jay Natarajan, Miguel Cebollero

Ebook
W wielu środowiskach IT serwer bazodanowy jest szczególnie ważnym elementem infrastruktury. Microsoft SQL Server jest jednym z częściej spotykanych rozwiązań. Aby w pełni wykorzystać jego możliwości, trzeba dogłębnie poznać język Transact-SQL — potężne narzędzie, które wyewoluowało z języka zapytań SQL i wciąż jest rozwijane przez firmę Microsoft.

Niniejsza książka, przeznaczona dla programistów T-SQL, jest uaktualnionym wydaniem świetnego przewodnika po SQL Server. Omówiono w niej zaawansowane mechanizmy dostępne w T-SQL, włączając w to również nowości, takie jak mechanizmy pamięciowe będące częścią SQL Server 2014. Istotne kwestie są przystępnie wyjaśnione za pomocą praktycznych przykładów i obszernych fragmentów kodu źródłowego. Autorzy położyli nacisk przede wszystkim na demonstrację opcji T-SQL, ich możliwe zastosowania, a sam podręcznik zorganizowali w sposób umożliwiający szybkie wyszukanie potrzebnych informacji.

Najważniejsze zagadnienia omówione w książce:
  • podstawy T-SQL i przegląd dobrych praktyk programowania w tym języku
  • narzędzia dołączone do SQL Server 2014 (w tym SSMS, SQLCMD, SSDT oraz SQL Profiler)
  • procedury składowane wykonywane po stronie serwera oraz tabele OLTP
  • obsługa XML, XQuery oraz XPath w SQL Server 2014
  • szyfrowanie baz danych, usługi ADO.NET oraz usługi IIS/.NET
  • obsługa błędów, testowanie i zabezpieczenie kodu SQL

Sprawdź nowe możliwości T-SQL i SQL Server!


Miguel Cebollero — od ponad 16 lat zajmuje się SQL Server i innymi systemami bazodanowymi, włączając w to projektowanie, programowanie i administrację. Często wypowiada się na różnego rodzaju konferencjach związanych z bazami danych.
Jay Natarajan — od ponad 15 lat projektuje i implementuje rozwiązania oparte na SQL Server. Ma na koncie wiele skomplikowanych rozwiązań dla dużych klientów. Dołączyła do Microsoft Consulting Services w 2008 roku.
Michael Coles — ma za sobą ponad dekadę doświadczeń przy projektowaniu i administrowaniu bazami danych SQL Server. Jest autorem licznych artykułów na temat SQL Server, szczególnie o specjalnych zastosowaniach T-SQL.
  • O autorach
  • O korektorze merytorycznym
  • Podziękowania
  • Wprowadzenie
    • Dla kogo jest ta książka
    • Jak podzielona jest ta książka
      • Rozdział 1.
      • Rozdział 2.
      • Rozdział 3.
      • Rozdział 4.
      • Rozdział 5.
      • Rozdział 6.
      • Rozdział 7.
      • Rozdział 8.
      • Rozdział 9.
      • Rozdział 10.
      • Rozdział 11.
      • Rozdział 12.
      • Rozdział 13.
      • Rozdział 14.
      • Rozdział 15.
      • Rozdział 16.
      • Rozdział 17.
      • Rozdział 18.
      • Rozdział 19.
      • Dodatek A
      • Dodatek B
      • Dodatek C
      • Dodatek D
    • Przyjęte konwencje
    • Wymagania
      • Przykłady kodu
  • Rozdział 1. Podstawy T-SQL
    • Krótka historia T-SQL
    • Języki imperatywne i deklaratywne
    • Podstawy SQL
      • Wyrażenia
      • Bazy danych
      • Logi transakcyjne
      • Schematy
      • Tabele
      • Widoki
      • Indeksy
      • Procedury składowane
      • Funkcje użytkownika
      • Moduły SQL CLR
    • Podstawy stylu
      • Białe znaki
      • Konwencje nazewnictwa
      • Jedno wejście, jedno wyjście
      • Programowanie defensywne
      • Wyrażenie SELECT *
      • Inicjalizacja zmiennych
    • Podsumowanie
  • Rozdział 2. Narzędzia
    • SQL Server Management Studio
      • IntelliSense
      • Fragmenty kodu
      • Schematy skrótów klawiszowych
      • Debugowanie T-SQL
      • Opcje edycji w SSMS
      • Pomoc kontekstowa
      • Graficzna reprezentacja planów wykonania zapytań
      • Opcje do zarządzania projektami
      • Eksplorator obiektów
    • Narzędzie SQLCMD
    • SQL Server Data Tools
    • SQL Profiler
    • Extended Events
    • SQL Server Integration Services
    • BCP
    • SQL Server 2014 Books Online
    • Przykładowa baza danych AdventureWorks
    • Podsumowanie
  • Rozdział 3. Kod proceduralny
    • Logika trójwartościowa
    • Przepływ sterowania
      • Słowa kluczowe BEGIN i END
      • Wyrażenie IF ... ELSE
      • Wyrażenia WHILE, BREAK i CONTINUE
      • Wyrażenie GOTO
      • Wyrażenie WAITFOR
      • Wyrażenie RETURN
    • Wyrażenie CASE
      • Proste wyrażenie CASE
      • Przeszukiwane wyrażenie CASE
      • CASE i tabele przestawne
      • Wyrażenie IIF
      • CHOOSE
      • COALESCE i NULLIF
    • Kursory
    • Podsumowanie
  • Rozdział 4. Funkcje użytkownika
    • Funkcje skalarne
      • Rekurencja w skalarnych UDF
      • Kod proceduralny w funkcjach użytkownika
    • Wielowyrażeniowe funkcje zwracające tabelę
    • Wbudowane funkcje zwracające tabelę
    • Ograniczenia funkcji definiowanych przez użytkownika
      • Funkcje niedeterministyczne
      • Stan bazy danych
    • Podsumowanie
  • Rozdział 5. Procedury składowane
    • Wprowadzenie
    • Odkrywanie metadanych
    • Natywnie kompilowane procedury składowane
    • Zarządzanie procedurami składowanymi
    • Najlepsze praktyki związane z tworzeniem procedur składowanych
    • Przykład procedury składowanej
    • Rekurencja w procedurach składowanych
    • Parametry tabelaryczne
    • Tymczasowe procedury składowane
    • Rekompilacja i pamięć podręczna
      • Statystyki procedur składowanych
      • Przechwytywanie parametrów
      • Rekompilacja
    • Podsumowanie
  • Rozdział 6. Obiekty pamięciowe
    • Czynniki napędzające technologie pamięciowe
    • Trendy sprzętowe
    • Podstawy obiektów pamięciowych
      • Krok 1. Dodanie nowej grupy plików optymalizowanej do operacji pamięciowych
      • Krok 2. Dodanie nowego kontenera optymalizowanego do operacji pamięciowych
      • Krok 3. Utwórz nową tabelę optymalizowaną do operacji pamięciowych
      • Ograniczenia tabel pamięciowych
    • Indeksy tabel pamięciowych OLTP
      • Indeksy typu hash
      • Indeksy zakresu
    • Natywnie kompilowane procedury składowane
  • Rozdział 7. Wyzwalacze
    • Wyzwalacze DML
      • Wiele wyzwalaczy
      • Kiedy używać wyzwalaczy DML
      • Wirtualne tabele inserted i deleted
      • Przeglądanie za pomocą wyzwalaczy DML
    • Wykorzystanie zapisywania modyfikacji danych
      • Udostępnianie danych wyzwalaczom
      • Wyzwalacze zagnieżdżone i rekurencyjne
      • Funkcje UPDATE() i COLUMNS_UPDATED()
    • Wyzwalacze na widokach
    • Wyzwalacze DDL
      • Typy zdarzeń DDL i grupy zdarzeń
    • Wyzwalacze logowania
    • Podsumowanie
  • Rozdział 8. Szyfrowanie
    • Hierarchia szyfrowania
    • Klucze główne usługi
    • Klucze główne bazy danych
    • Certyfikaty
    • Ograniczenia szyfrowania asymetrycznego
    • Klucze asymetryczne
      • Kopie zapasowe klucza asymetrycznego
    • Klucze symetryczne
      • Tymczasowe klucze symetryczne
    • Sól i uwierzytelnianie
    • Szyfrowanie bez kluczy
      • Tworzenie skrótów
    • Rozszerzone zarządzanie kluczami
    • Przeźroczyste szyfrowanie danych
    • Podsumowanie
  • Rozdział 9. Wyrażenia nazwane i funkcje okna
    • Wyrażenia nazwane
      • Wiele zapytań nazwanych
      • Zwiększona czytelność CTE
    • Rekurencyjne zapytania nazwane
    • Funkcje okna
      • Funkcja ROW_NUMBER
      • Stronicowanie zapytania za pomocą OFFSET/FETCH
      • Funkcje RANK i DENSE_RANK
      • Funkcja NTILE
    • Funkcje agregacyjne, analityczne i klauzula OVER
    • Przykłady funkcji analitycznych
      • CUME_DIST i PERCENT_RANK
      • PERCENTILE_CONT i PERCENTILE_DISC
      • LAG i LEAD
      • FIRST_VALUE i LAST_VALUE
    • Podsumowanie
  • Rozdział 10. Typy danych i zaawansowane typy danych
    • Podstawowe typy danych
      • Znaki
      • Typy danych max
      • Wartości numeryczne
      • Typy danych dla daty i czasu
      • UTC i czas wojskowy
      • Funkcje daty i czasu
      • Przesunięcia a strefy czasowe
    • Typ danych uniqueidentifier
    • Typ danych hierarchyid
      • Reprezentacja danych hierarchicznych
      • Przykład hierarchyid
      • Metody hierarchyid
    • Przestrzenne typy danych
      • (X, Y) czy (szerokość, długość)
      • Półkula i orientacja
      • Michigan i wielkie jeziora
    • Obsługa FILESTREAM
      • Włączanie obsługi FILESTREAM
      • Tworzenie grup plików FILESTREAM
      • Tabele korzystające z FILESTREAM
      • Korzystanie z danych FILESTREAM
      • Obsługa FileTable
      • Funkcje filetable
      • Wyzwalacze na filetable
    • Podsumowanie
  • Rozdział 11. Wyszukiwanie pełnotekstowe
    • Architektura FTS
      • Tworzenie katalogów pełnotekstowych i indeksów
      • Tworzenie katalogów pełnotekstowych
      • Tworzenie indeksów pełnotekstowych
      • Zapytania pełnotekstowe
      • Predykat FREETEXT
      • Optymalizacja wydajności FTS
      • Predykat CONTAINS
      • Funkcje FREETEXTTABLE i CONTAINSTABLE
      • Tezaurusy i stoplisty
      • Procedury składowane, dynamiczne widoki zarządcze i funkcje
      • Semantyka statystyczna
    • Podsumowanie
  • Rozdział 12. XML
    • XML dawniej
    • OPENXML
    • Formaty generowane przez OPENXML
    • Klauzula FOR XML
    • FOR XML RAW
    • FOR XML AUTO
    • FOR XML EXPLICIT
    • FOR XML PATH
    • Typ danych xml
    • Niestrukturyzowany xml
    • Ustrukturyzowany xml
    • Metody typu danych xml
      • Metoda query
      • Metoda value
      • Metoda exist
      • Metoda nodes
      • Metoda modify
    • Indeksy XML
    • Przekształcenia XSL
    • Ustawienia związane z bezpieczeństwem SQL CLR
    • Podsumowanie
  • Rozdział 13. XQuery i XPath
    • XPath i FOR XML PATH
      • Atrybuty XPath
      • Kolumny bez nazw i wieloznaczniki
      • Grupowanie elementów
      • Funkcja data
      • Testowanie węzłów i funkcje
      • XPath i NULL
      • Klauzula WITH XMLNAMESPACES
      • Testowanie węzłów
    • XQuery i typ danych xml
      • Wyrażenia i sekwencje
      • Metoda query
      • Ścieżki określające lokalizację
      • Testowanie węzłów
      • Przestrzenie nazw
      • Oznaczenia osi
      • Dynamiczne generowanie XML
      • Komentarze XQuery
      • Typy danych
      • Predykaty
      • Operatory porównujące wartości
      • Operatory porównań ogólnych
      • Format daty XQuery
      • Porównania węzłów
      • Wyrażenia warunkowe (ifthenelse)
      • Wyrażenia arytmetyczne
      • Dzielenie liczb całkowitych w XQuery
      • Funkcje w XQuery
      • Konstruktory i rzutowanie
      • Wyrażenia FLWOR
      • Słowa kluczowe for i return
      • Słowo kluczowe where
      • Słowa kluczowe order by
      • Słowo kluczowe let
      • Obsługa UTF-16
    • Podsumowanie
  • Rozdział 14. Widoki katalogowe i dynamiczne widoki zarządcze
    • Widoki katalogowe
      • Metadane tabel i kolumn
      • Odpytywanie o pozwolenia
    • Dynamiczne widoki zarządcze i funkcje
      • Metadane indeksowe
      • Informacje o sesji
      • Informacje o połączeniu
      • Aktualnie wykonywany SQL
      • Pamięciowe widoki systemowe
      • Najdroższe zapytania
      • Przestrzeń tempdb
      • Zasoby serwera
      • Niewykorzystywane indeksy
      • Statystyki oczekiwania
    • Widoki INFORMATION_SCHEMA
    • Podsumowanie
  • Rozdział 15. Programowanie klienta .NET
    • ADO.NET
    • Klient SQL .NET
    • Połączenie ze źródłem danych
    • Odłączone zbiory danych
    • Zapytania parametryzowane
    • Zapytania niezwracające wyników, skalarne i XML
    • SqlBulkCopy
    • Wiele aktywnych zbiorów wyników
    • LINQ to SQL
    • Designer
    • Zapytania z LINQ to SQL
    • Podstawy zapytań LINQ to SQL
      • Klauzula where
      • Klauzula orderby
      • Klauzula join
    • Odroczone wykonanie zapytania
    • Od LINQ do Entity Framework
    • Odpytywanie elementów
    • Podsumowanie
  • Rozdział 16. Programowanie z CLR
    • Stary sposób
    • Rozwiązania ze zintegrowanym CLR
    • Pakiety CLR
    • Funkcje użytkownika
    • Procedury składowane
    • Funkcje agregujące użytkownika
      • Tworzenie prostej funkcji agregującej
      • Tworzenie zaawansowanych UDA
    • Typy użytkownika w zintegrowanych CLR
    • Wyzwalacze
    • Podsumowanie
  • Rozdział 17. Usługi danych
    • LocalDB z SQL Server 2014 Express
    • Programowanie asynchroniczne z ADO.NET 4.5
    • ODBC dla Linuksa
    • JDBC
    • Architektura SOA i usługi danych WCF
    • Tworzenie WCF Data Service
    • Definiowanie źródła danych
    • Tworzenie usługi danych
    • Tworzenie odbiornika WCF Data Service
    • Podsumowanie
  • Rozdział 18. Obsługa błędów i dynamiczny SQL
    • Obsługa błędów
    • Stare metody obsługi błędów
    • Wyrażenie RAISERROR
    • Obsługa wyjątków TRY...CATCH
      • TRY_PARSE, TRY_CONVERT i TRY_CAST
    • Wyrażenie THROW
    • Narzędzia do debugowania
      • Debugowanie za pomocą wyrażenia PRINT
      • Flagi śledzenia
      • Debugger zintegrowany z SSMS
      • Debugger T-SQL w Visual Studio
    • Dynamiczny SQL
      • Wyrażenie EXECUTE
      • Wstrzykiwanie SQL i dynamiczny SQL
      • Usuwanie problemów z dynamicznym SQL
    • Procedura składowana sp_executesql
      • Dynamiczny SQL i zasięg
      • Parametryzacja po stronie klienta
    • Podsumowanie
  • Rozdział 19. Poprawianie wydajności
    • Pamięć masowa w SQL Server
      • Pliki i grupy plików
      • Alokacja przestrzeni
      • Partycje
      • Kompresja danych
        • Kompresja wierszy
        • Kompresja stron
      • Kolumny rzadkie
        • Zbiory kolumn rzadkich
    • Indeksy
      • Sterty
      • Indeksy klastrowe
        • Gwarantowany porządek
      • Indeksy nieklastrowe
      • Indeksy filtrowane
      • Optymalizacja zapytań
      • Czytanie planów zapytań
        • Rzeczywisty czy szacowany?
      • Metodologia
      • Oczekiwanie
      • Extended Events
    • Podsumowanie
  • Dodatek A Odpowiedzi do ćwiczeń
    • Rozdział 1.
    • Rozdział 2.
    • Rozdział 3.
    • Rozdział 4.
    • Rozdział 5.
    • Rozdział 6.
    • Rozdział 7.
    • Rozdział 8.
    • Rozdział 9.
    • Rozdział 10.
    • Rozdział 11.
    • Rozdział 12.
    • Rozdział 13.
    • Rozdział 14.
    • Rozdział 15.
    • Rozdział 16.
    • Rozdział 17.
    • Rozdział 18.
    • Rozdział 19.
  • Dodatek B Typy danych XQuery
  • Dodatek C Słowniczek
    • ACID
    • adjacency list model
    • ADO.NET Data Services
    • agregat użytkownika (UDA)
    • API
    • atomowe typy danych
    • BCP
    • certyfikat
    • certyfikat serwera
    • cięcie
    • content expression
    • context item expression
    • context node (węzeł kontekstowy)
    • CWA
    • dane przestrzenne
    • domena danych
    • EDM (entity data model)
    • EKM (extensible key management)
    • ETL (Extract, Transform, Load)
    • Extended Events (XEvents)
    • facet
    • formy fleksyjne
    • funkcja skalarna
    • Funkcje i operatory (F&O)
    • funkcje okna
    • GML (Geography Markup Language)
    • indeks klastrowy
    • indeks nieklastrowy
    • indeks pełnotekstowy
    • indeks przestrzenny
    • katalog pełnotekstowy
    • klucz główny bazy danych
    • klucz obcy
    • klucz szyfrowania bazy danych
    • komentarz
    • konstruktor obliczany
    • konstruktor wiersza
    • krok
    • LINQ (Language Integrated Query)
    • listy
    • logika trójwartościowa (3VL)
    • mapowanie obiektowo-relacyjne (O/RM)
    • MARS (Multiple Active Result Sets)
    • model ścieżki zmaterializowanej
    • model zbiorów zagnieżdżonych
    • niestrukturyzowany xml
    • obszar
    • opcjonalny wskaźnik wystąpienia
    • parametryzacja
    • plan zapytania
    • połączone typy danych
    • poprawny składniowo XML (well-formed XML)
    • porównanie ogólne
    • porównanie wartości
    • porównanie węzłów
    • predykat
    • proste wyrażenie CASE
    • przeszukiwane wyrażenie CASE
    • przeźroczyste szyfrowanie danych (TDE)
    • pusta sekwencja
    • rekompilacja
    • rekurencja
    • rekurencja pośrednia
    • schemat XML
    • sekwencja
    • sekwencja heterogeniczna
    • sekwencja homogeniczna
    • skrót (hash)
    • SMK (service master key)
    • SOAP
    • sprawdzanie ograniczeń (check constraint)
    • SQL Server Data Tools
    • sterta
    • strona danych
    • szyfrowanie asymetryczne
    • ścieżka lokalizacyjna
    • test węzła
    • typ tabeli
    • typ użytkownika (UDT)
    • układ odniesienia
    • W3C (World Wide Web Consortium)
    • wartość predykatu
    • wektor inicjalizacyjny (IV)
    • węzeł
    • widok katalogowy
    • WKT (well-known text)
    • wstrzykiwanie SQL
    • wyrażenie filtrujące
    • wyrażenie FLWOR
    • wyrażenie pierwotne
    • wyrażenie ścieżki
    • wyszukiwanie pełnotekstowe (FTS, full-text search)
    • wyzwalacz logowania
    • XDM (XQuery/XPath Data Model)
    • XML
    • XPath
    • XQuery
    • XSL
    • XSLT
    • założenie otwartego świata (OWA)
    • zapytanie kotwiczące
    • zbiór grupujący
  • Dodatek D Krótki przewodnik po SQLCMD
    • Opcje wiersza poleceń
    • Zmienne skryptowe
    • Polecenia
  • Tytuł: T-SQL dla zaawansowanych. Przewodnik programisty. Wydanie IV
  • Autor: Miguel Cebollero, Michael Coles, Jay Natarajan
  • Tytuł oryginału: Pro T-SQL Programmer's Guide, 4th Edition
  • Tłumaczenie: Andrzej Stefański
  • ISBN: 978-83-283-2248-6, 9788328322486
  • Data wydania: 2016-06-13
  • Format: Ebook
  • Identyfikator pozycji: tsqlz4
  • Wydawca: Helion