Wprowadzenie do SQL
Jak
generować, pobierać i obsługiwać dane
SQL
jest idealnym narzędziem do pracy z danymi. Mimo upływu lat jego
znaczenie nie maleje, a sam język wciąż jest unowocześniany i
rozwijany. Dziś szczególnie przydają się jego ogromne
możliwości w zakresie przetwarzania danych. Co ciekawe, SQL pozwala
również na stosowanie technik służących do zarządzania
ogromnymi zbiorami informacji czy korzystanie z nierelacyjnych baz
danych. Osoba, która obok Pythona czy R radzi sobie z SQL i
potrafi z morza danych wyodrębnić użyteczne informacje, jest wyjątkowo
cennym pracownikiem.
To przystępny podręcznik,
dzięki któremu programiści szybko opanują podstawy SQL -
nauczą się tworzenia aplikacji bazodanowych, przeprowadzania zadań
administracyjnych oraz generowania raportów.
Ujęto
tu takie zagadnienia jak zapytania SELECT, filtrowanie danych oraz ich
konwersja, grupowanie i agregacja. Znalazło się tutaj także
wprowadzenie do transakcji, przedstawiono też zasady tworzenia
widoków, złączeń i ograniczeń. To wydanie zostało
uzupełnione omówieniem funkcji analitycznych, strategii
pracy z ogromnymi bazami danych oraz zagadnień związanych z big data. W
każdym rozdziale zaprezentowano kluczowe koncepcje SQL,
które dodatkowo wyjaśniono na podstawie wielu dokładnie
omówionych przykładów. Ćwiczenia zamieszczone na
końcu poszczególnych rozdziałów pomogą w
sprawdzeniu i utrwaleniu zdobytej wiedzy.
Dzięki książce:
- opanujesz podstawy języka
SQL i ważniejszych funkcji zaawansowanych
- zaczniesz pisać zapytania
SQL
- nauczysz się tworzyć
obiekty bazy danych
- poznasz sposoby
współdziałania zbiorów danych i zapytań
- dowiesz się, jak
konwertować i przetwarzać dane za pomocą funkcji wbudowanych SQL
Wprowadzenie
Dlaczego warto poznać SQL?
Dla kogo jest przeznaczona ta książka?
Struktura książki
Konwencje zastosowane w książce
Użycie przykładowych kodów
Podziękowania
Rozdział 1.
Krótkie
wprowadzenie
Wprowadzenie do baz danych
Nierelacyjne systemy baz danych
Model relacyjny
Wybrana terminologia
Co to jest SQL?
Klasy zapytań SQL
SQL język nieproceduralny
Przykłady zapytań SQL
Co to jest MySQL?
Nie tylko relacyjne bazy danych
Co się znajduje w magazynie danych?
Rozdział 2.
Tworzenie
bazy danych i wstawianie informacji
Tworzenie bazy danych MySQL
Stosowanie narzędzia powłoki mysql
Typy danych MySQL
Dane znakowe
Kodowanie znaków
Dane tekstowe
Dane liczbowe
Dane dotyczące daty i godziny
Tworzenie tabeli
Etap 1. projektowanie
Etap 2. dopracowywanie
Etap 3. tworzenie zapytania schematu SQL
Wstawianie danych do tabel i modyfikowanie tabel
Wstawianie danych
Generowanie liczbowych danych klucza
Zapytanie insert
Uaktualnianie danych
Usuwanie danych
Gdy poprawne składniowo zapytanie nie zostanie prawidłowo wykonane
Nieunikatowy klucz podstawowy
Brak klucza zewnętrznego
Złamanie reguł dotyczących wartości kolumny
Nieprawidłowa konwersja daty
Baza danych Sakila
Rozdział 3.
Krótkie
wprowadzenie do zapytań pobierających dane
Zapytanie pobierające dane
Klauzule zapytania
Klauzula SELECT
Aliasy kolumn
Usuwanie duplikatów
Klauzula FROM
Tabele
Tabele potomne (wygenerowane przez podzapytanie)
Tabele tymczasowe
Widoki
Łączenie tabel
Definiowanie aliasu tabeli
Klauzula WHERE
Klauzule GROUP BY i HAVING
Klauzula ORDER BY
Rosnąca i malejąca kolejność sortowania
Sortowanie według liczbowych miejsc zarezerwowanych
Sprawdź się!
Ćwiczenie 3.1
Ćwiczenie 3.2
Ćwiczenie 3.3
Ćwiczenie 3.4
Rozdział 4.
Filtrowanie
Sprawdzanie warunku
Stosowanie nawiasu
Stosowanie operatora not
Definiowanie warunku
Typy warunków
Warunki równości
Warunki nierówności
Modyfikowanie danych za pomocą warunków równości
Warunki zakresu
Operator BETWEEN
Zakres ciągu tekstowego
Warunki elementów składowych
Stosowanie podzapytań
Stosowanie operatora NOT IN
Warunki dopasowania
Stosowanie znaków wieloznacznych
Stosowanie wyrażeń regularnych
NULL czteroliterowe słowo
Sprawdź się!
Ćwiczenie 4.1
Ćwiczenie 4.2
Ćwiczenie 4.3
Ćwiczenie 4.4
Rozdział 5.
Wykonywanie
zapytań do wielu tabel
Co to jest złączenie?
Iloczyn kartezjański
Złączenie wewnętrzne
Składnia ANSI złączenia
Złączanie co najmniej trzech tabel
Stosowanie podzapytań jako tabel
Dwukrotne użycie tej samej tabeli
Samozłączenie
Sprawdź się!
Ćwiczenie 5.1
Ćwiczenie 5.2
Ćwiczenie 5.3
Rozdział 6.
Praca
ze zbiorami danych
Wprowadzenie do teorii zbiorów
Teoria zbiorów danych w praktyce
Operatory zbioru
Operator UNION
Operator INTERSECT
Operator EXCEPT
Reguły dotyczące działania operatorów zbiorów
Sortowanie wyników zapytań złożonych
Pierwszeństwo operatorów zbiorów
Sprawdź się!
Ćwiczenie 6.1
Ćwiczenie 6.2
Ćwiczenie 6.3
Rozdział 7.
Generowanie
danych i ich konwersja
Praca z ciągami tekstowymi
Generowanie ciągów tekstowych
Wstawianie danych zawierających apostrof
Dołączanie znaków specjalnych
Operacje na ciągach tekstowych
Funkcje ciągu tekstowego zwracające liczby
Funkcje ciągów tekstowych zwracające ciągi tekstowe
Praca z danymi liczbowymi
Wykonywanie funkcji arytmetycznych
Określanie dokładności liczb
Obsługa liczb ze znakiem
Praca z danymi dotyczącymi daty i godziny
Strefy czasowe
Generowanie danych dotyczących daty i godziny
Ciąg tekstowy reprezentujący dane w postaci daty i godziny
Konwersja ciągu tekstowego na datę
Funkcje przeznaczone do generowania daty
Przeprowadzanie operacji na danych dotyczących daty i godziny
Funkcje zwracające datę
Funkcje daty i godziny zwracające ciągi tekstowe
Funkcje daty i godziny zwracające liczby
Funkcje konwersji
Sprawdź się!
Ćwiczenie 7.1
Ćwiczenie 7.2
Ćwiczenie 7.3
Rozdział 8.
Grupowanie
i agregacja
Koncepcje grupowania
Funkcje agregacji
Grupy jawne kontra niejawne
Zliczanie odmiennych wartości
Stosowanie wyrażeń
Obsługa wartości null
Generowanie grup
Grupowanie na podstawie jednej kolumny
Grupowanie na podstawie wielu kolumn
Grupowanie za pomocą wyrażeń
Generowanie zestawień
Warunek filtrowania grupy
Sprawdź się
Ćwiczenie 8.1
Ćwiczenie 8.2
Ćwiczenie 8.3
Rozdział 9.
Podzapytania
Co to jest podzapytanie?
Typy podzapytań
Podzapytania niepowiązane
Podzapytania z wieloma rekordami i jedną kolumną
Operatory in i not in
Operator all
Operator any
Podzapytania obejmujące wiele kolumn
Podzapytania powiązane
Operator exists
Przeprowadzanie operacji na danych przy użyciu podzapytań powiązanych
Kiedy używać podzapytań?
Podzapytanie jako źródło danych
Tworzenie danych
Podzapytania zorientowane na zadanie
Najczęściej stosowane wyrażenia w tabelach
Podzapytanie jako generator wyrażeń
Podsumowanie dotyczące podzapytań
Sprawdź się!
Ćwiczenie 9.1
Ćwiczenie 9.2
Ćwiczenie 9.3
Rozdział 10.
Złączenia raz jeszcze
Złączenia zewnętrzne
Złączenia zewnętrzne lewe i prawe
Trzykierunkowe złączenie zewnętrzne
Złączenia krzyżowe
Złączenia naturalne
Sprawdź się
Ćwiczenie 10.1
Ćwiczenie 10.2
Ćwiczenie 10.3 (dodatkowe)
Rozdział 11.
Logika warunkowa
Co to jest logika warunkowa?
Wyrażenie CASE
Wyszukiwane wyrażenie CASE
Proste wyrażenia CASE
Przykłady wyrażeń CASE
Przekształcanie zbioru wynikowego
Sprawdzanie pod kątem istnienia relacji
Błędy dzielenia przez zero
Uaktualnianie warunkowe
Obsługa wartości null
Sprawdź się
Ćwiczenie 11.1
Ćwiczenie 11.2
Rozdział 12.
Transakcje
Wielodostępne bazy danych
Blokady
Zasięg blokady
Co to jest transakcja?
Rozpoczynanie transakcji
Kończenie transakcji
Punkt zapisu transakcji
Sprawdź się
Ćwiczenie 12.1
Rozdział 13.
Indeksy i ograniczenia
Indeks
Tworzenie indeksu
Indeks unikatowy
Indeks wielokolumnowy
Typy indeksów
Indeks B-drzewa
Indeks mapy bitowej
Indeks tekstowy
Sposoby użycia indeksów
Wady indeksu
Ograniczenia
Definiowanie ograniczenia
Sprawdź się
Ćwiczenie 13.1
Ćwiczenie 13.2
Rozdział 14.
Widoki
Co to jest widok?
Do czego można wykorzystać widok?
Bezpieczeństwo danych
Agregacja danych
Ukrywanie złożoności
Złączanie danych partycjonowanych
Widok możliwy do uaktualniania
Uaktualnianie prostych widoków
Uaktualnianie widoku złożonego
Sprawdź się
Ćwiczenie 14.1
Ćwiczenie 14.2
Rozdział 15.
Metadane
Dane dotyczące danych
Baza danych information_schema
Praca z metadanymi
Skrypt generowania schematu
Weryfikacja wdrożenia
Dynamiczne generowanie kodu SQL
Sprawdź się
Ćwiczenie 15.1
Ćwiczenie 15.2
Rozdział 16.
Funkcje analityczne
Koncepcje funkcji analitycznych
Okno danych
Sortowanie z uwzględnieniem ustawień regionalnych
Ranking
Funkcje rankingu
Generowanie wielu rankingów
Funkcje raportujące
Ramka okna
Funkcje lag() i lead()
Konkatenacja wartości kolumny
Sprawdź się
Ćwiczenie 16.1
Ćwiczenie 16.2
Ćwiczenie 16.3
Rozdział 17.
Praca z ogromnymi bazami
danych
Partycjonowanie
Koncepcje związane z partycjonowaniem
Partycjonowanie tabeli
Partycjonowanie indeksu
Metody partycjonowania
Partycjonowanie zakresu
Partycjonowanie listy
Partycjonowanie hash
Partycjonowanie złożone
Zalety partycjonowania
Klastrowanie
Sharding
Big data
Hadoop
Bazy danych NoSQL i oparte na dokumentach
Przetwarzanie w chmurze
Podsumowanie
Rozdział 18.
SQL i big data
Wprowadzenie do narzędzia Apache Drill
Stosowanie narzędzia Apache Drill podczas wykonywania zapytań do
plików
Wykonywanie zapytań do MySQL za pomocą narzędzia Apache Drill
Wykonywanie zapytań do MongoDB za pomocą narzędzia Apache Drill
Apache Drill i wiele źródeł danych
Przyszłość języka SQL
Dodatek A
Diagram
związków encji przykładowej bazy danych
Dodatek B
Odpowiedzi
do zadań
Rozdział 3.
Ćwiczenie 3.1
Ćwiczenie 3.2
Ćwiczenie 3.3
Ćwiczenie 3.4
Rozdział 4.
Ćwiczenie 4.1
Ćwiczenie 4.2
Ćwiczenie 4.3
Ćwiczenie 4.4
Rozdział 5.
Ćwiczenie 5.1
Ćwiczenie 5.2
Ćwiczenie 5.3
Rozdział 6.
Ćwiczenie 6.1
Ćwiczenie 6.2
Ćwiczenie 6.3
Rozdział 7.
Ćwiczenie 7.1
Ćwiczenie 7.2
Ćwiczenie 7.3
Rozdział 8.
Ćwiczenie 8.1
Ćwiczenie 8.2
Ćwiczenie 8.3
Rozdział 9.
Ćwiczenie 9.1
Ćwiczenie 9.2
Ćwiczenie 9.3
Rozdział 10.
Ćwiczenie 10.1
Ćwiczenie 10.2
Ćwiczenie 10.3 (dodatkowe)
Rozdział 11.
Ćwiczenie 11.1
Ćwiczenie 11.2
Rozdział 12.
Ćwiczenie 12.1
Rozdział 13.
Ćwiczenie 13.1
Ćwiczenie 13.2
Rozdział 14.
Ćwiczenie 14.1
Ćwiczenie 14.2
Rozdział 15.
Ćwiczenie 15.1
Ćwiczenie 15.2
Rozdział 16.
Ćwiczenie 16.1
Ćwiczenie 16.2.
Ćwiczenie 16.3
O autorze
Kolofon
336
stron, Format: 16.5x23.5cm, oprawa miękka