Zapytania w SQL. Przyjazny przewodnik - ebook
Zapytania w SQL. Przyjazny przewodnik - 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!
Spis treści
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)
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-1367-5 |
Rozmiar pliku: | 11 MB |