Szczegóły ebooka

Zapytania w SQL. Przyjazny przewodnik

Zapytania w SQL. Przyjazny przewodnik

Michael J. Hernandez, John Viescas

Ebook

Nowatorskie podejście do nauki SQL!

SQL (ang. Structured Query Language) to język zapytań pozwalający na wyciągnięcie interesujących informacji z relacyjnej bazy danych. Został opracowany w latach 60. w firmie IBM, a w 1986 r. stał się oficjalnym standardem. Znając jego możliwości, błyskawicznie odpowiesz na wiele pytań dotyczących Twoich klientów lub innych informacji przechowywanych w Twojej bazie danych.

Jeśli chcesz biegle tworzyć zapytania SQL, to trafiłeś na doskonałą pozycję. Dzięki ciekawej formie (autorzy starają się przedstawić język analogicznie do potocznie używanego) nauka jest przyjemna i efektywna. W kolejnych rozdziałach znajdziesz informacje na temat relacyjnych baz danych, ich struktury oraz zasad, które pozwolą Ci przygotować optymalny układ tabel i relacji między nimi. Stworzysz pierwsze zapytania z wykorzystaniem instrukcji SELECT i dodasz warunki, używając klauzuli WHERE. Gdy już będziesz się swobodnie poruszać w obrębie jednej tabeli, przejdziesz do tworzenia złączeń (JOIN) pomiędzy różnymi tabelami. Na koniec nauczysz się korzystać z podzapytań, funkcji agregujących oraz grupowania. Ta książka pozwoli Ci sprawnie rozpocząć pracę z SQL, niezależnie od jego implementacji.

Dzięki tej książce:

  • Poznasz możliwości oraz historię SQL
  • Nauczysz się wybierać dane z jednej i wielu tabel, korzystając ze złączeń
  • Poznasz niuanse różniące różne implementacje SQL
  • Stworzysz optymalną bazę danych
  • Błyskawicznie wykorzystasz możliwości SQL w codziennej pracy

Jeśli pracujesz z systemami baz danych, takimi jak Access, MS SQL Server, Oracle, DB2, MySQL, Ingres czy dowolnym innym programem SQL, ta książka może zaoszczędzić Ci mnóstwa czasu i nerwów, i to zanim jeszcze napiszesz pierwsze zapytanie!

Słowo wstępne (15)

Przedmowa (17)

  • Podziękowania (18)

O autorach (19)

Wstęp (21)

  • Czy ta książka jest dla Ciebie? (21)
  • O tej książce (22)
  • Czego nie należy oczekiwać po tej książce (24)
  • Jak korzystać z tej książki (24)
  • Interpretowanie diagramów zamieszczonych w tej książce (25)
  • Przykładowe bazy danych użyte w tej książce (29)
    • "Podążaj drogą wybrukowaną żółtą kostką" (31)

CZĘŚĆ I. RELACYJNE BAZY DANYCH I SQL (33)

Rozdział 1. Co to znaczy "relacyjna"? (35)

  • Rodzaje baz danych (35)
  • Krótka historia modelu relacyjnego (36)
    • Na początku był... (36)
    • Systemy relacyjnych baz danych (37)
    • Anatomia relacyjnej bazy danych (39)
  • Co to oznacza dla Ciebie? (47)
    • Co dalej? (48)
  • Podsumowanie (49)

Rozdział 2. Prawidłowa struktura bazy danych (51)

  • Skąd wziął się tutaj ten rozdział? (52)
  • Dlaczego warto się troszczyć o prawidłowe struktury? (52)
  • Optymalizacja pól (53)
    • Odpowiednie dać rzeczy słowo (część pierwsza) (53)
    • Kosmetyka (55)
    • Eliminowanie pól wieloczęściowych (57)
    • Eliminowanie pól wielowartościowych (59)
  • Optymalizacja tabel (61)
    • Odpowiednie dać rzeczy słowo (część druga) (61)
    • Zapewnianie prawidłowej struktury (64)
    • Usuwanie zbędnych, powtarzających się pól (65)
    • Identyfikacja to klucz (69)
  • Definiowanie poprawnych zależności (73)
    • Definiowanie reguły usuwania (75)
    • Definiowanie rodzaju uczestnictwa (76)
    • Określanie stopnia uczestnictwa (78)
  • I to już wszystko? (80)
  • Podsumowanie (80)

Rozdział 3. Krótka historia SQL (83)

  • Początki SQL (84)
  • Wczesne implementacje niezależnych producentów (85)
  • "...i wtedy narodził się standard" (86)
  • Ewolucja norm ANSI/ISO (88)
    • Inne standardy SQL (90)
  • Implementacje komercyjne (93)
  • Co przyniesie przyszłość? (94)
  • Dlaczego warto się uczyć SQL? (94)
  • Która wersja SQL została opisana w tej książce? (94)
  • Podsumowanie (95)

CZĘŚĆ II. PODSTAWY SQL (97)

Rozdział 4. Tworzenie prostego zapytania (99)

  • SELECT 3 wprowadzenie (100)
  • Instrukcja SELECT (100)
  • Krótka dygresja: dane a informacje (103)
  • Przekładanie żądania na SQL (104)
    • Rozszerzanie zakresu działań (108)
    • Zastosowanie skrótu umożliwiającego odwołanie do wszystkich kolumn (110)
  • Eliminowanie powtarzających się wierszy (111)
  • Sortowanie informacji (113)
    • Zacznijmy od podstaw: kolejność sortowania (115)
    • Przywołajmy wyniki do porządku (115)
  • Zapisywanie pracy (118)
  • Przykładowe instrukcje (119)
  • Podsumowanie (126)
  • Zagadnienia do samodzielnego rozwiązania (127)

Rozdział 5. Nie tylko zwykłe kolumny (129)

  • Czym jest wyrażenie? (130)
  • Jakich typów danych można użyć w wyrażeniu? (131)
  • Zmiana typu danych - funkcja CAST (133)
  • Podawanie konkretnych wartości (136)
    • Literały w postaci łańcucha znaków (136)
    • Literały numeryczne (137)
    • Literały w postaci wartości daty i czasu (138)
  • Rodzaje wyrażeń (140)
    • Konkatenacja (141)
    • Wyrażenia matematyczne (143)
    • Działania arytmetyczne na datach i godzinach (147)
  • Zastosowanie wyrażeń w klauzuli SELECT (151)
    • Zastosowanie wyrażeń konkatenacji (151)
    • Nazywanie wyrażenia (152)
    • Zastosowanie wyrażeń matematycznych (154)
    • Zastosowanie wyrażeń z użyciem dat (155)
    • Krótka dygresja: wyrażenia wartości (156)
  • "Żadna" wartość, czyli Null (158)
    • Wprowadzenie wartości Null (159)
    • Problem z Null (160)
  • Przykładowe instrukcje (161)
  • Podsumowanie (168)
  • Zagadnienia do samodzielnego rozwiązania (169)

Rozdział 6. Filtrowanie danych (171)

  • Uściślanie wyników za pomocą klauzuli WHERE (172)
    • Klauzula WHERE (172)
    • Zastosowanie klauzuli WHERE (174)
  • Definiowanie warunków wyszukiwania (176)
    • Porównanie (176)
    • Zakres (183)
    • Przynależność (186)
    • Dopasowywanie do wzorca (188)
    • Null (192)
    • Wykluczanie wierszy przy użyciu operatora NOT (194)
  • Stosowanie wielu warunków (196)
    • Operatory AND i OR (197)
    • Wykluczanie wierszy 3 drugie podejście (202)
    • Kolejność operatorów (205)
    • Sprawdzanie nakładających się zakresów (209)
  • Jeszcze o Null: mała przestroga (211)
  • Różne metody konstruowania wyrażeń warunkowych (214)
  • Przykładowe instrukcje (215)
  • Podsumowanie (221)
  • Zagadnienia do samodzielnego rozwiązania (222)

CZĘŚĆ III. PRACA Z WIELOMA TABELAMI (225)

Rozdział 7. Myślenie zbiorami (227)

  • Cóż to takiego ten zbiór? (228)
  • Działania na zbiorach (229)
  • Część wspólna (230)
    • Część wspólna w teorii zbiorów (230)
    • Część wspólna zbiorów rezultatów (231)
    • Problemy, jakie można rozwiązywać dzięki znalezieniu części wspólnej (234)
  • Różnica (235)
    • Różnica w teorii zbiorów (236)
    • Różnica między zbiorami rezultatów (237)
    • Problemy, jakie można rozwiązywać poprzez znajdowanie różnicy (240)
  • Suma (241)
    • Suma w teorii zbiorów (242)
    • Suma zbiorów rezultatów (243)
    • Problemy, jakie można rozwiązywać poprzez znajdowanie części wspólnej (245)
  • SQL i działania na zbiorach (246)
    • Klasyczne działania na zbiorach a ich warianty w SQL (246)
    • Znajdowanie wartości wspólnych: INTERSECT (246)
    • Znajdowanie brakujących wartości: EXCEPT (różnica) (249)
    • Łączenie zbiorów: UNION (252)
  • Podsumowanie (254)

Rozdział 8. Złączenie INNER JOIN (257)

  • Co to jest JOIN? (257)
  • Złączenie INNER JOIN (258)
    • Co można "legalnie" poddawać operacji JOIN? (258)
    • Odwołania do kolumn (259)
    • Składnia (260)
    • Sprawdź zależności! (274)
  • Zastosowania INNER JOIN (275)
    • Znajdowanie powiązanych wierszy (275)
    • Znajdowanie pasujących wartości (275)
  • Przykładowe instrukcje (276)
    • Dwie tabele (277)
    • Więcej niż dwie tabele (281)
    • Szukanie pasujących wartości (286)
  • Podsumowanie (294)
  • Zagadnienia do samodzielnego rozwiązania (294)

Rozdział 9. Złączenie OUTER JOIN (299)

  • Co to jest OUTER JOIN? (299)
  • Złączenie LEFT/RIGHT OUTER JOIN (301)
    • Składnia (301)
  • Złączenie FULL OUTER JOIN (318)
    • Składnia (319)
    • FULL OUTER JOIN na wartościach niebędących kluczami (321)
    • Złączenie UNION JOIN (322)
  • Zastosowania OUTER JOIN (322)
    • Wyszukiwanie brakujących wartości (323)
    • Wyszukiwanie częściowo pasujących informacji (323)
  • Przykładowe instrukcje (324)
  • Podsumowanie (335)
  • Zagadnienia do samodzielnego rozwiązania (336)

Rozdział 10. Operacja UNION (339)

  • Co to jest UNION? (339)
  • Tworzenie zapytań z użyciem UNION (342)
    • Zastosowanie prostych instrukcji SELECT (342)
    • Łączenie złożonych instrukcji SELECT (345)
    • Zastosowanie operacji UNION więcej niż raz (348)
    • Sortowanie w operacji UNION (350)
  • Zastosowania UNION (351)
  • Przykładowe instrukcje (353)
  • Podsumowanie (361)
  • Zagadnienia do samodzielnego rozwiązania (362)

Rozdział 11. Podzapytania (365)

  • Co to jest podzapytanie? (366)
    • Podzapytania o wiersze (366)
    • Podzapytania o tabele (367)
    • Podzapytania skalarne (368)
  • Podzapytania służące do generowania kolumn (368)
    • Składnia (368)
    • Wstęp do funkcji agregujących: COUNT i MAX (371)
  • Podzapytania jako filtry (373)
    • Składnia (373)
    • Specjalne słowa kluczowe dla predykatów w podzapytaniach (375)
  • Zastosowania podzapytań (385)
    • Używanie podzapytań w zapytaniach generujących kolumny (385)
    • Zastosowanie podzapytań w roli filtrów (386)
  • Przykładowe instrukcje (387)
    • Podzapytania w wyrażeniach (388)
    • Podzapytania w filtrach (392)
  • Podsumowanie (398)
  • Zagadnienia do samodzielnego rozwiązania (398)

CZĘŚĆ IV. PODSUMOWYWANIE I GRUPOWANIE DANYCH (401)

Rozdział 12. Proste zestawienia (403)

  • Funkcje agregujące (403)
    • Zliczanie wierszy i wartości z użyciem funkcji COUNT (406)
    • Wyliczanie łącznej wartości za pomocą funkcji SUM (409)
    • Obliczanie wartości średniej za pomocą funkcji AVG (410)
    • Wyszukiwanie największej wartości za pomocą funkcji MAX (411)
    • Wyszukiwanie najmniejszej wartości za pomocą funkcji MIN (413)
    • Zastosowanie więcej niż jednej funkcji (414)
  • Zastosowanie funkcji agregujących w filtrach (415)
  • Przykładowe instrukcje (417)
  • Podsumowanie (423)
  • Zagadnienia do samodzielnego rozwiązania (423)

Rozdział 13. Grupowanie danych (427)

  • Po co grupować dane? (428)
  • Klauzula GROUP BY (430)
    • Składnia (430)
    • Mieszanie kolumn i wyrażeń (435)
    • Zastosowanie klauzuli GROUP BY w podzapytaniu w klauzuli WHERE (437)
    • Symulowanie instrukcji SELECT DISTINCT (438)
  • "Z pewnymi zastrzeżeniami" (439)
    • Zastrzeżenia dotyczące kolumn (439)
    • Grupowanie według wyrażeń (441)
  • Zastosowania GROUP BY (442)
  • Przykładowe instrukcje (443)
  • Podsumowanie (451)
  • Zagadnienia do samodzielnego rozwiązania (452)

Rozdział 14. Filtrowanie zgrupowanych danych (455)

  • Selekcja niejedno ma imię (456)
  • Miejsce filtrowania nie jest bez znaczenia (460)
    • Filtrowanie w klauzuli WHERE czy w HAVING? (460)
    • Unikanie pułapki z HAVING COUNT (462)
  • Zastosowania HAVING (467)
  • Przykładowe instrukcje (468)
  • Podsumowanie (475)
  • Zagadnienia do samodzielnego rozwiązania (475)

CZĘŚĆ V. MODYFIKOWANIE ZBIORÓW DANYCH (479)

Rozdział 15. Aktualizowanie zbiorów danych (481)

  • Co to jest UPDATE? (482)
  • Instrukcja UPDATE (482)
    • Zastosowanie prostego wyrażenia UPDATE (483)
    • Krótka dygresja: transakcje (486)
    • Aktualizowanie wielu kolumn (487)
    • Użycie podzapytania do filtrowania wierszy (488)
    • Zastosowanie wyrażenia UPDATE w podzapytaniu (494)
  • Zastosowania UPDATE (496)
  • Przykładowe instrukcje (497)
  • Podsumowanie (511)
  • Zagadnienia do samodzielnego rozwiązania (512)

Rozdział 16. Wstawianie zbiorów danych (515)

  • Co to jest INSERT? (515)
  • Instrukcja INSERT (517)
    • Wstawianie wartości (517)
    • Generowanie kolejnej wartości klucza głównego (520)
    • Wstawianie danych przy użyciu instrukcji SELECT (522)
  • Zastosowania INSERT (527)
  • Przykładowe instrukcje (528)
  • Podsumowanie (537)
  • Zagadnienia do samodzielnego rozwiązania (538)

Rozdział 17. Usuwanie zbiorów danych (541)

  • Co to jest DELETE? (541)
  • Instrukcja DELETE (542)
    • Usuwanie wszystkich wierszy (543)
    • Usuwanie wybranych wierszy (545)
  • Zastosowania DELETE (549)
  • Przykładowe instrukcje (550)
  • Podsumowanie (557)
  • Zagadnienia do samodzielnego rozwiązania (557)

CZĘŚĆ VI. WSTĘP DO ROZWIĄZYWANIA TRUDNYCH PROBLEMÓW (561)

Rozdział 18. Problemy z NIE i ORAZ (563)

  • Krótkie przypomnienie zbiorów (564)
    • Zbiory z wieloma kryteriami ORAZ (564)
    • Zbiory z wieloma kryteriami NIE (565)
    • Zbiory spełniające jednocześnie kryteria "na tak" i "na nie" (566)
  • Uwzględnianie kryterium "na nie" (567)
    • Zastosowanie złączenia OUTER JOIN (568)
    • Zastosowanie predykatu NOT IN (570)
    • Zastosowanie predykatu NOT EXISTS (572)
    • Zastosowanie klauzul GROUP BY / HAVING (573)
  • Uwzględnianie wielu kryteriów "na tak" (575)
    • Zastosowanie INNER JOIN (576)
    • Zastosowanie predykatu IN (578)
    • Zastosowanie predykatu EXISTS (580)
    • Zastosowanie klauzul GROUP BY / HAVING (581)
  • Przykładowe instrukcje (584)
  • Podsumowanie (599)
  • Zagadnienia do samodzielnego rozwiązania (600)

Rozdział 19. Operacje warunkowe (605)

  • Wyrażenia warunkowe (CASE) (605)
    • Do czego może się przydać CASE? (606)
    • Składnia (606)
  • Rozwiązywanie problemów za pomocą CASE (610)
    • Rozwiązywanie zadań przy użyciu prostej instrukcji CASE (610)
    • Rozwiązywanie zadań przy użyciu instrukcji CASE z wyszukiwaniem (614)
    • Zastosowanie instrukcji CASE w klauzuli WHERE (617)
  • Przykładowe instrukcje (618)
  • Podsumowanie (629)
  • Zagadnienia do samodzielnego rozwiązania (629)

Rozdział 20. Zastosowanie niepowiązanych danych i tabel "sterujących" (633)

  • Co to są niepowiązane dane? (634)
    • Kiedy warto użyć CROSS JOIN? (637)
  • Rozwiązywanie problemów przy użyciu niepowiązanych danych (637)
  • Rozwiązywanie problemów z użyciem tabel "sterujących" (640)
    • Konfigurowanie tabeli sterującej (641)
    • Zastosowanie tabeli sterującej (643)
  • Przykładowe instrukcje (647)
    • Przykłady z użyciem niepowiązanych tabel (648)
    • Przykłady z użyciem tabel sterujących (657)
  • Podsumowanie (663)
  • Zagadnienia do samodzielnego rozwiązania (664)

Na zakończenie (669)

DODATKI (671)

Dodatek A. Diagramy zgodne ze standardem SQL (673)

Dodatek B. Schematy przykładowych baz danych (683)

  • Baza danych Zamówienia (684)
  • Baza danych Zamówienia - zmiana (685)
  • Baza danych Agencja artystyczna (686)
  • Baza danych Agencja artystyczna - zmiana (687)
  • Baza danych Grafik uczelni (688)
  • Baza danych Grafik uczelni - zmiana (689)
  • Baza danych Liga kręglarska (690)
  • Baza danych Liga kręglarska - zmiana (691)
  • Baza danych Przepisy (692)

Dodatek C. Typy daty i czasu, operacje i funkcje (693)

  • IBM DB2 (693)
  • IBM DB2 (694)
  • Microsoft Office Access (696)
  • Microsoft SQL Server (697)
  • MySQL (699)
  • Oracle (702)

Dodatek D. Polecane lektury (705)

  • Książki poświęcone bazom danych (705)
  • Książki poświęcone SQL (705)

Dodatek E. Słowniczek (706)

Skorowidz (707)

  • Tytuł: Zapytania w SQL. Przyjazny przewodnik
  • Autor: John Viescas, Michael J. Hernandez
  • Tytuł oryginału: SQL Queries for Mere Mortals: A Hands-On Guide to Data Manipulation in SQL (3rd Edition)
  • Tłumaczenie: Piotr Cieślak
  • ISBN: 978-83-283-1367-5, 9788328313675
  • Data wydania: 2015-11-03
  • Format: Ebook
  • Identyfikator pozycji: sqldkp
  • Wydawca: Helion