|

SQL ZAAWANSOWANE TECHNIKI PROGRAMOWANIA
CELKO J. wydawnictwo: PWN , rok wydania 2008, wydanie I cena netto: 138.60 Twoja cena 131,67 zł + 5% vat - dodaj do koszyka Książka ta była pierwszym podręcznikiem, który miał na celu
przekształcenie programisty języka SQL w eksperta.
Pierwsze wydanie ukazało się przed dziesięciu laty, i nadal ma opinię pozycji
klasycznej. Nie chodzi tylko o wskazówki i techniki, ale o najlepsze rozwiązania starych
i nowych problemów, oraz o kształtowanie sposobu myślenia pozwalającego na
osiągnięcie poprawności i wydajności w programowaniu w języku SQL.
Trzecie w USA, a drugie w Polsce, wydanie książki zawiera:
- nowe przykłady i aktualizację do standardu SQL-99, rozszerzone części
dotyczące technik tworzenia zapytań i nowe elementy związane z projektowaniem
schematów;
- eksperckie porady człowieka będącego autorytetem i nagradzanego autora
artykułów, który poświęcił dziesięć lat pracy w komitecie standaryzacyjnym ANSI
SQL i wiele czasu na pomoc czytelnikom forów internetowych;
- opisy wielu zaawansowanych technik programowania, których można używać w
różnych środowiskach języka SQL, zarówno w wersji SQL-92, jak i SQL-99;
- wskazówki pozwalające na obejście niedostatków systemu;
- wiele zaktualizowanych historii praktycznych, które pozwalają poznać
prawdziwe wyzwania stojące przed programistami języka SQL.
O autorze
Wstęp do wydania trzeciego
W.1. Co zmieniło się w ciągu dziesięciu lat
W.2. Co nowego w tym wydaniu
W.3. Poprawki i dodatki
1. Projekt bazy danych
1.1. Tworzenie schematów i tabel
1.1.1. Instrukcja CREATE SCHEMA
1.1.2. Manipulowanie tabelami
1.1.3. Ograniczenia kolumn
1.1.4. Ograniczenia UNIQUE a indeksy UNIQUE
1.1.5. Zagnieżdżane ograniczenia UNIQUE
1.1.6. Nakładające się klucze
1.1.7. Ograniczenia CREATE ASSERTION
1.1.8. Korzystanie z widoków dla ograniczeń na poziomie schematu
1.1.9. Korzystanie w ograniczeniach z PRIMARY KEY i ASSERTION
1.1.10. Unikanie podziału atrybutów
1.1.11. Modelowanie hierarchii klas w DDL
1.2. Generowanie unikatowych numerów dla kluczy
1.2.1. Kolumny IDENTITY
1.2.2. ROWID i fizyczne adresy dyskowe
1.2.3. Numeracja kolejna w czystym SQL
1.2.4. GUID
1.2.5. Funkcje generatora sekwencji
1.2.6. Unikatowe generatory wartości
1.2.7. Wartości prealokowane
1.2.8. Kolejność losowa
1.3. Uwagi na temat powtarzających się wierszy
1.4. Inne obiekty schematów
1.4.1. Tabele schematów
1.4.2. Tabele tymczasowe
1.4.3. Instrukcja CREATE DOMAIN
1.4.4. Instrukcja CREATE TRIGGER
1.4.5. Instrukcja CREATE PROCEDURE
1.4.6. Instrukcja DECLARE CURSOR
2. Normalizacja
2.1. Zależności funkcyjne i wielowartościowe
2.2. Pierwsza postać normalna (1NF )
2.2.1. Uwaga na temat powtarzających się grup
2.3. Druga postać normalna (2NF)
2.4. Trzecia postać normalna (3NF)
2.5. Postać normalna klucza elementarnego (EKNF )
2.6. Postać normalna Boyce-Codda (BCNF
2.7. Czwarta postać normalna (4NF)
2.8. Piąta postać normalna (5NF)
2.9. Postać normalna klucza domeny (DKNF)
2.10. Normalizacja – wskazówki praktyczne
2.11. Rodzaje kluczy
2.11.1. Klucze naturalne
2.11.2. Sztuczne klucze
2.11.3. Jawny lokalizator fizyczny
2.11.4. Denormalizacja – wskazówki praktyczne
2.11.5. Sortowanie wierszy
3. Dane liczbowe w SQL
3.1. Typy liczbowe
3.1.1. Typy danych BIT, BYTE i BOOLEAN
3.2. Konwersja typów liczbowych
3.2.1. Zaokrąglanie i obcinanie
3.2.2. Funkcja CAST( )
3.3. Arytmetyka czterofunkcyjna
3.4. Arytmetyka i wartości NULL
3.5. Konwersja wartości na i z NULL
3.5.1. Funkcja NULLIF( )
3.5.2. Funkcja COALESCE(
3.6. Funkcje matematyczne producentów
3.6.1. Operatory z zakresu teorii liczb
3.6.2. Funkcje potęgowe
3.6.3. Funkcje skalowania
3.6.4. Przekształcanie liczb na słowa
4. Typy danych w SQL związane z czasem
4.1. Uwagi na temat standardów kalendarza
4.2. Typy danych związane z czasem w SQL
4.2.1. Wskazówki dotyczące posługiwania się datą, czasem i znacznikiem czasu
4.2.2. Standardy formatu daty
4.2.3. Posługiwanie się znacznikami czasu (TIMESTAMP)
4.2.4. Posługiwanie się czasem
4.3. Zapytania używające arytmetyki związanej z datami
4.4. Modele danych związanych z czasem
4.4.1. Duplikaty czasu
4.4.2. Bazy danych czasowych
4.4.3. Projekcja i selekcja czasu
4.4.4. Połączenia czasowe
4.4.5. Modyfikacja tabel stanu z ważnym czasem
4.4.6. Bieżące modyfikacje
4.4.7. Modyfikacje sekwencyjne
4.4.8. Modyfikacje niesekwencyjne
4.4.9. Tabele stanu czasu transakcji
4.4.10. Utrzymywanie dziennika audytu
4.4.11. Zapytania w dzienniku audytu
4.4.12. Modyfikacja dziennika audytu
4.4.13. Tabele dwuczasowe
4.4.14. Obsługa czasu w standardzie SQL
5. Typy danych znakowych w SQL
5.1. Problemy z łańcuchami w SQL
5.1.1. Problemy z porównywaniem łańcuchów
5.1.2. Problemy porządkowania łańcuchów
5.1.3. Problemy grupowania łańcuchów
5.2. Standardowe funkcje łańcuchowe
5.3. Rozszerzenia oferowane przez producentów
5.3.1. Dopasowanie fonetyczne
5.4. Tablice Cuttera
6. NULL: brakujące dane w języku SQL
6.1. Puste i brakujące tabele
6.2. Brakujące wartości w kolumnach
6.3. Kontekst i brakujące wartości
6.4. Porównywanie wartości NULL
6.5. Wartość NULL i logika
6.5.1. Wartości NULL w predykatach podzapytań
6.5.2. Rozwiązania standardu SQL
6.6. Matematyka i wartości NULL
6.7. Funkcje i wartości NULL
6.8. NULL i języki nadrzędne
6.9. Porady związane z wartościami NULL
6.9.1. Unikanie wartości NULL pochodzących z programów nadrzędnych
6.10. Uwagi na temat wielu wartości NULL
7. Wielokolumnowe elementy danych
7.1. Funkcje odległości
7.2. Przechowywanie adresu IP w języku SQL
7.2.1. Pojedyncza kolumna VARCHAR(15
7.2.2. Kolumna z jedną wartością całkowitą (INTEGER)
7.2.3. Cztery kolumny typu SMALLINT
7.3. Waluty i inne przekształcenia jednostek
7.4. Numery ubezpieczeniowe
7.5. Liczby wymierne
8. Działania na tabelach
8.1. Instrukcja DELETE FROM
8.1.1. Klauzula DELETE FROM
8.1.2. Klauzula WHERE
8.1.3. Usuwanie na podstawie danych z drugiej tabeli
8.1.4. Usuwanie w ramach tej samej tabeli
8.1.5. Usuwanie wielu tabel bez integralności odwołań
8.2. Instrukcja INSERT INTO
8.2.1. Klauzula INSERT INTO
8.2.2. Natura wstawiania
8.2.3. Programy użytkowe masowego ładowania i wyprowadzania danych
8.3. Instrukcja UPDATE
8.3.1. Klauzula UPDATE
8.3.2. Klauzula WHERE
8.3.3. Klauzula SET
8.3.4. Aktualizacja drugiej tabeli
8.3.5. Użycie w UPDATE wyrażenia CASE
8.4. Uwagi na temat błędów w popularnych rozszerzeniach producentów
8.5. Instrukcja MERGE
9. Operatory porównania, czyli operatory theta
9.1. Przekształcanie typów danych
9.2. Porównanie wierszy w języku SQL
10. Predykaty wartości
10.1. Predykat IS NULL
10.1.1. Źródła wartości NULL
10.2. Predykat [NOT]{TRUE | FALSE | UNKNOWN}
10.3. Predykat IS [NOT] NORMALIZED
11. Wyrażenia CASE
11.1. Wyrażenie CASE
11.1.1. Funkcje COALESCE() i NULLIF()
11.1.2. Wyrażenia CASE z GROUP BY
11.1.3. Klauzule CASE, CHECK() oraz implikacja logiczna
11.1.4. Wyrażenia podzapytań i stałe
11.2. Funkcje charakterystyczne Rozenshteina
12. Predykat LIKE
12.1. Sztuczki z wzorcami
12.2. Wyniki z wartościami NULL i pustymi łańcuchami
12.3. LIKE nie jest równością
12.4. Unikanie predykatu LIKE ze złączeniem
12.5. Wyrażenia CASE i predykaty LIKE
12.6. Predykaty SIMILAR TO
12.7. Sztuczki z łańcuchami
12.7.1. Zawartość znaków w łańcuchu
12.7.2. Przeszukiwanie kontra deklarowanie łańcucha
12.7.3. Tworzenie indeksu na podstawie łańcucha
13. Predykaty BETWEEN i OVERLAPS
13.1. Predykat BETWEEN
13.1.1. Wyniki z wartościami NULL
13.1.2. Wyniki z pustymi zbiorami
13.1.3. Wskazówki dotyczące programowania
13.2. Predykat OVERLAPS
13.2.1. Okresy i predykat OVERLAPS
14. Predykat [NOT] IN
14.1. Optymalizowanie predykatu IN()
14.2. Zastępowanie operatorów OR przez predykat IN()
14.3. Wartości NULL i predykat IN()
14.4. Predykat IN() i ograniczenia referencyjne
14.5. Predykat IN() i zapytania skalarne
15. Predykat EXISTS()
15.1. Predykat EXISTS i wartości NULL
15.2. Predykat EXISTS i INNER JOIN
15.3. Predykat NOT EXISTS i OUTER JOIN
15.4. Predykat EXISTS() i kwantyfikatory
15.5. Predykat EXISTS() i ograniczenia referencyjne
15.6. Predykat EXISTS i logika trójwartościowa
16. Kwalifikowane predykaty podzapytań
16.1. Porównania podzapytań skalarnych
16.2. Kwantyfikatory i brakujące dane
16.3. Predykat ALL i funkcje liczenia ekstremów
16.4. Predykat UNIQUE
17. Instrukcja SELECT
17.1. SELECT i JOIN
17.1.1. Jednopoziomowa instrukcja SELECT
17.1.2. Podzapytania skorelowane w instrukcji SELECT
17.1.3. Składnia instrukcji SELECT
17.1.4. Klauzula ORDER BY
17.2. OUTER JOIN
17.2.1. Składnia ze złączeniami zewnętrznymi
17.2.2. Wartości NULL i złączenia zewnętrzne
17.2.3. OUTER JOIN przeszukiwane i typu NATURAL
17.2.4. Samozłączenia zewnętrzne
17.2.5. Dwa lub więcej złączeń zewnętrznych
17.2.6. Złączenia zewnętrzne i funkcje agregacji
17.2.7. FULL OUTER JOIN
17.2.8. Klauzula WHERE operatorów OUTER JOIN
17.3. Stara i nowa składnia JOIN
17.4. Zakres nazw tabel pochodnych
17.5. JOIN za pomocą wywołania funkcji
17.6. Złączenie UNION JOIN
17.7. Złączenia pakujące
17.8. Złączenie T dr. Codda
17.8.1. Rozwiązanie chorwackie
17.8.2. Rozwiązanie szwedzkie
17.8.3. Rozwiązanie kolumbijskie
18. Widoki, tabele pochodne, tabele zmaterializowane i tabele tymczasowe
18.1. Widoki w zapytaniach
18.2. Widoki z możliwością aktualizacji i tylko do odczytu
18.3. Typy widoków
18.3.1. Rzutowanie pojedynczej tabeli i ograniczenie
18.3.2. Kolumny obliczane
18.3.3. Kolumny tłumaczone
18.3.4. Widoki zgrupowane
18.3.5. Widoki z operacją UNION
18.3.6. Złączenia w widokach
18.3.7. Widoki zagnieżdżone
18.4. Jak widoki są obsługiwane w systemie bazy danych
18.4.1. Lista kolumn widoku
18.4.2. Materializacja widoku
18.4.3. Umieszczanie tekstu w linii
18.4.4. Struktury wskaźnika
18.4.5. Indeksowanie i widoki
18.5. Klauzula WITH CHECK OPTION
18.5.1. WITH CHECK OPTION jako klauzula CHECK()
18.6. Usuwanie widoków
18.7. Deklaracje TEMPORARY TABLE
18.8. Wskazówki dotyczące użycia widoków i tabel tymczasowych
18.8.1. Zastosowanie widoków
18.8.2. Zastosowanie tabel tymczasowych
18.8.3. Spłaszczanie tabeli za pomocą widoku
18.9. Zastosowanie tabel pochodnych
18.9.1. Tabele pochodne w klauzuli FROM
18.9.2. Tabele pochodne z konstruktorem VALUES
18.10. Tabele pochodne w klauzuli WITH
19. Partycjonowanie danych w zapytaniach
19.1. Pokrycia i partycje
19.1.1. Partycjonowanie według zakresów
19.1.2. Tworzenie partycji na podstawie funkcji
19.1.3. Tworzenie partycji na podstawie sekwencji
19.2. Dzielenie relacyjne
19.2.1. Dzielenie z resztą
19.2.2. Dzielenie bez reszty
19.2.3. Uwaga na temat wydajności
19.2.4. Dzielenie metodą Todda
19.2.5. Dzielenie za pomocą złączeń JOIN
19.2.6. Dzielenie za pomocą operatorów Set
19.3. Dzielenie Romleya
19.4. Wyrażenia boolowskie w systemie zarządzania relacyjną bazą danych (SZRBD
19.5. Podzbiory FIFO i LIFO
20. Operacje grupowania
20.1. Klauzula Group By
20.1.1. Wartości NULL i grupy
20.2. GROUP BY i HAVING
20.2.1. Charakterystyki grupy i klauzula HAVING
20.3. Poziomy wielokrotnej agregacji
20.3.1. Zgrupowane widoki dla wielu poziomów agregacji
20.3.2. Wyrażenia podzapytań dla wielu poziomów agregacji
20.3.3. Wyrażenie CASE dla wielu poziomów agregacji
20.4. Grupowanie obliczonych kolumn
20.5. Grupowanie w pary
20.6. Sortowanie według GROUP BY
21. Funkcje agregacji
21.1. Funkcje COUNT()
21.2. Funkcje SUM()
21.3. Funkcje AVG()
21.3.1. Wartości średnie z pustymi grupami
21.3.2. Wartości średnie dla kolumn
21.4. Funkcje znajdowania ekstremów
21.4.1. Proste funkcje znajdowania ekstremów
21.4.2. Uogólnione funkcje dotyczące ekstremów
21.4.3. Funkcje dotyczące ekstremów z wieloma kryteriami
21.4.4. Funkcje GREATEST() i LEAST ()
21.5. Funkcja agregacji LIST()
21.5.1. Funkcja LIST() z procedurą
21.5.2. Funkcja LIST() przy użyciu tabeli krzyżowych
21.6. Funkcja agregacji PRD()
21.6.1. Funkcje PRD() z zastosowaniem wyrażeń
21.6.2. Funkcja agregacji PRD() z zastosowaniem logarytmów
21.7. Funkcja agregacji poziomu bitowego
21.7.1. Funkcja agregacji poziomu bitowego OR
21.7.2. Funkcja agregacji poziomu bitowego AND
22. Tabele pomocnicze
22.1. Tabela sekwencji
22.1.1. Lista wyliczająca
22.1.2. Odwzorowanie sekwencji na cykl
22.1.3. Zastępowanie pętli iteracyjnej
22.2. Pomocnicze tabele wyszukujące
22.2.1. Tabele pomocnicze prostej translacji
22.2.2. Tabele pomocnicze z wieloma tłumaczeniami
22.2.3. Tabele pomocnicze z wieloma parametrami
22.2.4. Tabele pomocnicze zakresu
22.2.5. Hierarchiczne tabele pomocnicze
22.2.6. Najważniejsza tabela powiązana
22.3. Tabele funkcji pomocniczych
22.3.1. Funkcje odwrotne z tabelami pomocniczymi
22.3.2. Interpolacja z tabelami funkcji pomocniczych
22.4. Globalne tabele stałych
23. Statystyki w języku SQL
23.1. Wartość modalna
23.2. Funkcja AVG()
23.3. Mediana
23.3.1. Pierwsza mediana Date’a
23.3.2. Pierwsza mediana Celko
23.3.3. Druga mediana Date’a
23.3.4. Mediana Murchisona
23.3.5. Druga mediana Celko
23.3.6. Mediana Vaughana z widokami
23.3.7. Mediana z funkcją charakterystyczną
23.3.8. Trzecia mediana Celko
23.3.9. Mediana Kena Hendersona
23.4. Wariancja i odchylenie standardowe
23.5. Średnie odchylenie
23.6. Statystyki zbiorcze
23.6.1. Sumy bieżące
23.6.2. Bieżące różnice
23.6.3. Skumulowane wartości procentowe
23.6.4. Rankingi i powiązana statystyka
23.6.5. Kwintyle i powiązana statystyka
23.7. Tabela krzyżowa
23.7.1. Tabele krzyżowe przy użyciu złączeń krzyżowych
23.7.2. Tabele krzyżowe przy użyciu złączeń zewnętrznych
23.7.3. Tabele krzyżowe według podzapytań
23.7.4. Tabele krzyżowe według wyrażenia CASE
23.8. Średnia harmoniczna i średnia geometryczna
23.9. Statystyki opisowe z wieloma zmiennymi
23.9.1. Kowariancja
23.9.2. Współczynnik kowariancji Pearsona
23.9.3. Wartości NULL w statystykach opisowych z wieloma zmiennymi
24. Obszary, ciągi, luki, sekwencje i szeregi
24.1. Znajdowanie podobszarów o rozmiarze (n)
24.2. Obszary numerowania
24.3. Znajdowanie obszarów o maksymalnym rozmiarze
24.4. Zapytania ograniczone
24.5. Zapytania o ciągi i sekwencje
24.5.1. Wstawianie kolejnych numerów
24.6. Sumowanie szeregów
24.7. Zamiana i przesuwanie wartości na liście
24.8. Zagęszczanie listy numerów
24.9. Składanie listy numerów
24.10. Pokrycia
25. Tablice w języku SQL
25.1. Tworzenie tablic poprzez nazwane kolumny
25.2. Tworzenie tablic poprzez kolumny indeksów
25.3. Operacje na macierzach w języku SQL
25.3.1. Równość macierzy
25.3.2. Dodawanie macierzy
25.3.3. Mnożenie macierzy
25.3.4. Inne operacje na macierzach
25.4. Spłaszczanie tabeli do tablicy
25.5. Porównywanie macierzy w formacie tabeli
26. Działania na zbiorach
26.1. UNION i UNION ALL
26.1.1. Kolejność wykonywania
26.1.2. Mieszane operatory UNION i UNION ALL
26.1.3. Operacja UNION na kolumnach z tej samej tabeli
26.2. Operatory INTERSECT i EXCEPT
26.2.1. Instrukcje INTERSECT i EXCEPT bez wartości NULL i duplikatów
26.2.2. Instrukcje INTERSECT i EXCEPT z wartościami NULL i duplikatami
26.3. Uwaga na temat ALL i SELECT DISTINCT
26.4. Równoważność i podzbiory właściwe
27. Podzbiory
27.1. Każda n-ta pozycja w tabeli
27.2. Losowe wybieranie wierszy z tabeli
27.3. Operatory CONTAINS
27.3.1. Właściwe operatory podzbiorów
27.3.2. Równość tabel
27.4. Wybieranie reprezentatywnego podzbioru
28. Drzewa i hierarchie w języku SQL
28.1. Model listy sąsiedztwa
28.1.1. Ograniczenia złożone
28.1.2. Przeglądanie proceduralne dla zapytań
28.1.3. Zmienianie tabeli
28.2. Model numerowania ścieżki
28.2.1. Znajdowanie poddrzew i węzłów
28.2.2. Znajdowanie poziomów i węzłów podrzędnych
28.2.3. Usuwanie węzłów i poddrzew
28.2.4. Ograniczenia dotyczące integralności
28.3. Model zagnieżdżonego zbioru hierarchii
28.3.1. Właściwość zliczania
28.3.2. Właściwość zawierania
28.3.3. Węzły podrzędne
28.3.4. Agregacje hierarchiczne
28.3.5. Usuwanie węzłów i podrzew
28.3.6. Przekształcanie listy sąsiedztwa na model zbiorów zagnieżdżonych
28.4. Inne modele drzew i hierarchii
29. Zapytania dotyczące czasu
29.1. Matematyka związana z czasem
29.2. Kalendarze osobiste
29.3. Szeregi czasowe
29.3.1. Przerwy w szeregach czasowych
29.3.2. Ciągłe przedziały czasowe
29.3.3. Brakujący czas w zdarzeniach ciągłych
29.3.4. Umiejscawianie dat
29.3.5. Czasowe punkty rozpoczęcia i zakończenia
29.3.6. Średnie czasy oczekiwania
29.4. Daty juliańskie
29.5. Funkcje ekstrakcji daty i czasu
29.6. Inne funkcje czasowe
29.7. Tygodnie
29.7.1. Sortowanie według nazw dni tygodnia
29.8. Modelowanie czasu w tabelach
29.8.1. Zastosowanie par czasu trwania
29.9. Pomocnicza tabela Kalendarz
29.10. Problemy z rokiem 2000
29.10.1. Zera
29.10.2. Rok przestępny
29.10.3. Tysiąclecie
29.10.4. Dziwne daty w starszych danych
29.10.5. Następstwa Y2K
30. Grafy w języku SQL
30.1. Podstawowe charakterystyki grafu
30.1.1. Wszystkie węzły w grafie
30.1.2. Punkty końcowe ścieżek
30.1.3. Osiągalne węzły
30.1.4. Krawędzie
30.1.5. Stopień wejściowy i wyjściowy
30.1.6. Węzły źródłowe, ujściowe, izolowane i wewnętrzne
30.2. Ścieżki w grafie
30.2.1. Długości ścieżek
30.2.2. Najkrótsza ścieżka
30.2.3. Ścieżki według iteracji
30.2.4. Tworzenie listy ścieżek
30.3. Acykliczne grafy jako zagnieżdżone zbiory
30.4. Ścieżki z CTE
30.4.1. Grafy nieacykliczne
30.5. Model macierzy sąsiedztwa
30.6. Punkty wewnątrz wielokątów
31. OLAP w języku SQL
31.1. Schemat gwiazdy
31.2. Funkcjonalność OLAP
31.2.1. RANK i DENSE_RANK
31.2.2. Numerowanie wierszy
31.2.3. Operatory GROUPING
31.2.4. Klauzula okna
31.2.5. Przykłady OLAP w języku SQL
31.2.6. Warstwa wymiaru dla całego przedsiębiorstwa
31.3. Nieco historii
32. Transakcje i kontrola współbieżności
32.1. Sesje
32.2. Transakcje i ACID
32.2.1. Niepodzielność
32.2.2. Spójność
32.2.3. Izolacja
32.2.4. Trwałość
32.3. Kontrola współbieżności
32.3.1. Pięć zjawisk
32.3.2. Poziomy izolacji
32.3.3. Poziom izolacji CURSOR STABILITY
32.4. Pesymistyczna kontrola współbieżności
32.5. Izolacja migawkowa: współbieżność optymistyczna
32.6. Logiczna kontrola współbieżności
32.7. Impas i żywa blokada_
33. Optymalizowanie języka SQL
33.1. Metody dostępu
33.1.1. Dostęp sekwencyjny
33.1.2. Dostęp indeksowany
33.1.3. Indeksy wykorzystujące mieszanie
33.1.4. Indeksy wektora bitowego
33.2. Wyrażenia i niezagnieżdżone zapytania
33.2.1. Stosujmy proste wyrażenia
33.2.2. Wyrażenia łańcuchowe
33.3. Podawajmy dodatkowe informacje na temat złączeń
33.4. Uważnie indeksujmy tabele
33.5. Uważajmy na predykat IN
33.6. Unikajmy instrukcji UNION
33.7. Wybierajmy złączenia zamiast zagnieżdżonych zapytań
33.8. Unikajmy wyrażeń na kolumnach indeksowanych
33.9. Unikajmy sortowania
33.10. Unikamy złączeń krzyżowych
33.11. Uczmy się uważnie stosować indeksy
33.12. Uważnie porządkujemy indeksy
33.13. Poznajmy swój optymalizator
33.14. Rekompilacja statycznego języka SQL po zmianach schematu
33.15. Tablice tymczasowe są czasami wygodne
33.16. Aktualizacja statystyk
Bibliografia
Skorowidz
816 stron, oprawa twarda
Księgarnia nie działa. Nie odpowiadamy na pytania i nie realizujemy zamówien. Do odwolania !.
|