Spis treści:Wprowadzenie * Dla kogo jest ta książka? (26) * Wiemy, co sobie myślisz (27) * Metapoznanie: myślenie o myśleniu (29) * Oto co możesz zrobić, aby zmusić swój mózg do posłuszeństwa (31) * Przeczytaj to (32) * Nasi wspaniali recenzenci (34) * Podziękowania (35)1. Dane i tabele * Definiowanie danych (38) * Przeanalizuj swoje dane pod względem kategorii (43) * Co znajduje się w bazie danych? (44) * Twoja baza danych widziana przez rentgenowskie okulary... (46) * Bazy danych zawierają powiązane ze sobą informacje (48) * Tabele w zbliżeniu (49) * Przejmij kontrolę! (53) * Tworzenie tabeli: Polecenie CREATE TABLE (55) * Tworzenie bardziej złożonych tabel (56) * Przekonajmy się, jak łatwo można pisać kod SQL (57) * Utwórzmy w końcu tabelę moje_kontakty (58) * Twoja tabela jest gotowa (59) * Spotkajmy się z niektórymi typami danych SQL (60) * Twoja tabela bez tajemnic (64) * Nie można ponownie stworzyć już istniejącej bazy danych lub tabeli! (66) * Do kosza ze starą tabelą - czas na nową (68) * Aby dodać dane do tabeli, będziesz musiał skorzystać z polecenia INSERT (70) * Utworzenie polecenia INSERT (73) * Wariacje na temat polecenia INSERT (77) * Kolumny bez wartości (78) * Zerknij na swoją tabelę, używając polecenia SELECT (79) * SQL bez tajemnic: Wyznania wartości NULL (80) * Kontrola wewnętrznych wartości NULL (81) * NOT NULL pojawia się w wynikach polecenia DESC (83) * Wypełnij pustkę słowem kluczowym DEFAULT (84) * Przybornik SQL (86)2. Polecenie SELECT * Pobierać dane czy nie pobierać? (88) * Lepsza postać polecenia SELECT (91) * Co oznacza gwiazdka (*) (92) * Jak poszukiwać wartości różnych typów? (98) * Kolejne problemy ze znakami przestankowymi (99) * Niedopasowane apostrofy (100) * Polecenia INSERT z danymi zawierającymi apostrofy (102) * Pobieranie konkretnych kolumn w celu ograniczenia wyników (107) * Określanie kolumn w celu zwiększenia szybkości zapytania (107) * Łączenie zapytań (114) * Odnajdywanie wartości liczbowych (117) * Łagodne operatory porównania (120) * Odnajdywanie wartości liczbowych przy użyciu operatorów porównania (122) * Odnajdywanie danych tekstowych przy użyciu operatorów porównania (125) * Być ALBO nie być (127) * Różnica pomiędzy operatorem AND a OR (130) * By odszukać NULL, użyj operatora IS NULL (133) * Jak można zaoszczędzić czas dzięki jednemu słowu: LIKE (135) * Zew wieloznaczności (135) * Pobieranie zakresów przy użyciu operatora AND i operatorów porównania (139) * Lepszy sposób - operator BETWEEN (140) * Operator IN - w kręgu zainteresowania... (143) * ...lub poza nim - NOT IN (144) * Więcej o operatorze NOT (145) * Przybornik SQL (150)3. DELETE i UPDATE * Klowni są przerażający (154) * Śledzenie klownów (155) * Klowni są w ciągłym ruchu (156) * Jak są zapisywane informacje o klownach? (160) * Gonzo, mamy problem (162) * Jak pozbyć się rekordu - polecenie DELETE (163) * Stosowanie naszego nowego polecenia DELETE (165) * Reguły polecenia DELETE (166) * Dwa kroki - INSERT i DELETE (169) * Stosuj polecenie DELETE rozważnie (174) * Problemy z nieprecyzyjnymi poleceniami DELETE (178) * Modyfikowanie danych przy użyciu polecenia UPDATE (180) * Reguły stosowania polecenia UPDATE (181) * UPDATE odpowiada kombinacji INSERT-DELETE (182) * Polecenie UPDATE w akcji (183) * Aktualizacja miejsc wystąpień klownów (186) * Zaktualizuj ceny drinków (188) * A chcemy tylko jednego polecenia UPDATE (190) * Przybornik SQL (192)4. Projektowanie dobrych tabel * Dwie wędkarskie tabele (194) * Tabele dotyczą związków (198) * Dane atomowe (202) * Dane atomowe a Twoje tabele (204) * Reguły danych atomowych (205) * Dlaczego warto być normalnym? (208) * Zalety normalizacji tabel (209) * Klowni nie są normalni (210) * W połowie drogi do 1NF (211) * Reguły KLUCZA GŁÓWNEGO (212) * Dążenie do pierwszej postaci NORMALNEJ (215) * Poprawianie tabeli Grześka (216) * Oryginalna postać polecenia CREATE TABLE (217) * Pokażcie mi moją tabelę (218) * Polecenie oszczędzające czas (219) * Tworzenie tabeli z KLUCZEM GŁÓWNYM (220) * 1, 2, 3... automatycznie inkrementowane (222) * Dodawanie KLUCZA GŁÓWNEGO do istniejącej tabeli (226) * Modyfikacja tabeli i dodanie KLUCZA GŁÓWNEGO (227) * Przybornik SQL (228)5. Polecenie ALTER * Musimy wprowadzić kilka zmian (232) * Modyfikowanie tabel (237) * Ekstremalne metamorfozy tabel (238) * Zmiana nazwy tabeli (239) * Musimy poczynić pewne plany (241) * Przezbrajanie kolumn (242) * Zmiany strukturalne (243) * Polecenia ALTER i CHANGE (244) * Zmiana dwóch kolumn przy użyciu jednego polecenia SQL (245) * Szybko! Usuń tę kolumnę (249) * Dokładniejsza analiza nieatomowej kolumny lokalizacji (256) * Poszukaj wzorca (257) * Kilka wygodnych funkcji łańcuchowych (258) * Użyj bieżącej kolumny do zapisania wartości w innej kolumnie (263) * Sposób działania połączonych poleceń UPDATE i SET (264) * Przybornik SQL (266)6. Zaawansowane zastosowanie polecenia SELECT * Reorganizacja Filmoteki Bazodanowa (268) * Kilka problemów z bieżącą tabelą (269) * Dopasowywanie istniejących danych (270) * Określanie zawartości nowej kolumny (271) * Polecenie UPDATE z wyrażeniem CASE (274) * Wygląda na to, że mamy problem (276) * Do tabel może się wkraść bałagan (281) * Potrzebujemy możliwości organizowania danych zwracanych przez polecenie SELECT (282) * Wypróbuj klauzulę ORDER BY (285) * Sortowanie według jednej kolumny (286) * Klauzula ORDER z dwoma kolumnami (289) * Klauzula ORDER operująca na wielu kolumnach (290) * Uporządkowana tabela filmów (291) * Zmiana kolejności dzięki użyciu DESC (293) * Problem najlepszej sprzedawczyni grupy Młode Gosposie (295) * Funkcja SUM zsumuje wszystko za nas (297) * Zsumuj wszystko za jednym razem dzięki użyciu GROUP BY (298) * Funkcja AVG z klauzulą GROUP BY (299) * Funkcje MIN i MAX (300) * Liczymy dni (301) * Pobieranie unikalnych wartości (303) * LIMIT-owanie ilości wyników (306) * Ograniczenie tylko do drugiego miejsca (307) * Przybornik SQL (310)7. Projektowanie baz danych składających się z wielu tabel * Szukamy partnerki na randkę dla Wieśka (312) * Wszystko stracone... ale zaraz (323) * Wyobraź sobie dodatkową tabelę (324) * Nowe tabele w bazie danych z informacjami o klownach (325) * Schemat bazy danych klowni_informacje (326) * W jaki sposób z jednej tabeli zrobić dwie (328) * Łączenie tabel (330) * Ograniczanie klucza obcego (335) * Dlaczego należy zawracać sobie głowę kluczami obcymi? (336) * TWORZENIE tabeli z KLUCZEM OBCYM (337) * Zależności pomiędzy tabelami (339) * Wzorce danych: jeden-do-jednego (339) * Wzorce danych: kiedy używać tabel połączonych zależnością jeden-do-jednego (340) * Wzorce danych: jeden-do-wielu (341) * Wzorce danych: dochodzimy do zależności wiele-do-wielu (342) * Wzorce danych: potrzebujemy tabeli łączącej (345) * Wzorce danych: wiele-do-wielu (346) * W końcu w 1NF (351) * Klucz złożony korzysta z wielu kolumn (352) * Zapis uproszczony (354) * Częściowa zależność funkcjonalna (355) * Przechodnia zależność funkcjonalna (356) * Druga postać normalna (360) * Trzecia postać normalna (w końcu) (366) * I tak oto Robert i lista_grzesia żyli od tej pory długo i szczęśliwie (369) * Przybornik SQL (372)8. Złączenia i operacje na wielu tabelach * Powtarzamy się, cały czas się powtarzamy... (374) * Wypełnianie tabel (375) * Zainteresowania - kłopotliwa kolumna (378) * Wciąż wykazujemy zainteresowanie (379) * Aktualizacja wszystkich zainteresowań (380) * Pobieranie wszystkich zainteresowań (381) * Wiele dróg prowadzących w to samo miejsce (382) * CREATE, SELECT oraz INSERT - (prawie) jednocześnie (382) * CREATE, SELECT i INSERT - jednocześnie (383) * O co chodzi z tym AS? (384) * Nazwy zastępcze kolumn (385) * Nazwy zastępcze, a kto by ich potrzebował? (386) * Wszystko co chciałbyś wiedzieć o złączeniach wewnętrznych (387) * Złączenie kartezjańskie (388) * Zrozumienie złączeń wewnętrznych (393) * Złączenie wewnętrzne w akcji: złączenie równościowe (394) * Złączenie wewnętrzne w akcji: złączenie różnościowe (397) * Ostatni rodzaj złączeń wewnętrznych: złączenia naturalne (398) * Złączone zapytania? (405) * Nazwy zastępcze tabel i kolumn bez tajemnic: Dlaczego się ukrywacie? (406) * Przybornik SQL (408)9. Podzapytania * Grzesiek wchodzi na rynek pracy (410) * Baza Grześka wzbogacona o nowe tabele (411) * Grzesiek używa złączenia wewnętrznego (412) * Ale Grzesiek chce użyć innych zapytań (414) * Podzapytania (416) * Łączymy dwa zapytania w zapytanie z podzapytaniem (417) * Jakby jedno pytanie nie wystarczało: poznajcie podzapytanie (418) * Podzapytanie w działaniu (419) * Podzapytania i ich reguły (421) * Podstawowe informacje o tworzeniu podzapytań (424) * Podzapytanie jako kolumna polecenia SELECT (427) * Inny przykład: Podzapytanie ze złączeniem naturalnym (428) * Podzapytania nieskorelowane (429) * SQL bez tajemnic: Wybór optymalnego sposobu realizacji zapytania, jeśli dostępna jest większa liczba możliwości (430) * Nieskorelowane podzapytania zwracające wiele wartości: IN oraz NOT IN (433) * Podzapytania skorelowane (438) * (Przydatne) Podzapytanie skorelowane używające operatora NOT EXISTS (439) * EXISTS i NOT EXISTS (440) * Usługi pośrednictwa pracy Grześka - zaproszenie do współpracy! (442) * W drodze na imprezę... (443) * Przybornik SQL (444)10. Złączenia zewnętrzne, złączenia zwrotne oraz unie * Porządki w starych danych (448) * Kluczem są dwie strony złączenia - lewa i prawa (449) * Oto lewostronne złączenie zewnętrzne (450) * Złączenia zewnętrzne i wielokrotne dopasowania (455) * Prawostronne złączenie zewnętrzne (456) * Podczas gdy my radośnie złączaliśmy zewnętrznie... (459) * Moglibyśmy utworzyć nową tabelę (460) * Gdzie w schemacie umieścimy nową tabelę? (461) * Klucz obcy odwołujący się do tej samej tabeli (462) * Łączenie tabeli z nią samą (463) * Potrzebujemy złączenia zwrotnego (465) * Inny sposób zwracania informacji z wielu tabel (466) * Można zastosować polecenie UNION (467) * Polecenie UNION ma swoje ograniczenia (468) * Reguły stosowania poleceń UNION w działaniu (469) * UNION ALL (470) * Utworzenie tabeli na podstawie wyników polecenia UNION (471) * Polecenia INTERSECT i EXCEPT (472) * Skończyliśmy ze złączeniami, czas zająć się czymś nowym (473) * Podzapytania i złączenia - studium porównawcze (473) * Zamiana podzapytania na złączenie (474) * Złączenie zwrotne jako podzapytanie (479) * Firma Grześka rozwija się (480) * Przybornik SQL (482)11. Ograniczenia, widoki i transakcje * Grzesiek zatrudnił pomocników (484) * Pierwszy dzień Kuby: Dopisywanie nowego klienta (485) * Kuba unika wartości NULL (486) * Trzy miesiące później (487) * Uwaga, KONTROLA: dodawanie OGRANICZEŃ SPRAWDZAJĄCYCH (488) * Sprawdzanie płci (489) * Praca Franka staje się nużąca (491) * Tworzenie widoku (493) * Oglądanie własnych widoków (494) * Jak właściwie działa widok? (495) * Czym są widoki (496) * Wstawianie, aktualizacja i usuwanie danych przy wykorzystaniu widoków (499) * Sekret polega na tym, by udawać, że widok jest prawdziwą tabelą (500) * Widoki z klauzulą CHECK OPTION (503) * Twój widok może pozwalać na aktualizację danych, jeśli... (504) * Kiedy widok przestanie być potrzebny (505) * Kiedy dobrej bazie przydarzy się coś złego (506) * Co się stało w bankomacie (507) * Kolejne kłopoty z bankomatami (508) * To nie marzenia, to transakcje (510) * Klasyczny test ACID (511) * SQL pomaga nam zarządzać swoimi transakcjami (512) * Co powinno się stać w bankomacie (513) * Jak umożliwić korzystanie z transakcji w MySQL-u (514) * Wypróbuj transakcje samodzielnie (515) * Przybornik SQL (518)12. Bezpieczeństwo * Problemy użytkowników (522) * Zapobieganie błędom w bazie klownów (523) * Zabezpieczanie konta administratora (525) * Dodanie nowego użytkownika (526) * Dokładnie określ, czego poszczególni użytkownicy potrzebują (527) * Prosta postać polecenia GRANT (528) * Różne wersje polecenia GRANT (531) * Usuwanie uprawnień (532) * Usuwanie uprawnień przydzielonych dzięki GRANT OPTION (533) * Precyzyjne usuwanie (534) * Współużytkowane konta przysparzają problemów (538) * Stosowanie roli (540) * Usuwanie roli (540) * Stosowanie roli z klauzulą WITH ADMIN OPTION (542) * Łączenie poleceń CREATE USER i GRANT (547) * Lista Grześka stała się usługą globalną! (548) * Czy już coś wiesz o filii Listy Grzesia w swoim mieście? (549) * Korzystaj z SQL-a w swoich własnych projektach, ponieważ także Ty możesz odnieść taki sukces jak Grzesiek (549) * Przybornik SQL (550)A Pozostałości * Nr 1. Znajdź i zainstaluj graficzny program do obsługi używanego systemu zarządzania bazami danych (552) * Nr 2. Słowa zastrzeżone i znaki specjalne (554) * Nr 3. ALL, ANY oraz SOME (556) * Nr 4. Dodatkowe informacje o typach danych (558) * Nr 5. Tabele tymczasowe (560) * Nr 6. Rzutowanie typów (561) * Nr 7. Kim jesteś? Która jest godzina? (562) * Nr 8. Przydatne funkcje matematyczne (563) * Nr 9. Indeksowanie dla poprawy szybkości działania zapytań (565) * Nr 10. Dwuminutowy kurs PHP i MySQL-a (566)B Instalacja MySQL-a * Zacznij działać i to szybko! (570) * Instrukcje i rozwiązywanie problemów (570) * Proces instalacji MySQL-a w systemie Windows (571)C Przypomnienie narzędzi * Symbole (576)Skorowidz (583)Teraz i Ty możesz dołączyć do grona osób znających SQL. Wystarczy, że sięgniesz po nasz bestseller.Co w nim znajdziesz? Wszystko co najlepsze w serii Rusz głową! Konkretna wiedza, dużo humoru oraz wszystko wyjaśniające rysunki. Na sam początek dowiesz się co to jest język SQL oraz stworzysz swoją pierwszą bazę danych (polecenie CREATE). W kolejnych rozdziałach nauczysz się uzupełniać te bazy danymi, usuwać je oraz modyfikować (polecenia INSERT, UPDATE oraz DELETE). Jak już przebrniesz przez podstawy, zabierzesz się za to co bazodanowcy lubią najbardziej - indeksy, klucze, złączenia oraz podzapytania. Na sam koniec sprawdzisz jak zagwarantować swojej bazie bezpieczeństwo oraz wykrzesać z niej jeszcze więcej możliwości. Brzmi skomplikowanie? Nie martw się, jesteś w dobrych rękach! A więc...Naprzód, głowo!Nikt ci tego nie potrafił wytłumaczyć? Wydaje Ci się, że to problem nie na Twoją głowę? Nie potrzebujesz elektrowstrząsów, żeby pobudzić swój mózg do aktywnego działania. Tylko żadnych gwałtownych gestów! Usiądź wygodnie, otwórz książkę, dopiero teraz się zacznie. Na początek - rusz głową!Precz z nudnymi wykładami i zakuwaniem bez zrozumienia!Nauka to znacznie więcej niż tylko czytanie suchego tekstu. Twój mózg jest niczym głodny rekin, cały czas prący naprzód w poszukiwaniu nowej, apetycznej przekąski.Jak karmimy Twój wygłodniały umysł?Używamy rysunków, bo obraz wart jest 1024 słów. Stosujemy powtórzenia, by zakodować na stałe dane w Twojej chłonnej głowie. Oddziałujemy na emocje, jesteśmy nieprzewidywalni, zaskakujący i zabawni. Stawiamy przed Tobą wyzwania i zadajemy pytania, które angażują Cię w proces studiowania przedstawianych zagadnień. Cały czas pobudzamy Twój umysł do aktywnego działania, zmuszamy go do posłuszeństwa... a za ciężką pracę nagrodzimy go smakowitym ciasteczkiem w postaci wiedzy - wisienka gratis!Rozgryź to sam! * Tworzenie bazy danych i tabel (CREATE) * Pobieranie danych (SELECT) * Usuwanie (DELETE) i aktualizowanie danych (UPDATE) * Wykorzystywanie kluczy i indeksów * Sortowanie danych * Operacje na danych - sumy, średnie, elementy maksymalne i minimalne * Pobieranie unikalnych danych * Sposób pobierania określonej liczby wierszy * Stosowanie podzapytań * Zapewnianie spójności danych * Ograniczanie dostępu do zgromadzonych danych * Zapewnianie bezpieczeństwa bazie danych