Spis treści
- Przedmowa
- Dla kogo jest przeznaczona ta książka?
- O czym w tej książce nie pisaliśmy?
- Systemy i wersje
- Tabele wykorzystane w tej książce
- Konwencje stosowane w książce
- Konwencje typograficzne
- Konwencje prezentacji kodów
- Podziękowania do wydania drugiego
- Podziękowania do wydania pierwszego
- Rozdział 1. Odczytywanie rekordów
- 1.1. Odczytywanie wszystkich wierszy i kolumn tabeli
- Problem
- Rozwiązanie
- Omówienie
- 1.2. Odczytywanie podzbioru wierszy tabeli
- Problem
- Rozwiązanie
- Omówienie
- 1.3. Odnajdywanie wierszy spełniających wiele warunków
- Problem
- Rozwiązanie
- Omówienie
- 1.4. Odczytywanie podzbioru kolumn tabeli
- Problem
- Rozwiązanie
- Omówienie
- 1.5. Definiowanie sensownych nazw kolumn
- Problem
- Rozwiązanie
- Omówienie
- 1.6. Odwołania do aliasów kolumn w klauzuli WHERE
- Problem
- Rozwiązanie
- Omówienie
- 1.7. Konkatenacja wartości kolumn
- Problem
- Rozwiązanie
- DB2, Oracle, PostgreSQL
- MySQL
- SQL Server
- Omówienie
- 1.8. Stosowanie logiki warunkowej w wyrażeniu SELECT
- Problem
- Rozwiązanie
- Omówienie
- 1.9. Ograniczanie liczby zwracanych wierszy
- Problem
- Rozwiązanie
- DB2
- MySQL i PostgreSQL
- Oracle
- SQL Server
- Omówienie
- 1.10. Zwracanie n losowych rekordów tabeli
- Problem
- Rozwiązanie
- DB2
- MySQL
- PostgreSQL
- Oracle
- SQL Server
- Omówienie
- 1.11. Odnajdywanie wartości pustych (NULL)
- Problem
- Rozwiązanie
- Omówienie
- 1.12. Przekształcanie wartości pustych w rzeczywiste
- Problem
- Rozwiązanie
- Omówienie
- 1.13. Poszukiwanie wzorców
- Problem
- Rozwiązanie
- Omówienie
- 1.14. Podsumowanie
- 1.1. Odczytywanie wszystkich wierszy i kolumn tabeli
- Rozdział 2. Sortowanie wyników zapytań
- 2.1. Zwracanie wyników zapytań posortowanych w określonym porządku
- Problem
- Rozwiązanie
- Omówienie
- 2.2. Sortowanie zbioru wynikowego według zawartości wielu pól
- Problem
- Rozwiązanie
- Omówienie
- 2.3. Sortowanie według podłańcuchów
- Problem
- Rozwiązanie
- DB2, MySQL, Oracle i PostgreSQL
- SQL Server
- Omówienie
- 2.4. Sortowanie wymieszanych danych alfanumerycznych
- Problem
- Rozwiązanie
- Oracle, SQL Server i PostgreSQL
- DB2
- MySQL
- Omówienie
- 2.5. Obsługa wartości pustych w zapytaniach sortujących
- Problem
- Rozwiązanie
- DB2, MySQL, PostgreSQL oraz SQL Server
- Oracle
- Omówienie
- 2.6. Sortowanie według klucza zależnego od danych
- Problem
- Rozwiązanie
- Omówienie
- 2.7. Podsumowanie
- 2.1. Zwracanie wyników zapytań posortowanych w określonym porządku
- Rozdział 3. Praca z wieloma tabelami
- 3.1. Umieszczanie jednego zbioru wierszy ponad drugim
- Problem
- Rozwiązanie
- Omówienie
- 3.2. Łączenie wzajemnie powiązanych wierszy
- Problem
- Rozwiązanie
- Omówienie
- 3.3. Odnajdywanie wspólnych wierszy pomiędzy dwiema tabelami
- Problem
- Rozwiązanie
- MySQL i SQL Server
- DB2, Oracle i PostgreSQL
- Omówienie
- 3.4. Uzyskiwanie z jednej tabeli tylko tych wartości, które nie występują w innej tabeli
- Problem
- Rozwiązanie
- DB2, PostgreSQL i SQL Server
- Oracle
- MySQL
- Omówienie
- DB2, PostgreSQL i SQL Server
- Oracle
- MySQL
- 3.5. Uzyskiwanie z jednej tabeli tylko tych wierszy, dla których nie istnieją odpowiedniki w innej tabeli
- Problem
- Rozwiązanie
- DB2, MySQL, PostgreSQL, Oracle, SQL Server
- Omówienie
- 3.6. Dodawanie złączeń do zapytań bez konieczności modyfikowania pozostałych, już istniejących złączeń
- Problem
- Rozwiązanie
- Omówienie
- Patrz także
- 3.7. Określanie, czy dwie tabele zawierają te same dane
- Problem
- Rozwiązanie
- DB2 i PostgreSQL
- Oracle
- MySQL i SQL Server
- Omówienie
- DB2, Oracle i PostgreSQL
- MySQL i SQL Server
- 3.8. Identyfikowanie i eliminowanie iloczynów kartezjańskich
- Problem
- Rozwiązanie
- Omówienie
- 3.9. Stosowanie złączeń w zapytaniach wykorzystujących funkcje agregujące
- Problem
- Rozwiązanie
- MySQL i PostgreSQL
- DB2, Oracle i SQL Server
- Omówienie
- MySQL i PostgreSQL
- DB2, Oracle i SQL Server
- 3.10. Stosowanie złączeń zewnętrznych w zapytaniach wykorzystujących funkcje agregujące
- Problem
- Rozwiązanie
- DB2, MySQL, PostgreSQL i SQL Server
- Omówienie
- 3.11. Zwracanie brakujących danych z wielu tabel
- Problem
- Rozwiązanie
- DB2, MySQL, PostgreSQL i SQL Server
- Oracle
- Omówienie
- 3.12. Wykorzystywanie wartości NULL w operacjach i porównaniach
- Problem
- Rozwiązanie
- Omówienie
- 3.13. Podsumowanie
- 3.1. Umieszczanie jednego zbioru wierszy ponad drugim
- Rozdział 4. Wstawianie, aktualizowanie i usuwanie
- 4.1. Wstawianie nowych rekordów
- Problem
- Rozwiązanie
- Omówienie
- 4.2. Wstawianie wartości domyślnych
- Problem
- Rozwiązanie
- Omówienie
- 4.3. Zastępowanie wartości domyślnych wartością NULL
- Problem
- Rozwiązanie
- Omówienie
- 4.4. Kopiowanie wierszy pomiędzy tabelami
- Problem
- Rozwiązanie
- Omówienie
- 4.5. Kopiowanie definicji tabel
- Problem
- Rozwiązanie
- DB2
- Oracle, MySQL i PostgreSQL
- SQL Server
- Omówienie
- DB2
- Oracle, MySQL i PostgreSQL
- SQL Server
- 4.6. Wstawianie wierszy do wielu tabel jednocześnie
- Problem
- Rozwiązanie
- Oracle
- DB2
- MySQL, PostgreSQL oraz SQL Server
- Omówienie
- Oracle
- DB2
- MySQL, PostgreSQL oraz SQL Server
- 4.7. Blokowanie możliwości wstawiania wartości do wybranych kolumn
- Problem
- Rozwiązanie
- Omówienie
- 4.8. Modyfikowanie rekordów tabeli
- Problem
- Rozwiązanie
- Omówienie
- 4.9. Aktualizowanie danych pod warunkiem istnienia w tabeli określonych wierszy
- Problem
- Rozwiązanie
- Omówienie
- 4.10. Aktualizowanie wartości według zawartości innej tabeli
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL, SQL Server i MySQL
- 4.11. Scalanie rekordów
- Problem
- Rozwiązanie
- Omówienie
- 4.12. Usuwanie wszystkich rekordów z tabeli
- Problem
- Rozwiązanie
- Omówienie
- 4.13. Usuwanie rekordów spełniających określone kryteria
- Problem
- Rozwiązanie
- Omówienie
- 4.14. Usuwanie pojedynczych rekordów
- Problem
- Rozwiązanie
- Omówienie
- 4.15. Usuwanie wierszy naruszających integralność referencyjną
- Problem
- Rozwiązanie
- Omówienie
- 4.16. Usuwanie powtarzających się rekordów
- Problem
- Rozwiązanie
- Omówienie
- 4.17. Usuwanie rekordów na podstawie danych z innej tabeli
- Problem
- Rozwiązanie
- Omówienie
- 4.18. Podsumowanie
- 4.1. Wstawianie nowych rekordów
- Rozdział 5. Zapytania przetwarzające metadane
- 5.1. Generowanie listy tabel wchodzących w skład schematu bazy danych
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL, MySQL i SQL Server
- Omówienie
- 5.2. Generowanie listy kolumn danej tabeli
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL, MySQL i SQL Server
- Omówienie
- 5.3. Generowanie listy indeksowanych kolumn danej tabeli
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- 5.4. Generowanie listy ograniczeń zdefiniowanych dla tabeli
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL, MySQL i SQL Server
- Omówienie
- 5.5. Generowanie listy kluczy obcych pozbawionych indeksów
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- 5.6. Generowanie kodu języka SQL za pomocą wyrażeń tego języka
- Problem
- Rozwiązanie
- Omówienie
- 5.7. Opisywanie widoków słownika danych w bazie danych Oracle
- Problem
- Rozwiązanie
- Omówienie
- 5.8. Podsumowanie
- 5.1. Generowanie listy tabel wchodzących w skład schematu bazy danych
- Rozdział 6. Praca z łańcuchami
- 6.1. Przechodzenie pomiędzy znakami łańcucha
- Problem
- Rozwiązanie
- Omówienie
- 6.2. Umieszczanie apostrofów w stałych łańcuchowych
- Problem
- Rozwiązanie
- Omówienie
- 6.3. Zliczanie wystąpień znaku w łańcuchu wejściowym
- Problem
- Rozwiązanie
- Omówienie
- 6.4. Usuwanie z łańcucha niechcianych znaków
- Problem
- Rozwiązanie
- DB2, Oracle, PostgreSQL i SQL Server
- MySQL
- Omówienie
- 6.5. Oddzielanie danych numerycznych od danych znakowych
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- 6.6. Określanie, czy łańcuch jest ciągiem alfanumerycznym
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle i PostgreSQL
- SQL Server
- Omówienie
- DB2, Oracle, PostgreSQL i SQL Server
- MySQL
- 6.7. Określanie inicjałów na podstawie całych imion i nazwisk
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle i PostgreSQL
- SQL Server
- Omówienie
- DB2
- Oracle i PostgreSQL
- MySQL
- 6.8. Sortowanie kolumn według wybranych fragmentów łańcuchów
- Problem
- Rozwiązanie
- DB2, Oracle, MySQL i PostgreSQL
- SQL Server
- Omówienie
- 6.9. Sortowanie danych według liczb zapisanych w łańcuchach
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- Omówienie
- 6.10. Tworzenie listy wartości oddzielonych przecinkami z danych zawartych w wierszach tabeli
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL i SQL Server
- Omówienie
- MySQL
- PostgreSQL i SQL Server
- Oracle
- 6.11. Konwertowanie danych oddzielonych przecinkami na wielowartościową listę IN
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- DB2 i SQL Server
- MySQL
- Oracle
- PostgreSQL
- 6.12. Sortowanie znaków w łańcuchach w porządku alfabetycznym
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- SQL Server
- MySQL
- Oracle
- PostgreSQL i DB2
- 6.13. Identyfikowanie łańcuchów, które można traktować jak liczby
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- DB2, Oracle i PostgreSQL
- MySQL
- 6.14. Odnajdywanie n-tego podłańcucha na liście oddzielonej przecinkami
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- DB2
- MySQL
- SQL Server
- Oracle
- PostgreSQL
- 6.15. Przetwarzanie adresów IP
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- 6.16. Porównywanie łańcuchów znaków na podstawie brzmienia
- Problem
- Rozwiązanie
- Omówienie
- 6.17. Wyszukiwanie tekstu niepasującego do wzorca
- Problem
- Rozwiązanie
- Omówienie
- 6.18. Podsumowanie
- 6.1. Przechodzenie pomiędzy znakami łańcucha
- Rozdział 7. Praca z liczbami
- 7.1. Wyznaczanie wartości średniej
- Problem
- Rozwiązanie
- Omówienie
- Patrz także
- 7.2. Identyfikacja minimalnej i maksymalnej wartości w kolumnie
- Problem
- Rozwiązanie
- Omówienie
- Patrz także
- 7.3. Sumowanie wartości składowanych w kolumnie
- Problem
- Rozwiązanie
- Omówienie
- Patrz także
- 7.4. Zliczanie wierszy tabeli
- Problem
- Rozwiązanie
- Omówienie
- Patrz także
- 7.5. Zliczanie różnych wartości w kolumnie
- Problem
- Rozwiązanie
- Omówienie
- 7.6. Generowanie sum bieżących
- Problem
- Rozwiązanie
- Omówienie
- 7.7. Generowanie iloczynów bieżących
- Problem
- Rozwiązanie
- Omówienie
- 7.8. Wygładzanie serii wartości
- Problem
- Rozwiązanie
- Omówienie
- 7.9. Wyznaczanie wartości modalnej (dominanty)
- Problem
- Rozwiązanie
- DB2, MySQL, PostgreSQL i SQL Server
- Oracle
- Omówienie
- DB2, MySQL, PostgreSQL i SQL Server
- Oracle
- Patrz także
- 7.10. Wyznaczanie mediany
- Problem
- Rozwiązanie
- DB2 i PostgreSQL
- SQL Server
- MySQL
- Oracle
- Omówienie
- Oracle, PostgreSQL, SQL Server i DB2
- MySQL
- 7.11. Określanie procentowego udziału w wartości łącznej
- Problem
- Rozwiązanie
- MySQL i PostgreSQL
- DB2, Oracle i SQL Server
- Omówienie
- MySQL i PostgreSQL
- DB2, Oracle i SQL Server
- 7.12. Agregowanie kolumn zawierających wartości NULL
- Problem
- Rozwiązanie
- Omówienie
- 7.13. Wyznaczanie wartości średnich z wyłączeniem wartości spoza określonego przedziału
- Problem
- Rozwiązanie
- MySQL i PostgreSQL
- DB2, Oracle i SQL Server
- Omówienie
- MySQL i PostgreSQL
- DB2, Oracle i SQL Server
- 7.14. Wyodrębnianie liczb z łańcuchów alfanumerycznych
- Problem
- Rozwiązanie
- DB2
- Oracle, SQL Server i PostgreSQL
- MySQL
- Omówienie
- 7.15. Modyfikowanie wartości uwzględnianych w sumach bieżących
- Problem
- Rozwiązanie
- Omówienie
- 7.16. Znajdowanie wartości odstających metodą mediany odchylenia bezwzględnego
- Problem
- Rozwiązanie
- SQL Server
- PostgreSQL i DB2
- Oracle
- MySQL
- Omówienie
- 7.17. Wyszukiwanie anomalii przy użyciu prawa Benforda
- Problem
- Rozwiązanie
- Omówienie
- 7.18. Podsumowanie
- 7.1. Wyznaczanie wartości średniej
- Rozdział 8. Działania na datach
- 8.1. Dodawanie i odejmowanie dni, miesięcy i lat
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- 8.2. Określanie liczby dni pomiędzy dwiema datami
- Problem
- Rozwiązanie
- DB2
- Oracle i PostgreSQL
- MySQL i SQL Server
- Omówienie
- 8.3. Określanie liczby dni roboczych pomiędzy dwiema datami
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- 8.4. Określanie liczby miesięcy lub lat dzielących dwie daty
- Problem
- Rozwiązanie
- DB2 i MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- DB2, MySQL i PostgreSQL
- Oracle i SQL Server
- 8.5. Określanie liczby sekund, minut lub godzin dzielących dwie daty
- Problem
- Rozwiązanie
- DB2
- MySQL
- SQL Server
- Oracle i PostgreSQL
- Omówienie
- 8.6. Zliczanie wystąpień poszczególnych dni tygodnia w roku
- Problem
- Rozwiązanie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- Omówienie
- DB2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- 8.7. Określanie różnicy dat między rekordem bieżącym a następnym
- Problem
- Rozwiązanie
- DB2
- MySQL i SQL Server
- Oracle
- PostgreSQL
- Omówienie
- 8.8. Podsumowanie
- 8.1. Dodawanie i odejmowanie dni, miesięcy i lat
- Rozdział 9. Przetwarzanie dat
- 9.1. Określanie, czy dany rok jest rokiem przestępnym
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- 9.2. Określanie liczby dni w roku
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- 9.3. Wyodrębnianie jednostek czasu z dat wejściowych
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- 9.4. Określanie pierwszego i ostatniego dnia miesiąca
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- 9.5. Określanie wszystkich dat występowania konkretnego dnia tygodnia w ciągu danego roku
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- 9.6. Określanie dat pierwszego i ostatniego wystąpienia określonego dnia tygodnia w danym miesiącu
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2 i SQL Server
- Oracle
- PostgreSQL i MySQL
- 9.7. Tworzenie kalendarza
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- MySQL, PostgreSQL i SQL Server
- 9.8. Generowanie dat rozpoczynających i kończących poszczególne kwartały danego roku
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL, MySQL i SQL Server
- 9.9. Określanie daty początkowej i końcowej dla danego kwartału
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- 9.10. Uzupełnianie brakujących dat
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- Omówienie
- DB2
- Oracle
- PostgreSQL
- MySQL
- SQL Server
- 9.11. Przeszukiwanie według określonych jednostek czasu
- Problem
- Rozwiązanie
- DB2 i MySQL
- Oracle i PostgreSQL
- SQL Server
- Omówienie
- 9.12. Porównywanie rekordów według określonych fragmentów dat
- Problem
- Rozwiązanie
- DB2
- Oracle i PostgreSQL
- MySQL
- SQL Server
- Omówienie
- 9.13. Identyfikacja wzajemnie pokrywających się przedziałów czasowych
- Problem
- Rozwiązanie
- DB2, PostgreSQL i Oracle
- MySQL
- SQL Server
- Omówienie
- 9.14. Podsumowanie
- 9.1. Określanie, czy dany rok jest rokiem przestępnym
- Rozdział 10. Praca z przedziałami
- 10.1. Lokalizowanie przedziałów w ramach ciągów wartości
- Problem
- Rozwiązanie
- Omówienie
- DB2, MySQL, PostgreSQL, SQL Server i Oracle
- 10.2. Odnajdywanie różnic pomiędzy wierszami należącymi do tej samej grupy lub partycji danych
- Problem
- Rozwiązanie
- Omówienie
- 10.3. Lokalizowanie początków i końców przedziałów wartości następujących bezpośrednio po sobie
- Problem
- Rozwiązanie
- Omówienie
- 10.4. Uzupełnianie brakujących wartości w przedziale
- Problem
- Rozwiązanie
- DB2
- Oracle
- PostgreSQL i MySQL
- SQL Server
- Omówienie
- 10.5. Generowanie kolejnych wartości liczbowych
- Problem
- Rozwiązanie
- DB2 i SQL Server
- Oracle
- PostgreSQL
- Omówienie
- DB2 i SQL Server
- Oracle
- PostgreSQL
- 10.6. Podsumowanie
- 10.1. Lokalizowanie przedziałów w ramach ciągów wartości
- Rozdział 11. Zaawansowane przeszukiwanie
- 11.1. Podział zbioru wynikowego na strony
- Problem
- Rozwiązanie
- Omówienie
- 11.2. Pomijanie n wierszy tabeli
- Problem
- Rozwiązanie
- Omówienie
- 11.3. Stosowanie logiki alternatywy w zapytaniach wykorzystujących złączenia zewnętrzne
- Problem
- Rozwiązanie
- Omówienie
- DB2, MySQL, PostgreSQL i SQL Server
- 11.4. Identyfikacja par odwrotnych w przetwarzanym zbiorze wierszy
- Problem
- Rozwiązanie
- Omówienie
- 11.5. Wybieranie n pierwszych rekordów
- Problem
- Rozwiązanie
- Omówienie
- 11.6. Odnajdywanie rekordów z największymi i najmniejszymi wartościami
- Problem
- Rozwiązanie
- DB2, Oracle i SQL Server
- Omówienie
- DB2, Oracle i SQL Server
- 11.7. Badanie przyszłych wierszy
- Problem
- Rozwiązanie
- Omówienie
- Patrz także
- 11.8. Przenoszenie wartości wierszy
- Problem
- Rozwiązanie
- Omówienie
- 11.9. Tworzenie rankingu rezultatów
- Problem
- Rozwiązanie
- Omówienie
- 11.10. Eliminowanie powtórzeń
- Problem
- Rozwiązanie
- Klasyczne rozwiązania
- Omówienie
- Klasyczne rozwiązania
- 11.11. Odnajdywanie wartości skoczka
- Problem
- Rozwiązanie
- DB2 i SQL Server
- Oracle
- Omówienie
- DB2 i SQL Server
- Oracle
- 11.12. Generowanie prostych prognoz
- Problem
- Rozwiązanie
- DB2, MySQL i SQL Server
- Oracle
- PostgreSQL
- Omówienie
- DB2, MySQL i SQL Server
- Oracle
- PostgreSQL
- 11.13. Podsumowanie
- 11.1. Podział zbioru wynikowego na strony
- Rozdział 12. Raportowanie i przekształcanie danych
- 12.1. Konwertowanie zbioru wynikowego do postaci pojedynczego wiersza
- Problem
- Rozwiązanie
- Omówienie
- 12.2. Konwertowanie zbioru wynikowego do postaci zbioru wielowierszowego
- Problem
- Rozwiązanie
- Omówienie
- 12.3. Odwrotna transpozycja zbioru wynikowego
- Problem
- Rozwiązanie
- Omówienie
- 12.4. Odwrotna transpozycja zbioru danych do postaci zbioru jednokolumnowego
- Problem
- Rozwiązanie
- Omówienie
- 12.5. Eliminowanie powtórzeń ze zbioru wynikowego
- Problem
- Rozwiązanie
- Omówienie
- 12.6. Przekształcanie zbioru wynikowego w celu ułatwienia obliczeń na wierszach
- Problem
- Rozwiązanie
- Omówienie
- 12.7. Tworzenie bloków danych tej samej wielkości
- Problem
- Rozwiązanie
- Omówienie
- 12.8. Tworzenie predefiniowanej liczby bloków danych
- Problem
- Rozwiązanie
- Omówienie
- 12.9. Tworzenie histogramów poziomych
- Problem
- Rozwiązanie
- DB2
- Oracle, PostgreSQL i MySQL
- SQL Server
- Omówienie
- 12.10. Tworzenie histogramów pionowych
- Problem
- Rozwiązanie
- Omówienie
- 12.11. Zwracanie zbiorów wynikowych bez kolumn wykorzystywanych w procesie grupowania
- Problem
- Rozwiązanie
- Omówienie
- 12.12. Wyznaczanie prostych sum częściowych
- Problem
- Rozwiązanie
- DB2 i Oracle
- SQL Server i MySQL
- PostgreSQL
- Omówienie
- DB2 i Oracle
- SQL Server i MySQL
- PostgreSQL
- 12.13. Wyznaczanie sum częściowych dla wszystkich możliwych kombinacji wyrażeń
- Problem
- Rozwiązanie
- DB2
- Oracle
- SQL Server
- PostgreSQL
- MySQL
- Omówienie
- Oracle, DB2 i SQL Server
- MySQL
- 12.14. Identyfikowanie wierszy niebędących sumami częściowymi
- Problem
- Rozwiązanie
- Omówienie
- 12.15. Konwertowanie wierszy na wersję bitową za pomocą wyrażeń CASE
- Problem
- Rozwiązanie
- Omówienie
- 12.16. Tworzenie tzw. macierzy rzadkich
- Problem
- Rozwiązanie
- Omówienie
- 12.17. Grupowanie wierszy według określonych jednostek czasu
- Problem
- Rozwiązanie
- Omówienie
- 12.18. Jednoczesne agregowanie danych według różnych grup i bloków
- Problem
- Rozwiązanie
- Omówienie
- 12.19. Agregowanie zmiennych (ruchomych) przedziałów wartości
- Problem
- Rozwiązanie
- DB2 i Oracle
- MySQL
- PostgreSQL i SQL Server
- Omówienie
- DB2, MySQL i Oracle
- PostgreSQL i SQL Server
- 12.20. Obracanie zbioru wynikowego zawierającego sumy częściowe
- Problem
- Rozwiązanie
- DB2 i Oracle
- SQL Server
- PostgreSQL
- MySQL
- Omówienie
- 12.21. Podsumowanie
- 12.1. Konwertowanie zbioru wynikowego do postaci pojedynczego wiersza
- Rozdział 13. Zapytania hierarchiczne
- 13.1. Wyrażanie relacji rodzic potomek
- Problem
- Rozwiązanie
- DB2, Oracle i PostgreSQL
- MySQL
- SQL Server
- Omówienie
- 13.2. Wyrażanie relacji potomek rodzic dziadek
- Problem
- Rozwiązanie
- DB2, PostgreSQL i SQL Server
- MySQL
- Oracle
- Omówienie
- Oracle
- 13.3. Tworzenie hierarchicznego widoku tabeli
- Problem
- Rozwiązanie
- DB2, PostgreSQL i SQL Server
- MySQL
- Oracle
- Omówienie
- DB2, MySQL, PostgreSQL i SQL Server
- Oracle
- 13.4. Odnajdywanie wszystkich wierszy potomnych dla danego wiersza rodzica
- Problem
- Rozwiązanie
- DB2, PostgreSQL i SQL Server
- Oracle
- Omówienie
- DB2, MySQL, PostgreSQL i SQL Server
- Oracle
- 13.5. Określanie wierszy występujących w rolach liści, gałęzi i korzeni
- Problem
- Rozwiązanie
- DB2, PostgreSQL, MySQL i SQL Server
- Oracle
- Omówienie
- DB2, PostgreSQL, MySQL i SQL Server
- Oracle
- 13.6. Podsumowanie
- 13.1. Wyrażanie relacji rodzic potomek
- Rozdział 14. Rozmaitości
- 14.1. Tworzenie raportów krzyżowych za pomocą operatora PIVOT systemu SQL Server
- Problem
- Rozwiązanie
- Omówienie
- 14.2. Odtwarzanie układu raportów krzyżowych za pomocą operatora UNPIVOT systemu SQL Server
- Problem
- Rozwiązanie
- 14.3. Transponowanie zbiorów wynikowych za pomocą klauzuli MODEL systemu Oracle
- Problem
- Rozwiązanie
- Omówienie
- 14.4. Wyodrębnianie z łańcucha elementów o nieustalonym położeniu
- Problem
- Rozwiązanie
- Omówienie
- 14.5. Znajdowanie liczby dni w roku (rozwiązanie alternatywne tylko dla systemu Oracle)
- Problem
- Rozwiązanie
- Omówienie
- 14.6. Przeszukiwanie danych wejściowych pod kątem zawierania łańcuchów alfanumerycznych
- Problem
- Rozwiązanie
- Omówienie
- 14.7. Konwertowanie liczb całkowitych na system dwójkowy w systemie Oracle
- Problem
- Rozwiązanie
- Omówienie
- 14.8. Obracanie zbioru wynikowego z wartościami rankingowymi
- Problem
- Rozwiązanie
- Omówienie
- 14.9. Wstawianie nagłówków kolumn w dwukrotnie obróconych zbiorach wynikowych
- Problem
- Rozwiązanie
- Omówienie
- 14.10. Konwertowanie podzapytań skalarnych na podzapytania złożone w systemie Oracle
- Problem
- Rozwiązanie
- Omówienie
- 14.11. Przenoszenie uszeregowanych danych do osobnych wierszy
- Problem
- Rozwiązanie
- Omówienie
- 14.12. Wyznaczanie procentowych stosunków poszczególnych wartości względem sumy wszystkich wartości
- Problem
- Rozwiązanie
- Omówienie
- 14.13. Testowanie występowania wartości w grupie
- Problem
- Rozwiązanie
- Omówienie
- 14.14. Podsumowanie
- 14.1. Tworzenie raportów krzyżowych za pomocą operatora PIVOT systemu SQL Server
- Dodatek A Przypomnienie funkcji okna
- Grupowanie
- Definicja grupy w języku SQL
- Grupy nie mogą być puste
- Grupy i różne wartości
- Funkcja COUNT nigdy nie zwraca zera
- Paradoksy
- Relacje łączące klauzule SELECT i GROUP BY
- Definicja grupy w języku SQL
- Tworzenie okien
- Prosty przykład
- Kolejność przetwarzania składników zapytań
- Partycje
- Skutki występowania wartości NULL
- Kiedy kolejność ma znaczenie
- Klauzula ramkowania
- Ostatnie słowo o ramkowaniu
- Czytelność + Wydajność = Moc
- Generowanie zbiorów bazowych
- Grupowanie
- Dodatek B Wyrażenia tablicowe (CTE)
- Podzapytania
- Wyrażenia tablicowe
- Podsumowanie
- O autorach
- Kolofon
Opinie
Na razie nie ma opinii o produkcie.