MySQL. Vademecum profesjonalisty. Wydanie V - ebook
MySQL. Vademecum profesjonalisty. Wydanie V - ebook
Kompendium wiedzy o MySQL!
MySQL to jedna z najpopularniejszych baz danych wykorzystywanych we współczesnych aplikacjach internetowych. Swój sukces zawdzięcza prostej konfiguracji, niewielkim wymaganiom oraz wysokiej niezawodności. Jeżeli do tego dołożymy genialny współczynnik możliwości do ceny — baza jest darmowa — oraz doskonałą współpracę z językiem PHP, to otrzymamy rewelacyjny produkt. Warto pamiętać, że MySQL to prawdziwy system bazodanowy, wspierający zaawansowane techniki replikacji danych i mogący przechowywać bez problemu miliardy rekordów.
Ta książka to kompletny poradnik poświęcony wykorzystaniu bazy danych MySQL oraz administrowaniu tą bazą. W trakcie lektury dowiesz się, jak najlepiej składować dane w bazie, jak optymalizować zapytania oraz jak pobierać metadane. Ponadto nauczysz się uzyskiwać dostęp do bazy z użyciem języków C, Perl oraz PHP. Niezwykle istotna jest część trzecia niniejszej publikacji. Poświęcona została w całości zagadnieniom związanym z administrowaniem bazą MySQL. Zrozumiesz dzięki niej, w jaki sposób baza przechowuje dane, jak zoptymalizować jej wydajność oraz co musisz zrobić, by zagwarantować najwyższy poziom bezpieczeństwa. Warto, żebyś zawczasu zapoznał się z rozdziałem poświęconym wykonywaniu i odtwarzaniu kopii zapasowej. Książka jest doskonałym źródłem informacji zarówno dla programistów, jak i administratorów korzystających z tej bazy danych.
Dzięki tej książce:
- poznasz dogłębnie bazę danych MySQL
- zoptymalizujesz jej działanie
- podłączysz się do jej zasobów za pomocą języków C, Perl i PHP
- w pełni wykorzystasz potencjał bazy danych MySQL
Wykorzystaj potencjał bazy danych MySQL!
Spis treści
O autorze (17)
Wprowadzenie (19)
CZĘŚĆ I. OGÓLNE UŻYCIE MYSQL
Rozdział 1. Rozpoczęcie pracy z MySQL (33)
- 1.1. W jaki sposób MySQL może Ci pomóc? (33)
- 1.2. Przykładowa baza danych (37)
- 1.2.1. Projekt "Liga Historyczna USA" (37)
- 1.2.2. Projekt "Oceny uczniów" (40)
- 1.2.3. Jak przykładowa baza danych może Ci pomóc? (41)
- 1.3. Podstawowa terminologia bazy danych (41)
- 1.3.1. Terminologia strukturalna (42)
- 1.3.2. Terminologia języka zapytań (44)
- 1.3.3. Terminologia architekturalna MySQL (45)
- 1.4. Przewodnik po MySQL (46)
- 1.4.1. Pobranie przykładowej bazy danych (47)
- 1.4.2. Wymagania wstępne (47)
- 1.4.3. Nawiązywanie i zrywanie połączenia z serwerem MySQL (49)
- 1.4.4. Wykonywanie zapytań SQL (51)
- 1.4.5. Tworzenie bazy danych (54)
- 1.4.6. Tworzenie tabel (55)
- 1.4.7. Dodawanie nowych rekordów (75)
- 1.4.8. Przywrócenie bazy danych sampdb do znanego stanu (79)
- 1.4.9. Pobieranie informacji (80)
- 1.4.10. Usuwanie lub uaktualnianie istniejących rekordów (110)
- 1.5. Wskazówki przydatne podczas pracy z klientem mysql (113)
- 1.5.1. Uproszczenie procesu nawiązywania połączenia (113)
- 1.5.2. Wpisywanie mniejszej ilości tekstu przy wykonywaniu zapytań (115)
- 1.6. Co dalej? (120)
Rozdział 2. Użycie MySQL do zarządzania danymi (123)
- 2.1. Tryby SQL serwera (124)
- 2.2. Identyfikatory składni MySQL i reguły nadawania nazw (126)
- 2.3. Wielkość liter w zapytaniach SQL (128)
- 2.4. Obsługa kodowania znaków (130)
- 2.4.1. Określenie kodowania znaków (131)
- 2.4.2. Określenie dostępności kodowania znaków i ustawień bieżących (132)
- 2.4.3. Obsługa Unicode (133)
- 2.5. Wybór, utworzenie, usunięcie i zmiana bazy danych (134)
- 2.5.1. Wybór bazy danych (134)
- 2.5.2. Utworzenie bazy danych (135)
- 2.5.3. Usunięcie bazy danych (136)
- 2.5.4. Zmiana bazy danych (136)
- 2.6. Tworzenie, usuwanie, indeksowanie i modyfikowanie tabel (137)
- 2.6.1. Cechy charakterystyczne silników bazy danych (137)
- 2.6.2. Tworzenie tabel (143)
- 2.6.3. Usuwanie tabel (152)
- 2.6.4. Indeksowanie tabel (153)
- 2.6.5. Zmiana struktury tabeli (158)
- 2.7. Pobieranie metadanych bazy danych (161)
- 2.7.1. Pobieranie metadanych za pomocą zapytania SHOW (162)
- 2.7.2. Pobieranie metadanych z bazy danych INFORMATION_SCHEMA (164)
- 2.7.3. Pobieranie metadanych z poziomu wiersza poleceń (166)
- 2.8. Pobieranie danych z wielu tabel za pomocą złączeń (167)
- 2.8.1. Złączenia wewnętrzne (169)
- 2.8.2. Kwalifikowane odwołania do kolumn z poziomu złączonych tabel (170)
- 2.8.3. Złączenia typu LEFT i RIGHT (OUTER) (171)
- 2.9. Pobieranie informacji z wielu tabel za pomocą podzapytań (175)
- 2.9.1. Podzapytania używające względnych operatorów porównania (176)
- 2.9.2. Podzapytania IN i NOT IN (177)
- 2.9.3. Podzapytania ALL, ANY i SOME (178)
- 2.9.4. Podzapytania EXISTS i NOT EXISTS (179)
- 2.9.5. Podzapytania skorelowane (180)
- 2.9.6. Podzapytania w klauzuli FROM (181)
- 2.9.7. Przepisywanie podzapytań na postać złączeń (181)
- 2.10. Pobieranie informacji z wielu tabel za pomocą zapytań UNION (183)
- 2.11. Usuwanie i uaktualnianie rekordów w wielu tabelach (186)
- 2.12. Przeprowadzanie transakcji (188)
- 2.12.1. Użycie transakcji do zapewnienia bezpiecznego środowiska wykonywania (190)
- 2.12.2. Użycie punktów pośrednich transakcji (194)
- 2.12.3. Izolacja transakcji (194)
- 2.13. Klucze zewnętrzne i integralność odwołań (197)
- 2.14. Wyszukiwanie pełnego tekstu (204)
- 2.14.1. Wyszukiwanie pełnego tekstu w języku naturalnym (207)
- 2.14.2. Wyszukiwanie pełnego tekstu w trybie boolowskim (208)
- 2.14.3. Wyszukiwanie rozszerzone o wynik zapytania (210)
- 2.14.4. Konfiguracja silnika wyszukiwania pełnego tekstu (211)
Rozdział 3. Typy danych (213)
- 3.1. Kategorie wartości danych (215)
- 3.1.1. Wartości liczbowe (215)
- 3.1.2. Wartości ciągu tekstowego (217)
- 3.1.3. Wartości daty i godziny (226)
- 3.1.4. Wartości przestrzenne (226)
- 3.1.5. Wartości boolowskie (227)
- 3.1.6. Wartość NULL (227)
- 3.2. Typy danych w MySQL (227)
- 3.2.1. Ogólny opis typów danych (228)
- 3.2.2. Określenie typów kolumn w definicji tabeli (230)
- 3.2.3. Definiowanie wartości domyślnych kolumn (231)
- 3.2.4. Liczbowe typy danych (232)
- 3.2.5. Typy danych w postaci ciągów tekstowych (240)
- 3.2.6. Typy danych dla wartości daty i czasu (256)
- 3.3. Jak MySQL obsługuje nieprawidłowe wartości danych? (267)
- 3.4. Praca z sekwencjami (270)
- 3.4.1. Ogólne właściwości AUTO_INCREMENT (270)
- 3.4.2. Właściwości AUTO_INCREMENT charakterystyczne dla silnika bazy danych (272)
- 3.4.3. Kwestie dotyczące kolumn AUTO_INCREMENT (275)
- 3.4.4. Wskazówki pomocne podczas pracy z kolumnami AUTO_INCREMENT (276)
- 3.4.5. Generowanie sekwencji bez AUTO_INCREMENT (278)
- 3.5. Obliczanie wyrażeń i konwersja typu (280)
- 3.5.1. Tworzenie wyrażeń (281)
- 3.5.2. Konwersja typu (289)
- 3.6. Wybór typu danych (297)
- 3.6.1. Jakie wartości będą przechowywane w kolumnie? (299)
- 3.6.2. Czy przechowywane wartości pochodzą z określonego zakresu? (302)
Rozdział 4. Widoki i programy składowane (305)
- 4.1. Używanie widoków (306)
- 4.2. Używanie programów składowanych (309)
- 4.2.1. Zapytania złożone i ograniczniki zapytań (310)
- 4.2.2. Procedury i funkcje składowane (311)
- 4.2.3. Wyzwalacze (316)
- 4.2.4. Zdarzenia (318)
- 4.3. Zapewnienie bezpieczeństwa widokom i programom składowanym (320)
Rozdział 5. Optymalizacja zapytań (323)
- 5.1. Użycie indeksowania (324)
- 5.1.1. Zalety wynikające z indeksowania (324)
- 5.1.2. Koszt indeksowania (327)
- 5.1.3. Wybór indeksów (328)
- 5.2. Optymalizator zapytań MySQL (333)
- 5.2.1. Jak działa optymalizator zapytań? (334)
- 5.2.2. Użycie zapytania EXPLAIN do sprawdzenia operacji optymalizatora (338)
- 5.3. Wybór typu danych zapewniającego efektywne wykonywanie zapytań (344)
- 5.4. Wybór formatu tabeli dla efektywnych zapytań (347)
- 5.5. Efektywne wczytywanie danych (349)
- 5.6. Harmonogram, blokady i współbieżność (352)
CZĘŚĆ II. UŻYCIE INTERFEJSU PROGRAMOWANIA MYSQL
Rozdział 6. Wprowadzenie do programowania MySQL (355)
- 6.1. Dlaczego tworzyć własne aplikacje MySQL? (355)
- 6.2. API dostępne dla MySQL (359)
- 6.2.1. API C (360)
- 6.2.2. API Perl DBI (360)
- 6.2.3. API PHP (362)
- 6.3. Wybór API (363)
- 6.3.1. Przewidywane środowisko działania (364)
- 6.3.2. Wydajność (365)
- 6.3.3. Czas potrzebny na opracowanie aplikacji (366)
- 6.4.3. Przenośność (367)
Rozdział 7. Tworzenie programów MySQL przy użyciu języka C (369)
- 7.1. Kompilacja i linkowanie programów klienckich (370)
- 7.2. Nawiązanie połączenia z serwerem (373)
- 7.3. Obsługa błędów i przetwarzanie opcji polecenia (377)
- 7.3.1. Sprawdzanie pod kątem błędów (377)
- 7.3.2. Pobieranie parametrów połączenia w trakcie działania programu (382)
- 7.3.3. Implementacja przetwarzania opcji w programie klienta (395)
- 7.4. Przetwarzanie zapytań SQL (399)
- 7.4.1. Obsługa zapytań modyfikujących rekordy (401)
- 7.4.2. Obsługa zapytań zwracających zbiór wynikowy (402)
- 7.4.3. Procedury obsługi zapytań ogólnego przeznaczenia (405)
- 7.4.4. Alternatywne podejścia do przetwarzania zapytań (407)
- 7.4.5. Funkcja mysql_store_result() kontra mysql_use_result() (408)
- 7.4.6. Używanie metadanych zbioru wynikowego (411)
- 7.4.7. Kodowanie znaków specjalnych i danych binarnych (416)
- 7.5. Program do interaktywnego wykonywania zapytań (420)
- 7.6. Utworzenie klienta z obsługą SSL (421)
- 7.7. Jednoczesne wykonywanie wielu zapytań (426)
- 7.8. Używanie zapytań preinterpretowanych (428)
- 7.9. Użycie preinterpretowanego zapytania CALL (440)
Rozdział 8. Tworzenie programów MySQL przy użyciu Perl DBI (445)
- 8.1. Cechy charakterystyczne skryptu Perl (446)
- 8.2. Ogólny opis Perl DBI (447)
- 8.2.1. Typy danych DBI (447)
- 8.2.2. Prosty skrypt DBI (448)
- 8.2.3. Obsługa błędów (453)
- 8.2.4. Obsługa zapytań modyfikujących rekordy (456)
- 8.2.5. Obsługa zapytań zwracających zbiór wynikowy (458)
- 8.2.6. Cytowanie znaków specjalnych w ciągach tekstowych zapytań (467)
- 8.2.7. Miejsca zarezerwowane i zapytania preinterpretowane (470)
- 8.2.8. Dołączanie wyniku zapytania do zmiennych skryptu (474)
- 8.2.9. Określenie parametrów połączenia (475)
- 8.2.10. Usuwanie błędów (478)
- 8.2.11. Używanie metadanych zbioru wynikowego (482)
- 8.2.12. Przeprowadzanie transakcji (486)
- 8.3. Praca z DBI (488)
- 8.3.1. Generowanie katalogu Ligi Historycznej (488)
- 8.3.2. Wysyłanie członkom Ligi przypomnień o konieczności przedłużenia członkostwa (495)
- 8.3.3. Edycja rekordu członka Ligi Historycznej (500)
- 8.3.4. Wyszukiwanie członków Ligi Historycznej o takich samych zainteresowaniach (506)
- 8.3.5. Udostępnienie w internecie katalogu Ligi Historycznej (507)
- 8.4. Użycie DBI w aplikacjach sieciowych (510)
- 8.4.1. Konfiguracja Apache w celu obsługi skryptów CGI (512)
- 8.4.2. Krótki opis modułu CGI.pm (513)
- 8.4.3. Nawiązanie połączenia z serwerem MySQL z poziomu skryptu sieciowego (521)
- 8.4.4. Przeglądarka bazy danych (523)
- 8.4.5. Przeglądarka tabel projektu ocen uczniów (528)
- 8.4.6. Wyszukiwanie wspólnych zainteresowań w projekcie Ligi Historycznej (531)
Rozdział 9. Tworzenie programów MySQL przy użyciu języka PHP (537)
- 9.1. Ogólny opis PHP (539)
- 9.1.1. Prosty skrypt PHP (541)
- 9.1.2. Użycie biblioteki plików PHP w celu hermetyzacji kodu (545)
- 9.1.3. Prosta strona pobierająca dane (550)
- 9.1.4. Przetwarzanie wyników zapytania (554)
- 9.1.5. Sprawdzanie pod kątem wartości NULL w wynikach zapytania (558)
- 9.1.6. Używanie zapytań preinterpretowanych (559)
- 9.1.7. Użycie miejsc zarezerwowanych do obsługi kwestii związanych z cytowaniem danych (559)
- 9.1.8. Obsługa błędów (561)
- 9.2. Praca z PHP (564)
- 9.2.1. Aplikacja pozwalająca na wprowadzenie wyników uzyskanych przez uczniów (564)
- 9.2.2. Tworzenie interaktywnego quizu w internecie (577)
- 9.2.3. Edycja informacji o członkach Ligi Historycznej (582)
CZĘŚĆ III. ADMINISTRACJA MYSQL
Rozdział 10. Wprowadzenie do administracji bazą danych MySQL (591)
- 10.1. Komponenty MySQL (592)
- 10.2. Ogólna administracja MySQL (593)
- 10.3. Kontrola dostępu i zapewnianie bezpieczeństwa (594)
- 10.4. Obsługa bazy danych, tworzenie kopii zapasowych i replikacja (595)
Rozdział 11. Katalog danych w MySQL (597)
- 11.1. Położenie katalogu danych (598)
- 11.2. Struktura katalogu danych (599)
- 11.2.1. W jaki sposób serwer MySQL zapewnia dostęp do danych? (600)
- 11.2.2. Przedstawienie baz danych w systemie plików (602)
- 11.2.3. Przedstawienie tabel w systemie plików (603)
- 11.2.4. Przedstawienie widoków i wyzwalaczy w systemie plików (604)
- 11.2.5. Jak zapytania SQL są mapowane na operacje na pliku tabeli? (604)
- 11.2.6. Ograniczenia systemu operacyjnego w zakresie nazw obiektów bazy danych (605)
- 11.2.7. Czynniki wpływające na maksymalną wielkość tabeli (607)
- 11.2.8. Wpływ struktury katalogu danych na wydajność systemu (609)
- 11.2.9. Pliki dzienników zdarzeń i stanu MySQL (611)
- 11.3. Przeniesienie zawartości katalogu danych (613)
- 11.3.1. Metody przenoszenia katalogu danych lub jego elementów (614)
- 11.3.2. Przygotowania do operacji przeniesienia (615)
- 11.3.3. Uzyskanie dostępu do wyniku przeniesienia (615)
- 11.3.4. Przeniesienie całego katalogu danych (617)
- 11.3.5. Przeniesienie poszczególnych baz danych (617)
- 11.3.6. Przeniesienie poszczególnych tabel (618)
- 11.3.7. Przeniesienie systemowej przestrzeni tabel InnoDB (618)
- 11.3.8. Przeniesienie plików dzienników zdarzeń i stanu (619)
Rozdział 12. Ogólna administracja bazą danych MySQL (621)
- 12.1. Zabezpieczenie nowej instalacji MySQL (622)
- 12.1.1. Definiowanie haseł dla początkowych kont MySQL (622)
- 12.1.2. Konfiguracja haseł dla serwerów dodatkowych (627)
- 12.2. Konfiguracja uruchamiania i zamykania serwera MySQL (628)
- 12.2.1. Uruchamianie serwera MySQL w systemach UNIX (628)
- 12.2.2. Uruchamianie serwera MySQL w systemach Windows (634)
- 12.2.3. Określanie opcji startowych serwera (637)
- 12.2.4. W jaki sposób serwer nasłuchuje połączeń? (639)
- 12.2.5. Zatrzymanie serwera (640)
- 12.2.6. Odzyskanie kontroli nad serwerem, gdy nie można nawiązać z nim połączenia (641)
- 12.3. Używanie zmiennych systemowych i stanu (644)
- 12.3.1. Sprawdzanie i ustawienie wartości zmiennych systemowych (645)
- 12.3.2. Sprawdzenie wartości zmiennej stanu (649)
- 12.4. Interfejs wtyczek (651)
- 12.5. Konfiguracja silnika bazy danych (654)
- 12.5.1. Wybór silnika bazy danych (655)
- 12.5.2. Wybór domyślnego silnika bazy danych (656)
- 12.5.3. Konfiguracja silnika InnoDB (656)
- 12.6. Kwestie związane z globalizacją (664)
- 12.6.1. Konfiguracja obsługi stref czasowych (664)
- 12.6.2. Ustawienie domyślnego kodowania znaków i kolejności sortowania (667)
- 12.6.3. Wybór języka wyświetlania komunikatów błędów (667)
- 12.6.4. Wybór ustawień językowych (668)
- 12.7. Dostrajanie serwera (668)
- 12.7.1. Zmienne systemowe ogólnego przeznaczenia do dostrajania serwera (670)
- 12.7.2. Dostrajanie silnika bazy danych (673)
- 12.7.3. Używanie bufora zapytań (680)
- 12.7.4. Optymalizacje sprzętowe (682)
- 12.8. Dzienniki zdarzeń serwera (684)
- 12.8.1. Dziennik błędów (687)
- 12.8.2. Ogólny dziennik zapytań (688)
- 12.8.3. Dziennik wolno wykonywanych zapytań (689)
- 12.8.4. Binarny dziennik zdarzeń (690)
- 12.8.5. Dziennik przekazywania (692)
- 12.8.6. Rejestracja zdarzeń w tabelach (692)
- 12.8.7. Zarządzanie dziennikami zdarzeń (693)
- 12.9. Uruchamianie wielu serwerów MySQL (701)
- 12.9.1. Ogólne kwestie związane z uruchamianiem wielu serwerów (702)
- 12.9.2. Konfiguracja i kompilacja różnych serwerów (705)
- 12.9.3. Strategie podawania opcji startowych (707)
- 12.9.4. Użycie skryptu mysqld_multi do zarządzania serwerem (708)
- 12.9.5. Uruchamianie wielu serwerów w Windows (710)
- 12.9.6. Uruchamianie klientów wielu serwerów (712)
- 12.10. Uaktualnianie MySQL (712)
Rozdział 13. Bezpieczeństwo i kontrola dostępu (715)
- 13.1. Zabezpieczenie dostępu do MySQL przez system plików (716)
- 13.1.1. Jak ukraść dane? (717)
- 13.1.2. Zabezpieczenie instalacji MySQL (718)
- 13.2. Zarządzanie kontami użytkowników w MySQL (725)
- 13.2.1. Zarządzanie kontem MySQL na wysokim poziomie (727)
- 13.2.2. Nadawanie uprawnień (732)
- 13.2.3. Wyświetlanie uprawnień użytkownika (744)
- 13.2.4. Odbieranie uprawnień (744)
- 13.2.5. Zmiana hasła lub zerowanie zapomnianego (745)
- 13.2.6. Unikanie ryzyka związanego z kontrolą dostępu (746)
- 13.2.7. Wtyczki metod uwierzytelniania i użytkownicy proxy (750)
- 13.3. Struktura i zawartość tabel uprawnień (754)
- 13.3.1. Istniejące w tabelach uprawnień kolumny dotyczące zasięgu udzielanego dostępu (757)
- 13.3.2. Istniejące w tabelach uprawnień kolumny uprawnień (758)
- 13.3.3. Istniejące w tabelach uprawnień kolumny uwierzytelnienia (759)
- 13.3.4. Istniejące w tabelach uprawnień kolumny dotyczące SSL (759)
- 13.3.5. Istniejące w tabelach uprawnień kolumny zarządzania zasobami (760)
- 13.4. W jaki sposób serwer kontroluje dostęp uzyskiwany przez klientów? (761)
- 13.4.1. Zawartość kolumn zasięgu (762)
- 13.4.2. Weryfikacja uprawnień zapytania (764)
- 13.4.3. Kolejność dopasowania kolumn zasięgu (766)
- 13.4.4. Puzzle uprawnień (767)
- 13.5. Konfiguracja bezpiecznych połączeń za pomocą SSL (770)
Rozdział 14. Obsługa bazy danych, kopie zapasowe i replikacja (775)
- 14.1. Zasady obsługi profilaktycznej (775)
- 14.2. Obsługa bazy danych w działającym serwerze (777)
- 14.2.1. Blokowanie poszczególnych tabel w celu uzyskania dostępu tylko do odczytu lub odczytu i zapisu (779)
- 14.2.2. Nałożenie na wszystkie bazy danych blokady pozwalającej jedynie na ich odczyt (782)
- 14.3. Ogólne działania profilaktyczne (783)
- 14.3.1. Używanie możliwości serwera w zakresie automatycznej naprawy (783)
- 14.3.2. Harmonogram działań profilaktycznych (784)
- 14.4. Tworzenie kopii zapasowej bazy danych (785)
- 14.4.1. Cechy charakterystyczne przenośności silników bazy danych (788)
- 14.4.2. Tworzenie kopii zapasowej za pomocą narzędzia mysqldump (790)
- 14.4.3. Tworzenie binarnej kopii zapasowej (793)
- 14.4.4. Tworzenie kopii zapasowej tabel InnoDB (795)
- 14.5. Kopiowanie baz danych do innego serwera (796)
- 14.5.1. Kopiowanie bazy danych za pomocą pliku kopii zapasowej (797)
- 14.5.2. Kopiowanie baz danych z jednego serwera do innego (798)
- 14.6. Sprawdzanie i naprawianie tabel bazy danych (798)
- 14.6.1. Sprawdzanie tabel za pomocą zapytania CHECK TABLE (800)
- 14.6.2. Naprawa tabel za pomocą zapytania REPAIR TABLE (801)
- 14.6.3. Użycie narzędzia mysqlcheck do sprawdzania i naprawy tabel (801)
- 14.7. Użycie kopii zapasowej do przywrócenia danych (803)
- 14.7.1. Przywracanie całych baz danych (803)
- 14.7.2. Przywracanie poszczególnych tabel (804)
- 14.7.3. Ponowne wykonanie zapytań zapisanych w plikach binarnego dziennika zdarzeń (805)
- 14.7.4. Rozwiązywanie problemów związanych z automatyczną naprawą w InnoDB (807)
- 14.8. Konfiguracja serwerów replikacji (809)
- 14.8.1. Jak działa replikacja? (809)
- 14.8.2. Utworzenie relacji typu główny - podległy (811)
- 14.8.3. Formaty rejestracji zdarzeń w dzienniku binarnym (815)
- 14.8.4. Użycie serwera podległego replikacji do tworzenia kopii zapasowych (815)
DODATKI
Dodatek A. Oprogramowanie wymagane do użycia tej książki (819)
- A.1. Pobranie dystrybucji sampdb zawierającej przykładową bazę danych (819)
- A.2. Pobieranie serwera MySQL i powiązanego z nim oprogramowania (820)
- A.3. Instalacja MySQL (822)
- A.3.1. Tworzenie konta logowania dla użytkownika MySQL (823)
- A.3.2. Instalacja MySQL (823)
- A.3.3. Konfiguracja zmiennej środowiskowej PATH (824)
- A.3.4. Inicjalizacja katalogu danych i tabel uprawnień (825)
- A.3.5. Uruchamianie serwera (826)
- A.3.6. Inicjalizacja innych tabel systemowych (827)
- A.4. Informacje dotyczące instalacji Perl DBI (828)
- A.5. Informacje dotyczące instalacji PHP i PDO (829)
Dodatek B. Przewodnik po typach danych (831)
- B.1. Typy liczbowe (833)
- B.1.1. Typy liczb całkowitych (834)
- B.1.2. Typy liczb o stałej ilości cyfr (836)
- B.1.3. Typy liczb zmiennoprzecinkowych (836)
- B.1.4. Typ BIT (837)
- B.2. Typy tekstowe (838)
- B.2.1. Typy binarnych ciągów tekstowych (840)
- B.2.2. Typy niebinarnych ciągów tekstowych (842)
- B.2.3. Typy ENUM i SET (845)
- B.3. Typy daty i godziny (845)
Dodatek C. Przewodnik po operatorach i funkcjach (851)
- C.1. Operatory (852)
- C.1.1. Kolejność operatorów (852)
- C.1.2. Operatory grupowania (853)
- C.1.3. Operatory arytmetyczne (854)
- C.1.4. Operatory porównania (856)
- C.1.5. Operatory bitowe (861)
- C.1.6. Operatory logiczne (862)
- C.1.7. Operatory rzutowania (864)
- C.1.8. Operatory dopasowania wzorca (865)
- C.2. Funkcje (869)
- C.2.1. Funkcje porównań (870)
- C.2.2. Funkcje rzutowania (872)
- C.2.3. Funkcje liczbowe (873)
- C.2.4. Funkcje ciągu tekstowego (878)
- C.2.5. Funkcje daty i godziny (892)
- C.2.6. Funkcje podsumowań (907)
- C.2.7. Funkcje zapewnienia bezpieczeństwa oraz związane z kompresją (911)
- C.2.8. Funkcje nakładania blokad doradczych (915)
- C.2.9. Funkcje związane z adresem IP (917)
- C.2.10. Funkcje XML (919)
- C.2.11. Funkcje przestrzenne (920)
- C.2.12. Różne funkcje (920)
Dodatek D. Przewodnik po zmiennych systemowych, stanu i użytkownika (927)
- D.1. Zmienne systemowe (927)
- D.1.1. Zmienne systemowe InnoDB (972)
- D.2. Zmienne stanu (987)
- D.2.1. Zmienne stanu InnoDB (994)
- D.2.2. Zmienne stanu bufora zapytań (998)
- D.2.3. Zmienne stanu SSL (999)
- D.3. Zmienne zdefiniowane przez użytkownika (1000)
Dodatek E. Przewodnik po składni SQL (1003)
- E.1. Składnia zapytań SQL (zapytania niezłożone) (1004)
- E.2. Składnia zapytań SQL (zapytania złożone) (1103)
- E.2.1. Polecenia struktury kontrolnej (1103)
- E.2.2. Zapytania obsługi deklaracji (1105)
- E.2.3. Zapytania obsługi kursora (1107)
- E.2.4. Zapytania obsługi warunków (1108)
- E.3. Składnia komentarzy (1112)
Dodatek F. Przewodnik po programie SQL (1115)
- F.1. Wyświetlanie komunikatu pomocy programu (1116)
- F.2. Określanie opcji programu (1117)
- F.2.1. Opcje standardowe programu MySQL (1119)
- F.2.2. Pliki opcji (1124)
- F.2.3. Zmienne środowiskowe (1129)
- F.3. Narzędzie myisamchk (1130)
- F.3.1. Opcje standardowe obsługiwane przez myisamchk (1132)
- F.3.2. Opcje charakterystyczne dla myisamchk (1132)
- F.3.3. Zmienne narzędzia myisamchk (1136)
- F.4. mysql (1137)
- F.4.1. Opcje standardowe obsługiwane przez mysql (1139)
- F.4.2. Opcje charakterystyczne dla mysql (1140)
- F.4.3. Zmienne programu mysql (1145)
- F.4.4. Polecenia programu mysql (1145)
- F.4.5. Sekwencje definiujące znak zachęty mysql (1148)
- F.5. mysql.server (1150)
- F.5.1. Opcje obsługiwane przez mysql.server (1150)
- F.6. mysql_config (1150)
- F.6.1. Opcje...
Kategoria: | Bazy danych |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-8147-1 |
Rozmiar pliku: | 3,9 MB |