Facebook - konwersja
Pobierz fragment

Zapytania w SQL. Przyjazny przewodnik - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
3 listopada 2015
Format ebooka:
PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
Pobierz fragment
99,00

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
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-1367-5
Rozmiar pliku: 11 MB

BESTSELLERY

Kategorie: