Zapytania w SQL
Przyjazny przewodnik
Od
ponad 30 lat język SQL jest głównym narzędziem do pracy na
bazach danych i nic nie wskazuje na to, aby jakakolwiek inna
technologia mogła zyskać porównywalne znaczenie. Sam SQL
wciąż jest unowocześniany i rozwijany. Jego ogromne możliwości w
zakresie przetwarzania danych znajdują zastosowanie niemal wszędzie,
gdzie trzeba zbudować nową lub wykorzystać istniejącą bazę danych.
Oznacza to, że nie tylko programista czy architekt, ale także
zaawansowany użytkownik systemów informatycznych powinien
poznać ten język. Bez tego nie da się naprawdę zrozumieć działania
istniejących aplikacji ani tworzyć własnych!
Oto
przystępny przewodnik, dzięki któremu nauczysz się krok po
kroku pisać zapytania SQL.
Poznasz też narzędzia, które umożliwiają zrozumienie,
edytowanie i tworzenie zapytań SQL. Nową wiedzę utrwalisz poprzez
analizę setek szczegółowo wyjaśnionych
przykładów. Niepostrzeżenie zaczniesz rozwiązywać tak trudne
problemy jak złożone wyrażenia warunkowe czy operacje logiczne i
nauczysz się nieszablonowego podejścia do zadań wymagających użycia
niepowiązanych tabel. Dowiesz się, jak wykonywać skomplikowane operacje
na grupach danych, co umożliwi Ci tworzenie wyrafinowanych
raportów, oraz jak zwiększać elastyczność
mechanizmów agregowania. Zawarty tu materiał jest w pełni
niezależny od implementacji SQL, co pozwoli Ci na mistrzowskie
operowanie zapytaniami w wielu różnych systemach!
Dzięki tej książce:
- zrozumiesz, czym są
relacyjne bazy danych i jak powinny być zbudowane
- dowiesz się, jak poprawnie
używać instrukcji SELECT
- nauczysz się wybierać dane
z wielu tabel i modyfikować zbiory danych
- będziesz płynnie
posługiwać się rozszerzeniami klauzuli GROUP BY
- nauczysz się uzyskiwać
odpowiedzi na naprawdę skomplikowane pytania
Opinie
o książce Zapytania w SQL. Przyjazny przewodnik
Słowo wstępne
Przedmowa
Podziękowania
O autorze
Wstęp
Czy ta książka jest dla Ciebie?
O tej książce
Czego nie należy oczekiwać po tej książce
Jak korzystać z tej książki
Interpretowanie diagramów zamieszczonych w tej książce
Przykładowe bazy danych użyte w tej książce
Podążaj drogą wybrukowaną żółtą kostką
Część I
Relacyjne bazy danych i SQL
1
Co
to znaczy relacyjna?
Rodzaje baz danych
Krótka historia modelu relacyjnego
Na początku był...
Systemy relacyjnych baz danych
Anatomia relacyjnej bazy danych
Tabele
Kolumny
Wiersze
Klucze
Widoki
Zależności
Jeden do jednego
Jeden do wielu
Wiele do wielu
Co to oznacza dla Ciebie?
Co dalej?
Podsumowanie
2
Prawidłowa struktura bazy danych
Skąd wziął się tutaj ten rozdział?
Dlaczego warto się troszczyć o prawidłowe struktury?
Optymalizacja kolumn
Odpowiednie dać rzeczy słowo (część pierwsza)
Kosmetyka
Eliminowanie kolumn wieloczęściowych
Eliminowanie pól wielowartościowych
Optymalizacja tabel
Odpowiednie dać rzeczy słowo (część druga)
Zapewnianie prawidłowej struktury
Usuwanie zbędnych, powtarzających się kolumn
Identyfikacja to klucz
Definiowanie poprawnych zależności
Definiowanie reguły usuwania
Definiowanie rodzaju uczestnictwa
Określanie stopnia uczestnictwa
I to już wszystko?
Podsumowanie
3
Krótka
historia SQL
Początki SQL
Wczesne implementacje niezależnych producentów
...i wtedy narodził się standard
Ewolucja norm ANSI/ISO
Inne standardy SQL
Implementacje komercyjne
Co przyniesie przyszłość?
Dlaczego warto się uczyć SQL?
Która wersja SQL została opisana w tej książce?
Podsumowanie
Część II
Podstawy SQL
4
Tworzenie
prostego zapytania
SELECT wprowadzenie
Instrukcja SELECT
Krótka dygresja: dane a informacje
Przekładanie żądania na SQL
Rozszerzanie zakresu działań
Zastosowanie skrótu umożliwiającego odwołanie do wszystkich
kolumn
Eliminowanie powtarzających się wierszy
Sortowanie informacji
Zacznijmy od podstaw: kolejność sortowania
Przywołajmy wyniki do porządku
Zapisywanie pracy
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja rozrywkowa
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
5
Nie
tylko zwykłe kolumny
Czym jest wyrażenie?
Jakich typów danych można użyć w wyrażeniu?
Zmiana typu danych funkcja CAST
Podawanie konkretnych wartości
Literały w postaci łańcucha znaków
Literały numeryczne
Literały w postaci wartości daty i czasu
Rodzaje wyrażeń
Konkatenacja
Wyrażenia matematyczne
Działania arytmetyczne na datach i godzinach
Wyrażenia z użyciem dat
Wyrażenia z użyciem czasu
Zastosowanie wyrażeń w klauzuli SELECT
Zastosowanie wyrażeń konkatenacji
Nazywanie wyrażenia
Zastosowanie wyrażeń matematycznych
Zastosowanie wyrażeń z użyciem dat
Krótka dygresja: wyrażenia wartości
Żadna wartość, czyli Null
Wprowadzenie wartości Null
Problem z Null
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
6
Filtrowanie
danych
Uściślanie wyników za pomocą klauzuli WHERE
Klauzula WHERE
Zastosowanie klauzuli WHERE
Definiowanie warunków wyszukiwania
Porównanie
Uwaga dotycząca porównywania ciągów
znaków
Równość i nierówność
Mniejszy niż i większy niż
Zakres
Przynależność
Dopasowywanie do wzorca
Null
Wykluczanie wierszy przy użyciu operatora NOT
Stosowanie wielu warunków
Operatory AND i OR
Zastosowanie operatora AND
Zastosowanie operatora OR
Łączne zastosowanie operatorów AND i OR
Wykluczanie wierszy drugie podejście
Kolejność operatorów
Priorytety kryteriów
Im oszczędniej, tym lepiej
Sprawdzanie nakładających się zakresów
Jeszcze o Null: mała przestroga
Różne metody konstruowania wyrażeń warunkowych
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja reklamowa
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Część III Praca z wieloma tabelami
7
Myślenie zbiorami
Cóż to takiego ten zbiór?
Działania na zbiorach
Część wspólna
Część wspólna w teorii zbiorów
Część wspólna zbiorów rezultatów
Problemy, jakie można rozwiązywać dzięki znalezieniu części
wspólnej
Różnica
Różnica w teorii zbiorów
Różnica między zbiorami rezultatów
Problemy, jakie można rozwiązywać poprzez znajdowanie różnicy
Suma
Suma w teorii zbiorów
Suma zbiorów rezultatów
Problemy, jakie można rozwiązywać poprzez znajdowanie części
wspólnej
SQL i działania na zbiorach
Klasyczne działania na zbiorach a ich warianty w SQL
Znajdowanie wartości wspólnych: INTERSECT
Znajdowanie brakujących wartości: EXCEPT (różnica)
Łączenie zbiorów: UNION
Podsumowanie
8
Złączenie INNER JOIN
Co to jest JOIN?
Złączenie INNER JOIN
Co można legalnie poddawać operacji JOIN?
Odwołania do kolumn
Składnia
Zastosowanie tabel
Przypisywanie nazw korelacji (aliasów) do tabel
Osadzanie instrukcji SELECT
Zagnieżdżanie klauzul JOIN w innych klauzulach JOIN
Sprawdź zależności!
Zastosowania INNER JOIN
Znajdowanie powiązanych wierszy
Znajdowanie pasujących wartości
Przykładowe instrukcje
Dwie tabele
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Więcej niż dwie tabele
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Liga kręglarska
Baza danych Przepisy
Szukanie pasujących wartości
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
9
Złączenie
OUTER JOIN
Co to jest OUTER JOIN?
Złączenie LEFT/RIGHT OUTER JOIN
Składnia
Zastosowanie tabel
Osadzanie instrukcji SELECT
Zagnieżdżanie klauzul JOIN w innych klauzulach JOIN
Złączenie FULL OUTER JOIN
Składnia
FULL OUTER JOIN na wartościach niebędących kluczami
Złączenie UNION JOIN
Zastosowania OUTER JOIN
Wyszukiwanie brakujących wartości
Wyszukiwanie częściowo pasujących informacji
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
10
Operacja
UNION
Co to jest UNION?
Tworzenie zapytań z użyciem UNION
Zastosowanie prostych instrukcji SELECT
Łączenie złożonych instrukcji SELECT
Zastosowanie operacji UNION więcej niż raz
Sortowanie w operacji UNION
Zastosowania UNION
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
11
Podzapytania
Co to jest podzapytanie?
Podzapytania o wiersze
Podzapytania o tabele
Podzapytania skalarne
Podzapytania służące do generowania kolumn
Składnia
Wstęp do funkcji agregujących: COUNT i MAX
Podzapytania jako filtry
Składnia
Specjalne słowa kluczowe dla predykatów w podzapytaniach
Określanie przynależności: IN
Predykaty z użyciem kwantyfikatorów: ALL, SOME i ANY
Sprawdzanie istnienia: EXISTS
Zastosowania podzapytań
Używanie podzapytań w zapytaniach generujących kolumny
Zastosowanie podzapytań w roli filtrów
Przykładowe instrukcje
Podzapytania w wyrażeniach
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podzapytania w filtrach
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Część IV
Podsumowywanie i
grupowanie danych
12
Proste
zestawienia
Funkcje agregujące
Zliczanie wierszy i wartości z użyciem funkcji COUNT
Zliczanie wszystkich wierszy
Zliczanie wartości w kolumnie lub w wyrażeniu
Wyliczanie łącznej wartości za pomocą funkcji SUM
Obliczanie wartości średniej za pomocą funkcji AVG
Wyszukiwanie największej wartości za pomocą funkcji MAX
Wyszukiwanie najmniejszej wartości za pomocą funkcji MIN
Zastosowanie więcej niż jednej funkcji
Zastosowanie funkcji agregujących w filtrach
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
13
Grupowanie
danych
Po co grupować dane?
Klauzula GROUP BY
Składnia
Mieszanie kolumn i wyrażeń
Zastosowanie klauzuli GROUP BY w podzapytaniu w klauzuli WHERE
Symulowanie instrukcji SELECT DISTINCT
Z pewnymi zastrzeżeniami
Zastrzeżenia dotyczące kolumn
Grupowanie według wyrażeń
Zastosowania GROUP BY
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
14
Filtrowanie
zgrupowanych danych
Selekcja niejedno ma imię
Miejsce filtrowania nie jest bez znaczenia
Filtrowanie w klauzuli WHERE czy w HAVING?
Unikanie pułapki z HAVING COUNT
Zastosowania HAVING
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Część V
Modyfikowanie
zbiorów danych
15
Aktualizowanie zbiorów danych
Co to jest UPDATE?
Instrukcja UPDATE
Zastosowanie prostego wyrażenia UPDATE
Aktualizowanie wybranych wierszy
Bezpieczeństwo przede wszystkim: upewnij się, że aktualizujesz właściwe
wiersze
Krótka dygresja: transakcje
Aktualizowanie wielu kolumn
Użycie podzapytania do filtrowania wierszy
Niektóre systemy baz danych umożliwiają stosowanie złączeń
JOIN w klauzuli UPDATE
Zastosowanie wyrażenia UPDATE w podzapytaniu
Zastosowania UPDATE
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja reklamowa
Baza danych Grafik uczelni
Baza danych Liga kręglarska
16
Wstawianie
zbiorów danych
Co to jest INSERT?
Instrukcja INSERT
Wstawianie wartości
Generowanie kolejnej wartości klucza głównego
Wstawianie danych przy użyciu instrukcji SELECT
Zastosowania INSERT
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
17
Usuwanie zbiorów danych
Co to jest DELETE?
Instrukcja DELETE
Usuwanie wszystkich wierszy
Usuwanie wybranych wierszy
Zastosowanie prostej klauzuli WHERE
Bezpieczeństwo przede wszystkim: upewnij się, że usuwasz właściwe
wiersze
Zastosowanie podzapytania
Zastosowania DELETE
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Część VI
Wstęp do rozwiązywania
trudnych problemów
18
Problemy
z NIE i ORAZ
Krótkie przypomnienie zbiorów
Zbiory z wieloma kryteriami ORAZ
Zbiory z wieloma kryteriami NIE
Zbiory spełniające jednocześnie kryteria na tak i na nie
Uwzględnianie kryterium na nie
Zastosowanie złączenia OUTER JOIN
Zastosowanie predykatu NOT IN
Zastosowanie predykatu NOT EXISTS
Zastosowanie klauzul GROUP BY / HAVING
Uwzględnianie wielu kryteriów na tak w jednej tabeli
Zastosowanie INNER JOIN
Zastosowanie predykatu IN
Zastosowanie predykatu EXISTS
Zastosowanie klauzul GROUP BY / HAVING
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Baza danych Przepisy
19
Operacje
warunkowe
Wyrażenia warunkowe (CASE)
Do czego może się przydać CASE?
Składnia
Rozwiązywanie problemów za pomocą CASE
Rozwiązywanie zadań przy użyciu prostej instrukcji CASE
Rozwiązywanie zadań przy użyciu instrukcji CASE z wyszukiwaniem
Zastosowanie instrukcji CASE w klauzuli WHERE
Przykładowe instrukcje
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
20
Zastosowanie niepowiązanych danych i tabel sterujących
Co to są niepowiązane dane?
Kiedy warto użyć CROSS JOIN?
Rozwiązywanie problemów przy użyciu niepowiązanych danych
Rozwiązywanie problemów z użyciem tabel sterujących
Konfigurowanie tabeli sterującej
Zastosowanie tabeli sterującej
Przykładowe instrukcje
Przykłady z użyciem niepowiązanych tabel
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Przykłady z użyciem tabel sterujących
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Zamówienia
Baza danych Agencja artystyczna
Baza danych Grafik uczelni
Baza danych Liga kręglarska
21
Złożone
działania na grupach
Grupowanie w podgrupach
Rozszerzanie klauzuli GROUP BY
Składnia
Obliczanie sum hierarchicznie za pomocą operacji ROLLUP
Obliczanie sum kombinacji za pomocą operacji CUBE
Tworzenie zestawień sum za pomocą operacji GROUPING SETS
Różne techniki grupowania
Przykładowe instrukcje
Przykłady z użyciem ROLLUP
Baza danych Zamówienia
Baza danych Grafik uczelni
Przykłady z użyciem CUBE
Baza danych Liga kręglarska
Baza danych Zamówienia
Przykłady z użyciem GROUPING SETS
Baza danych Liga kręglarska
Baza danych Agencja artystyczna
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Liga kręglarska
Baza danych Agencja artystyczna
Baza danych Przepisy
Baza danych Zamówienia
Baza danych Grafik uczelni
22
Dzielenie danych na okna
Co można zrobić z oknem na dane?
Składnia
Obliczanie numeru wiersza
Określanie pozycji w szeregu
Dzielenie danych na kwintyle
Zastosowanie okien z funkcjami agregującymi
Przykładowe instrukcje
Przykłady z użyciem ROW_NUMBER
Baza danych Agencja artystyczna
Baza danych Przepisy
Przykłady z użyciem RANK, DENSE_RANK i PERCENT_RANK
Baza danych Zamówienia
Baza danych Grafik uczelni
Przykłady z użyciem NTILE
Baza danych Liga kręglarska
Baza danych Agencja artystyczna
Przykłady z użyciem funkcji agregujących
Baza danych Liga kręglarska
Baza danych Zamówienia
Baza danych Grafik uczelni
Podsumowanie
Zagadnienia do samodzielnego rozwiązania
Baza danych Liga kręglarska
Baza danych Agencja artystyczna
Baza danych Przepisy
Baza danych Zamówienia
Baza danych Grafik uczelni
Na zakończenie
Część VII
Dodatki
A
Diagramy
zgodne ze standardem SQL
B
Schematy
przykładowych baz danych
Baza danych Zamówienia
Baza danych Zamówienia zmiana
Baza danych Agencja artystyczna
Baza danych Agencja artystyczna zmiana
Baza danych Grafik uczelni
Baza danych Grafik uczelni zmiana
Baza danych Liga kręglarska
Baza danych Liga kręglarska zmiana
Baza danych Przepisy
Tabele sterujące
C
Typy
daty i czasu, operacje i funkcje
IBM DB2
Obsługiwane typy danych
Obsługiwane działania arytmetyczne
Funkcje
Microsoft Access
Obsługiwane typy danych
Obsługiwane działania arytmetyczne
Microsoft SQL Server
Obsługiwane typy danych
Obsługiwane działania arytmetyczne
Funkcje
MySQL
Obsługiwane typy danych
Obsługiwane działania arytmetyczne
Funkcje
Oracle
Obsługiwane typy danych
Obsługiwane działania arytmetyczne
Funkcje
PostgreSQL
Obsługiwane typy danych
Obsługiwane działania arytmetyczne
Funkcje
D
Polecane
lektury
Książki poświęcone bazom danych
Książki poświęcone SQL
E
Słowniczek
824
strony, Format: 17.0x24.5cm, oprawa twarda