Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00738 010439 11035435 na godz. na dobę w sumie
MySQL. Podstawy - książka
MySQL. Podstawy - książka
Autor: , Liczba stron: 280
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-689-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych >> mysql - programowanie
Porównaj ceny (książka, ebook, audiobook).

Poznaj ogromne możliwości MySQL-a

'MySQL. Podstawy' to wprowadzenie do pracy z MySQL. Opisuje system od strony użytkowej -- przedstawia zasady tworzenia baz i tabel, definiowania indeksów i kluczy oraz stosowania języka SQL do wprowadzania danych i wybierania ich z tabel. Omawia również zagadnienia bardziej zaawansowane -- mechanizmy transakcji. Jeśli chcesz dowiedzieć się czegoś o administrowaniu bazą MySQL, znajdziesz tu również informacje na ten temat -- od sposobów definiowania uprawnień użytkowników aż po precyzyjne 'strojenie' bazy za pomocą odpowiednich opcji konfiguracyjnych, wykonywania kopii bazy oraz zabezpieczanie zgromadzonych w niej danych przed atakami z zewnątrz.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI MySQL. Podstawy KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG Autorzy: Luke Welling, Laura Thomson T³umaczenie: Marek Koszykowski ISBN: 83-7361-689-6 Tytu³ orygina³u: MySQL Tutorial Format: B5, stron: 280 TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Poznaj ogromne mo¿liwoġci MySQL-a „MySQL. Podstawy” to wprowadzenie do pracy z MySQL. Opisuje system od strony u¿ytkowej — przedstawia zasady tworzenia baz i tabel, definiowania indeksów i kluczy oraz stosowania jêzyka SQL do wprowadzania danych i wybierania ich z tabel. Omawia równie¿ zagadnienia bardziej zaawansowane — mechanizmy transakcji. Jeġli chcesz dowiedzieæ siê czegoġ o administrowaniu baz¹ MySQL, znajdziesz tu równie¿ informacje na ten temat — od sposobów definiowania uprawnieñ u¿ytkowników a¿ po precyzyjne „strojenie” bazy za pomoc¹ odpowiednich opcji konfiguracyjnych, wykonywania kopii bazy oraz zabezpieczanie zgromadzonych w niej danych przed atakami z zewn¹trz. • Instalacja MySQL • Struktura katalogów i plików w bazie MySQL • Tworzenie baz, tabel i indeksów • Operacje na danych z wykorzystaniem jêzyka SQL • Z³o¿one zapytania • Typy tabel i transakcje • Administrowanie kontami u¿ytkowników • Administrowanie baz¹ danych • Tworzenie kopii zapasowych baz danych • Zabezpieczanie danych • Optymalizacja serwera i baz danych Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Spis treści O Autorach ...................................................h................................... 11 Wprowadzenie ...................................................h.............................. 13 Część I Podstawy MySQL ...................................................d........21 Rozdział 1. Instalacja MySQL...................................................h.......................... 23 Instalacja w systemie Linux ...................................................w......................................... 24 Instalacja w systemie Windows...................................................w.................................... 24 Instalacja w systemie Mac OS X...................................................w.................................. 26 Konfiguracja systemu...................................................w...................................................w 27 Sprawdzanie, czy system działa ...................................................w................................... 28 Ustalanie hasła administratora...................................................w...................................... 29 Usuwanie kont anonimowych ...................................................w...................................... 30 Tworzenie konta do podstawowego użytku...................................................w.................. 30 Podsumowanie ...................................................w...................................................w.......... 30 Rozdział 2. Szybkie wprowadzenie ...................................................h.................. 33 Struktura katalogów MySQL..................................................w......................................... 33 Przegląd plików wykonywalnych...................................................w................................. 34 Przegląd interfejsów użytkownika...................................................w................................ 35 Szybkie wprowadzenie do programu MySQL Monitor...................................................w 36 Podsumowanie ...................................................w...................................................w.......... 38 Część II Projektowanie i tworzenie baz danych w MySQL...............41 Rozdział 3. Błyskawiczny kurs tworzenia bazy danych......................................... 43 Pojęcia i terminologia baz danych...................................................w................................ 43 Obiekty i relacje ...................................................w...................................................w.. 43 Relacje i tabele ...................................................w...................................................w.... 44 Kolumny lub atrybuty ...................................................w............................................ 45 Wiersze, rekordy i krotki...................................................w........................................ 45 Klucze ...................................................w...................................................w................. 45 Zależności funkcyjne ...................................................w............................................. 46 Schematy...................................................w...................................................w............. 46 6 Spis treści Zasady konstruowania bazy danych ...................................................w............................. 46 Redundancja (nadmiarowość danych) kontra strata danych...................................... 47 Anomalie...................................................w...................................................w............. 48 Wartości Null (puste) ...................................................w............................................. 48 Normalizacja ...................................................w...................................................w.............49 Pierwsza postać normalna bazy danych ...................................................w................. 49 Druga postać normalna bazy danych...................................................w...................... 51 Trzecia postać normalna bazy danych...................................................w.................... 52 Postać normalna Boyce-Codda ...................................................w.............................. 53 Kolejne postaci normalne...................................................w....................................... 53 Podsumowanie ...................................................w...................................................w.......... 54 Rozdział 4. Tworzenie baz danych, tabel i indeksów............................................ 57 Rozróżnianie wielkości liter ...................................................w......................................... 58 Identyfikatory w MySQL ...................................................w............................................. 59 Tworzenie bazy danych...................................................w................................................ 59 Wybieranie bazy danych ...................................................w.............................................. 60 Tworzenie tabel ...................................................w...................................................w......... 60 Przykład tworzenia tabeli ...................................................w....................................... 60 Instrukcja CREATE TABLE...................................................w.................................. 64 Typy kolumn i danych w MySQL ...................................................w................................ 68 Typy liczbowe...................................................w...................................................w..... 68 Typy łańcuchowe i tekstowe ...................................................w.................................. 69 Typy daty i czasu ...................................................w...................................................w 71 Tworzenie indeksów...................................................w...................................................w.. 71 Usuwanie baz danych, tabel i indeksów ...................................................w....................... 72 Zmiana istniejących struktur tabeli...................................................w............................... 73 Podsumowanie ...................................................w...................................................w.......... 74 Część III Używanie MySQL ...................................................d.........81 Rozdział 5. Wstawianie, usuwanie i aktualizacja danych..................................... 83 Instrukcja INSERT ...................................................w...................................................w.... 83 Instrukcja REPLACE ...................................................w...................................................w 87 Instrukcja DELETE ...................................................w...................................................w... 88 Instrukcja TRUNCATE...................................................w................................................ 90 Instrukcja UPDATE ...................................................w...................................................w.. 90 Wczytywanie danych za pomocą instrukcji LOAD DATA INFILE ............................... 91 Podsumowanie ...................................................w...................................................w.......... 93 Rozdział 6. Zapytania w MySQL ...................................................h...................... 99 Podstawowy wzorzec instrukcji SELECT...................................................w.................... 100 Proste zapytania...................................................w...................................................w....... 100 Wybieranie określonych kolumn...................................................w................................ 101 Adresowanie bezwzględne baz danych i tabel ...................................................w........... 101 Aliasy ...................................................w...................................................w................... ... 102 Używanie warunku WHERE do wybierania określonych wierszy................................ 103 Usuwanie duplikatów słowem kluczowym DISTINCT ................................................ 105 Używanie opcji GROUP BY...................................................w...................................... 106 Wybieranie określonych grup za pomocą opcji HAVING ............................................ 107 Sortowanie uzyskanych wyników przy użyciu ORDER BY ......................................... 108 Ograniczanie wyników wyszukiwania za pomocą opcji LIMIT ................................... 109 Podsumowanie ...................................................w...................................................w........ 110 Spis treści 7 Rozdział 7. Zapytania zaawansowane ...................................................h........... 115 Używanie złączeń do przeprowadzania zapytań w odniesieniu do wielu tabel ............. 115 Łączenie dwóch tabel ...................................................w........................................... 116 Łączenie wielu tabel...................................................w............................................. 117 Łączenie tabeli z samą sobą — samozłączenie ...................................................w.... 119 Różne typy złączeń...................................................w...................................................w.. 119 Podstawowe złączenie...................................................w.......................................... 120 Lewe i prawe złączenia ...................................................w........................................ 120 Podzapytania ...................................................w...................................................w........... 121 Używanie podzapytań tabel pochodnych ...................................................w............. 122 Używanie podzapytań jednowartościowych...................................................w......... 122 Używanie podzapytań z wyrażeniami logicznymi .................................................. 123 Opcje instrukcji SELECT...................................................w........................................... 125 Podsumowanie ...................................................w...................................................w........ 126 Rozdział 8. Używanie wbudowanych funkcji MySQL w połączeniu z instrukcją SELECT..................................................h. 131 Operatory...................................................w...................................................w................ . 132 Operatory arytmetyczne ...................................................w....................................... 132 Operatory porównania...................................................w.......................................... 132 Operatory logiczne ...................................................w............................................... 133 Funkcje sterowania przebiegiem wykonania ...................................................w.............. 135 Funkcje operujące na łańcuchach ...................................................w............................... 136 Funkcje działające na łańcuchach ...................................................w........................ 136 Funkcje porównujące łańcuchy ...................................................w............................ 137 Funkcje liczbowe...................................................w...................................................w..... 140 Funkcje daty i czasu ...................................................w...................................................w 141 Funkcje konwertowania...................................................w.............................................. 142 Inne funkcje...................................................w...................................................w.............143 Funkcje używane w klauzulach GROUP BY ...................................................w............. 143 Podsumowanie ...................................................w...................................................w........ 144 Część IV Typy tabel i transakcje w MySQL ..................................147 Rozdział 9. Typy tabel MySQL ...................................................h....................... 149 Tabele ISAM ...................................................w...................................................w........... 150 Tabele MyISAM ...................................................w...................................................w..... 151 Kompresowanie tabel MyISAM ...................................................w.......................... 153 Wyszukiwanie pełnotekstowe w tabelach MyISAM............................................... 153 Tabele InnoDB ...................................................w...................................................w........ 156 Tabele BerkeleyDB (BDB) ...................................................w........................................ 157 Tabele MERGE ...................................................w...................................................w....... 158 Tabele HEAP ...................................................w...................................................w.......... 159 Podsumowanie ...................................................w...................................................w........ 160 Rozdział 10. Transakcje w tabelach InnoDB ...................................................h.... 165 Co to są transakcje? ...................................................w...................................................w. 165 Używanie transakcji w MySQL ...................................................w................................. 168 Ustawianie trybu autocommit ...................................................w.............................. 169 Używanie blokad...................................................w.................................................. 170 Model transakcji tabel InnoDB ...................................................w.................................. 171 Zgodność z właściwościami ACID ...................................................w...................... 171 Izolowanie transakcji ...................................................w........................................... 172 Podsumowanie ...................................................w...................................................w........ 174 8 Spis treści Część V Administracja systemem MySQL ...................................177 Rozdział 11. Zarządzanie uprawnieniami użytkowników ...................................... 179 Tworzenie kont użytkowników za pomocą instrukcji GRANT oraz REVOKE ............ 179 Nadawanie uprawnień ...................................................w.......................................... 180 Poziomy uprawnień...................................................w...................................................w. 181 Uprawnienia użytkownika...................................................w.................................... 181 Uprawnienia administratora ...................................................w................................. 181 Sprawdzanie uprawnień ...................................................w............................................. 183 Instrukcja REVOKE...................................................w...................................................w 183 Tabele uprawnień ...................................................w...................................................w.... 184 Tabela user ...................................................w...................................................w........ 184 Tabela db...................................................w...................................................w........... 185 Tabela host ...................................................w...................................................w........ 186 Tabela tables_priv ...................................................w................................................ 186 Tabela columns_priv ...................................................w............................................ 187 Podsumowanie ...................................................w...................................................w........ 187 Rozdział 12. Konfiguracja MySQL...................................................h.................... 191 Opcje konfiguracyjne MySQL ...................................................w................................... 191 Opcje serwera mysqld ...................................................w.......................................... 194 Opcje konfiguracyjne InnoDB ...................................................w................................... 194 Opcje konfiguracyjne dla wielu serwerów ...................................................w................. 195 Konfiguracja zestawu znaków narodowych ...................................................w............... 196 Podsumowanie ...................................................w...................................................w........ 197 Rozdział 13. Administrowanie bazą danych ...................................................h..... 201 Uruchamianie i wyłączanie serwera MySQL ...................................................w............. 201 Uzyskiwanie informacji o serwerze i bazach danych ...................................................w. 202 Uzyskiwanie informacji o bazie danych...................................................w............... 202 Wyświetlanie informacji o stanie serwera oraz o wartościach jego zmiennych ...... 204 Wyświetlanie informacji o procesach ...................................................w.................. 205 Wyświetlanie informacji o przyznanych uprawnieniach ........................................... 205 Wyświetlanie informacji o tabelach ...................................................w..................... 206 Konfigurowanie zmiennych ...................................................w....................................... 206 Likwidowanie wątków ...................................................w............................................... 207 Opróżnianie buforów...................................................w.................................................. 207 Pliki dzienników...................................................w...................................................w...... 207 Podsumowanie wiadomości o opcjach skryptu mysqladmin................................... 208 Podsumowanie ...................................................w...................................................w........ 209 Rozdział 14. Kopie zapasowe i odzyskiwanie baz danych ...................................... 211 Tworzenie kopii zapasowych i odzyskiwanie baz danych............................................. 211 Tworzenie kopii zapasowych i odzyskiwanie baz danych przy użyciu skryptu mysqldump...................................................w........................ 212 Tworzenie kopii zapasowych i odzyskiwanie baz danych przy użyciu skryptu mysqlhotcopy ...................................................w.................... 216 Ręczne tworzenie kopii zapasowych i odzyskiwanie baz danych ........................... 217 Tworzenie kopii zapasowych i odzyskiwanie baz danych przy użyciu instrukcji BACKUP TABLE oraz RESTORE TABLE..................... 218 Przywracanie bazy danych z dziennika binarnego .................................................. 218 Spis treści 9 Testowanie kopii zapasowej...................................................w....................................... 219 Sprawdzanie i naprawianie tabel ...................................................w................................ 219 Sprawdzanie i naprawianie tabel przy użyciu poleceń CHECK i REPAIR............. 220 Sprawdzanie i naprawianie tabel przy użyciu skryptu myisamchk ......................... 221 Sprawdzanie i naprawianie tabel przy użyciu skryptu mysqlcheck......................... 221 Podsumowanie ...................................................w...................................................w........ 222 Rozdział 15. Zabezpieczanie systemu MySQL ...................................................h.. 225 Sposób działania systemu uprawnień w praktyce...................................................w....... 225 Bezpieczeństwo kont...................................................w.................................................. 226 Wprowadzenie hasła dla konta root ...................................................w..................... 226 Usuwanie kont anonimowych ...................................................w.............................. 226 Niebezpieczne uprawnienia...................................................w.................................. 227 Hasła i szyfrowanie ...................................................w.............................................. 227 Bezpieczeństwo plików MySQL ...................................................w................................ 228 Nie uruchamiaj mysqld jako administrator ...................................................w.......... 228 Dostęp i uprawnienia w systemie operacyjnym ...................................................w... 228 Filtrowanie danych użytkownika...................................................w................................ 229 Inne wskazówki...................................................w...................................................w....... 229 Połączenia SSL ...................................................w...................................................w. 229 Bezpieczeństwo fizyczne systemu ...................................................w....................... 230 Podsumowanie ...................................................w...................................................w........ 230 Rozdział 16. Replikacja bazy danych...................................................h............... 233 Podstawy replikacji ...................................................w...................................................w. 233 Uwagi na temat wersji...................................................w.......................................... 235 Konfiguracja systemu dla replikacji ...................................................w........................... 235 Tworzenie użytkownika replikacji ...................................................w....................... 235 Sprawdzenie konfiguracji serwera nadrzędnego ...................................................w.. 236 Tworzenie obrazu bazy danych serwera nadrzędnego ............................................ 237 Konfigurowanie serwerów podrzędnych...................................................w.............. 238 Uruchamianie serwerów podrzędnych ...................................................w................. 239 Topologie zaawansowane...................................................w........................................... 240 Przyszłość replikacji...................................................w...................................................w 241 Podsumowanie ...................................................w...................................................w........ 241 Część VI Optymalizacja MySQL ...................................................d245 Rozdział 17. Optymalizacja konfiguracji serwera MySQL ..................................... 247 Kompilowanie w celu uzyskania większej szybkości działania serwera ....................... 247 Dostrajanie parametrów serwera ...................................................w................................ 248 Dostosowywanie innych czynników ...................................................w.......................... 250 Podsumowanie ...................................................w...................................................w........ 250 Rozdział 18. Optymalizacja bazy danych...................................................h.......... 253 Co działa wolno w bazie danych MySQL? ...................................................w................ 253 Podejmowanie właściwych wyborów przy projektowaniu bazy danych ....................... 254 Tworzenie indeksów w celu optymalizacji...................................................w................. 255 Instrukcja ANALYZE TABLE ...................................................w.................................. 256 Instrukcja OPTIMIZE TABLE...................................................w................................... 256 Podsumowanie ...................................................w...................................................w........ 257 10 Spis treści Rozdział 19. Optymalizacja zapytań ...................................................h................ 261 Znajdowanie wolno realizowanych zapytań...................................................w............... 261 Przeprowadzanie testów wzorcowych ...................................................w........................ 262 Korzystanie z dziennika wolno realizowanych zapytań ................................................ 263 Używanie instrukcji EXPLAIN, w celu sprawdzenia, w jaki sposób zapytania są przeprowadzane ...................................................w............ 263 Wbudowana optymalizacja zapytań MySQL ...................................................w............. 266 Wskazówki optymalizacyjne...................................................w...................................... 266 Podsumowanie ...................................................w...................................................w........ 267 Dodatki ...................................................d...................................269 Skorowidz...................................................h................................... 271 Rozdział 5. Wstawianie, usuwanie i aktualizacja danych W tym rozdziale zobaczymy, w jaki sposób wstawiać i zmieniać dane w bazie danych MySQL przy użyciu instrukcji +05 46, . 6 oraz 72 #6 . Omówimy następujące zagadnienia:  Używanie instrukcji +05 46  Używanie instrukcji . 6  Używanie instrukcji 72 #6  Wczytywanie danych za pomocą instrukcji .1#  #6#+0(+.  Korzystanie z instrukcji 4 2.# i 6470 #6 Przeszliśmy teraz do stosowania języka wybierania i manipulowania danymi (DML). Gdy nauczymy się wstawiać dane do baz danych, w następnych kilku rozdziałach po- znamy różne sposoby pobierania danych z tych baz. Instrukcja INSERT Instrukcja +05 46 jest używana do wstawiania wierszy do tabeli. Zacznijmy od przykładu. Jak już wcześniej mówiliśmy, instrukcje można wpisywać bezpośrednio w programie MySQL Monitor lub zapisywać je w pliku. Przykłady instrukcji KPUGTV są pokazane w listingu 5.1. Listing 5.1. pracownik_dane.sql WUGRTCEQYPKM FGNGVGHTQOY[FKCN 84 Rozdział 5. ♦ Wstawianie, usuwanie i aktualizacja danych KPUGTVKPVQY[FKCNXCNWGU  (KPCPUG   $CFCPKCK4QYÎL  07.. -CFT[  07.. /CTMGVKPI  FGNGVGHTQORTCEQYPKM KPUGTVKPVQRTCEQYPKMXCNWGU  YC0QYCEMC  RTQITCOKUVC    $CTVQU-QYCNUMK  CFOKPKUVTCVQTDCFCP[EJ    #PFTGL2NCVGT  RTQITCOKUVC    $CTDCTC GVT[M  CFOKPKUVTCVQTU[UVGOÎY   FGNGVGHTQOWOKGLGVPQUEK2TCEQYPKMC KPUGTVKPVQWOKGLGVPQUEK2TCEQYPKMCXCNWGU    2GTN   ,CXC   $   8$   ,CXC   06   .KPWZ  FGNGVGHTQOMNKGPV KPUGTVKPVQMNKGPVXCNWGU 07.. 6GNGMQO5#  WN0QYC9CTUCYC  ,CP0QYCM    07.. $CPM  WN$TQQYC9CTUCYC  .GEJ6WTUMK    FGNGVGHTQORT[FKCN KPUGTVKPVQRT[FKCNXCNWGU     Widzimy, że zanim wstawimy dane do każdej tabeli, używamy polecenia . 6 . Nie jest to konieczne, ale w ten sposób zostaną usunięte ewentualne dane próbne, które mogły już zostać umieszczone w tabeli. Do instrukcji . 6 przejdziemy w dalszym podrozdziale. Zauważmy również, że wstawiliśmy te same dane, których używaliśmy w przykładach z rozdziału 3., „Błyskawiczny kurs tworzenia bazy danych”. Dodaliśmy też nowe wiersze. Wszystkie instrukcje +05 46 są bardzo podobne. Spójrzmy na pierwszą, aby zobaczyć, jak działa. KPUGTVKPVQY[FKCNXCNWGU  (KPCPUG   $CFCPKCK4QYÎL  07.. -CFT[  07.. /CTMGVKPI  Tabelę, do której chcemy wstawić dane, określamy w pierwszym wierszu — w tym przykładzie jest to tabela Y[FKCN. Umieszczamy w niej cztery wiersze. Jak pamiętamy, tabela Y[FKCN miała dwie kolumny — + Y[FKCNW i PCYC (można sprawdzić to samo- dzielnie, używając polecenia FGUETKDGY[FKCN). Instrukcja INSERT 85 W pierwszych dwóch wierszach określiliśmy wartość identyfikatora wydziału, której chcieliśmy użyć. Spójrzmy jeszcze raz na definicję + Y[FKCNW. Przypomnijmy, że w ostatnim rozdziale deklarowaliśmy identyfikator wydziału jako: + Y[FKCNWKPVPQVPWNNCWVQAKPETGOGPVRTKOCT[MG[ Ponieważ jest to kolumna CWVQAKPETGOGPV, możemy ustalić wartość lub pozwolić, aby MySQL wybrał ją za nas (zwykle w takich kolumnach nie podaje się liczby samemu, ale mogą istnieć sytuacje takie jak ta, w której mamy już istniejącą wartość do zasto- sowania). W wierszach z wydziałami -CFT[ oraz $CFCPKCK4QYÎL pozostawiliśmy kolumnę + åY[FKCNW pustą (ma wartość 07..). Zadziała wówczas opcja CWVQAKPETGOGPV, powo- dując przydzielenie odpowiednich wartości. Zobaczmy, jaki będzie wynik działania instrukcji +05 46. Jeżeli przejrzymy różne instrukcje +05 46 z przykładu, zobaczymy, że dane typu łańcu- cha znakowego i daty ujęliśmy w apostrofy, na przykład $CFCPKCK4QYÎL . Z kolei danych typu liczbowego nie należy ujmować w apostrofy. A co powinniśmy zrobić, gdy dane, które znajdują się między apostrofami, same zawie- rają apostrofy? Odpowiedzią jest oznaczenie apostrofów znakami sterującymi. Mówiąc prosto, powinniśmy wpisać lewy ukośnik ( ) przed znakiem apostrofu, na przykład 1 .GCT[ . Oczywiście rodzi się następne pytanie — Co zrobić, jeżeli chcemy wstawić lewy uko- śnik jako zwykły znak, a nie znak o specjalnym znaczeniu? Musimy uciec od niego w ten sam sposób — zamiast jednego ukośnika, powinniśmy wpisać dwa ( . Dane z bazy danych pobieramy przy użyciu instrukcji 5 . 6. Tę instrukcję omówimy obszernie w kolejnych kilku rozdziałach. Teraz wystarczy, abyśmy wiedzieli, że wpisanie UGNGEV HTQOPCYCVCD zwróci wszystkie dane obecnie przechowywane w tabeli. Jeżeli wpiszemy: UGNGEV HTQOY[FKCN powinien pojawić się następujący wynik:   ^+ Y[FKCNW^PCYC^   ^^(KPCPUG^ ^^$CFCPKCK4QYÎL^ ^^-CFT[^ ^^/CTMGVKPI^   TQYUKPUGV UGE Możemy zauważyć, że wynikiem działania opcji CWVQAKPETGOGPV jest wartość o jeden większa niż największa wartość w kolumnie. 86 Rozdział 5. ♦ Wstawianie, usuwanie i aktualizacja danych Ogólny wzorzec instrukcji +05 46 według podręcznika MySQL jest następujący: +05 46=.19A24+14+6;^ .#; ?=+)014 ? =+061?PCYCAVCD= PCYCAMQNŗ ? 8#.7 5 Y[TCGPKG^ (#7.6 ŗ  ŗ ŗ =10 72.+ #6 - ;72 #6 PCYCAMQNY[TCGPKGŗ? NWD+05 46==.19A24+14+6;^ .#; ?=+)014 ? =+061?PCYCAVCD= PCYCAMQNŗ ? 5 . 6ŗ NWD+05 46==.19A24+14+6;^ .#; ?=+)014 ? =+061?PCYCAVCD 5 6PCYCAMQN Y[TCGPKG^ (#7.6 ŗ =10 72.+ #6 - ;72 #6 PCYCAMQNY[TCGPKGŗ? Wszystkie przykłady, które widzieliśmy do tej pory, są zgodne z pierwszym wzorcem. Zauważmy, że słowo kluczowe +061 jest opcjonalne. Moglibyśmy je opuścić i zacząć instrukcję od KPUGTVRTCEQYPKMXCNWGU, ale uważamy, że dzięki słowu +061 powstała składnia jest nieco łatwiejsza do zrozumienia dla osób znających angielski. Korzystając z pierwszego wzorca, musimy podać wszystkie wartości dla każdej kolumny w każdym wierszu w tej samej kolejności, w jakiej kolumny są umieszczone w tabeli. Musimy, na przykład, najpierw podać + Y[FKCNW, a potem nazwę, ponieważ taka jest struktura tabeli Y[FKCN. Jak pokazano, ten wzorzec pozwala wstawić wiele wierszy do tabeli za pomocą pojedynczej instrukcji +05 46. Drugi wzorzec kończy się instrukcją 5 . 6. Zamiast wstawiania wartości ręcznie, umożliwia nam pobranie danych z innej tabeli lub tabel bazy danych i zachowanie tych wartości w tabeli. Trzeci wzorzec pozwala sprecyzować, do których kolumn mają być wstawiane dane. Przykład użycia instrukcji +05 46, zgodnej z tym wzorcem, jest następujący: KPUGTVKPVQY[FKCN UGVPCYC CTæFCPKGCMV[YCOK  W instrukcji zgodnej z tym wzorcem można wstawić za jednym razem tylko jeden wiersz, ale nie jest konieczne podawanie wartości dla wszystkich kolumn. W naszym przykładzie sprecyzowaliśmy tylko wartość dla pola PCYC. Wszystkie niepodane war- tości przyjmą albo wartość domyślną, jeżeli została określona, albo wartość 07... W tym przykładzie + Y[FKCNW przyjmie wartość 07.., co sprawi, że zadziała magia opcji CWVQA KPETGOGPV i wygenerowana zostanie wartość dla identyfikatora wydziału (można to sprawdzić, wpisując jeszcze raz UGNGEV HTQOY[FKCN). W instrukcji +05 46 występuje wiele klauzul opcjonalnych. Przejrzyjmy je krótko, aby zorientować się, do czego służą:  Możemy zastosować opcje .1924+14+6; lub .#; . Powodują one, że wstawianie będzie opóźnione do momentu, aż żaden klient nie będzie odczytywał tabeli. Różnica między nimi jest taka, że jeżeli użyjemy opcji .19 24+14+6;, możemy być zmuszeni odczekać pewien czas, zanim będziemy mogli wprowadzić następne zapytanie. Przy opcji .#; otrzymamy komunikat 1- Instrukcja REPLACE 87 i będziemy mogli kontynuować wprowadzanie zapytań. Jednak powinniśmy pamiętać, że wstawienie zostanie wykonane, dopiero gdy tabela przestanie być używana.  Opcja +)014 jest przydatna zwłaszcza przy wstawianiu wielu wierszy. Zazwyczaj gdy jeden z wierszy, który próbujemy dodać, koliduje z istniejącym kluczem podstawowym lub wartością unikalną, wystąpi błąd i wstawianie zostanie anulowane. Jeżeli użyjemy opcji +)014 , błąd zostanie zignorowany, a wstawianie będzie kontynuowane i nastąpi próba dodania kolejnego wiersza.   Możemy sprawić, aby kolumnie przypisana była wartość domyślna, używając opcji (#7.6 do określenia tej wartości. Opcja 10 72.+ #6 - ;72 #6 pozwala poradzić sobie z kolizjami kluczy podstawowych i wartości unikalnych. Po tym wyrażeniu wpisujemy instrukcję WRFCVG, której możemy użyć do takiej zmiany wartości unikalnej (lub klucza podstawowego) obecnej w tabeli, aby nie kolidowała ona już z wstawianym wierszem. Poniższy krótki przykład ilustruje typowe użycie opcji 10 72.+ #6 - ; 72 #6 : ETGCVGVCDNGQUVTGGPKG + RTCEQYPKMCKPVRTKOCT[MG[PQVPWNNTGHGTGPEGURTCEQYPKM + RTCEQYPKMC  NKEPKMKPVFGHCWNV V[RG+PPQ $ KPUGTVKPVQQUVTGGPKG + RTCEQYPKMC XCNWGU  QPFWRNKECVGMG[WRFCVGNKEPKMNKEPKM  Opcja ta jest przydatna nie tylko w sytuacjach związanych z rekordami unikalnymi, ale również gdy chcemy wykonać jakieś działanie, takie jak zwiększenie licznika dla nieunikalnych zdarzeń. Dobrym przykładem przydatności tej opcji jest dowolny rodzaj logowania. Jednak aby pozostać przy przykładzie bazy danych RTCEQYPKM, w tabeli QUVTGGPKG będziemy przechowywać identyfikatory pracowników, którzy otrzymali ostrzeżenie. Aby nanosić otrzymane ostrzeżenia, uruchamiamy powyższą instrukcję KPUGTV. Ponieważ wartość domyślna pola NKEPKM jest równa , a przy wstawianiu nie podajemy innej jego wartości, dlatego dla każdego pracownika wartość tego pola przy pierwszym wstawieniu będzie równa . Kolejne uruchomienia instrukcji KPUGTV dla tego samego + RTCEQYPKMC spowodują włączanie opcji 10 72.+ #6 - ;72 #6 , a przez to zwiększanie licznika. Instrukcja REPLACE Instrukcja 4 2.# działa podobnie jak instrukcja +05 46. Różni się od niej wyłącznie tym, że gdy przy wstawianiu wartości pojawi się kolizja klucza, nowy wiersz zastąpi istniejący. 88 Rozdział 5. ♦ Wstawianie, usuwanie i aktualizacja danych Ogólny wzorzec instrukcji INSERT według podręcznika MySQL jest następujący: 4 2.# =.19A24+14+6;^ .#; ? =+061?PCYCAVCD= PCYCAMQNŗ ? 8#.7 5 Y[TCGPKG^ (#7.6 ŗ  ŗ ŗ NWD4 2.# ==.19A24+14+6;^ .#; ? =+061?PCYCAVCD= PCYCAMQNŗ ? 5 . 6ŗ NWD4 2.# ==.19A24+14+6;^ .#; ? =+061?PCYCAVCD 5 6PCYCAMQN Y[TCGPKG^ (#7.6 ŗ Podobieństwo do instrukcji +05 46 powinno być oczywiste. Instrukcja DELETE Instrukcja SQL . 6 pozwala usunąć wiersze z tabeli. W listingu 5.1 na przykład występuje taka instrukcja: FGNGVGHTQOY[FKCN W tym przykładzie instrukcja FGNGVG spowoduje usunięcie wszystkich wierszy z tabeli Y[FKCN. Możemy też podać, które wiersze mają zostać usunięte, używając opcji 9* 4 , na przykład: FGNGVGHTQOY[FKCNYJGTGPCYC CTæFCPKGCMV[YCOK  Zostaną wówczas usunięte tylko te wiersze, które spełniają kryteria zawarte w klauzuli 9* 4 . W tym przykładzie zostaną usunięte tylko te wiersze, dla których nazwa wydziału to CTæFCPKGCMV[YCOK . Rzadko są usuwane wszystkie wiersze tabeli. Jednak ponieważ jest to najkrótsza forma instrukcji FGNGVG, może się czasem zdarzyć, że przez przypadek wpiszemy instrukcję FGNGVG bez klauzuli 9* 4 . Możemy zaoszczędzić sobie takich problemów, włączając opcję UCHGWRFCVGU lub KCOCFWOO[ w wierszu polecenia klienta mysql (jak to zostało omówione w rozdziale 2., „Szybkie wprowadzenie”.) Te opcje zapobiegają usunięciu (lub aktualizacji) wierszy bez podania ograniczenia klucza w warunku 9* 4 . Oznacza to, że należy uściślić zamiar usunięcia wierszy przez podanie określonej war- tości klucza. W podręczniku MySQL ogólny wzorzec instrukcji . 6 jest następujący: . 6 =.19A24+14+6;?=37+ -?(41/PCYCAVCDGNK =9* 4 FGHKPKELCAYJGTG? =14 4$;ŗ? =.+/+6YKGTUG? NWD Instrukcja DELETE 89 . 6 =.19A24+14+6;?=37+ -?PCYCAVCDGNK= ?=PCYCAVCDGNK= ?ŗ? (41/QFYQNCPKGFQVCDGNK =9* 4 FGHKPKELCAYJGTG? NWD . 6 =.19A24+14+6;?=37+ -? (41/PCYCAVCDGNK= ?=PCYCAVCDGNK= ?ŗ? 75+0)QFYQNCPKGFQVCDGNK =9* 4 FGHKPKELCAYJGTG? Do tej pory używaliśmy pierwszego wzorca instrukcji . 6 . Pozostałe dwa wzorce są zaprojektowane w celu umożliwienia usunięcia wierszy z jednej lub większej ilości tabel przy wykorzystaniu odwołania do innych tabel, na przykład: FGNGVGRTCEQYPKMWOKGLGVPQUEK2TCEQYPKMC HTQORTCEQYPKMWOKGLGVPQUEK2TCEQYPKMCY[FKCN YJGTGRTCEQYPKM+ RTCEQYPKMCWOKGLGVPQUEK2TCEQYPKMC+ RTCEQYPKMC CPFRTCEQYPKM+ Y[FKCNWY[FKCN+ Y[FKCNW CPFY[FKCNPCYC (KPCPUG  W tym przykładzie usunięto wszystkich pracowników, którzy pracują w wydziale (KP åCPUG i usunięto wszystkie rekordy zawierające umiejętności tych pracowników. Za- uważmy, że wiersze są usuwane z tabel RTCEQYPKM i WOKGLGVPQUEK2TCEQYPKMC (tabele wymienione w początkowej części klauzuli FGNGVG), ale nie Y[FKCN (ponieważ ta tabela jest wymieniona tylko w klauzuli HTQO). Z tabel wymienionych w początkowej klauzuli FGNGVG zostaną usunięte wiersze. Nato- miast tabele wymienione w wyrażeniu HTQO zostaną użyte do wyszukania danych i nie zostaną z nich usunięte wiersze, jeżeli nie wymieniono ich w klauzuli FGNGVG. Zauważmy, że przykład ten jest dosyć złożony, ponieważ wykorzystane są w nim trzy tabele! Tylu tabel jednak potrzebowaliśmy do zilustrowania działania instrukcji FGNGVG. Zalecamy ponowne przejrzenie klauzuli 9* 4 po przeczytaniu informacji na temat złączeń w rozdziale 7., „Zapytania zaawansowane”. Użyliśmy kilku nowych elementów w warunku 9* 4 — operatora CPF oraz zapisu VCDGNCMQNWOPC. Zastosowaliśmy operator CPF, aby połączyć nasze warunki. #PF jest to prosty operator logiczny I. Użyliśmy również zapisu RTCEQYPKM+ RTCEQYPKMC. Do obu tych zagadnień powrócimy dokładniej w następnych dwóch rozdziałach. Trzeci wzorzec . 6 jest podobny do drugiego. Różni się od niego tym, że usuwamy tylko tabele wymienione w wyrażeniu (41/, odwołując się do tabel z wyrażenia 75+0), na przykład: FGNGVGHTQORTCEQYPKMWOKGLGVPQUEK2TCEQYPKMC WUKPIRTCEQYPKMWOKGLGVPQUEK2TCEQYPKMCY[FKCN YJGTGRTCEQYPKM+ RTCEQYPKMCWOKGLGVPQUEK2TCEQYPKMC+ RTCEQYPKMC CPFRTCEQYPKM+ Y[FKCNWY[FKCN+ Y[FKCNW CPFY[FKCNPCYC (KPCPUG  Ta instrukcja oznacza to samo co poprzednia, inna jest tylko jej składnia. 90 Rozdział 5. ♦ Wstawianie, usuwanie i aktualizacja danych W ogólnym wzorcu instrukcji . 6 występują też inne klauzule opcjonalne:  Klauzula .19A24+14+6; działa w taki sam sposób, jak w instrukcji +05 46.  Podanie opcji 37+ - może przyspieszyć działanie instrukcji . 6 , ponieważ wówczas nie będzie wykonywana standardowa obsługa indeksów w czasie usuwania danych z tabeli.  Klauzula 14 4$; ustala kolejność usuwania wierszy. Jest ona najbardziej przydatna w połączeniu z klauzulą .+/+6 — na przykład, możemy chcieć usunąć z tabeli n najstarszych wierszy.  Klauzula .+/+6 pozwala nam podać maksymalną liczbę wierszy tabeli, które mogą zostać usunięte przez instrukcję . 6 . Klauzula ta jest najbardziej funkcjonalna w połączeniu z wyrażeniem 14 4$;; chroni także przed usunięciem zbyt wielu wierszy. Instrukcja TRUNCATE Instrukcja 6470 #6 umożliwia nam usunięcie wszystkich wierszy w tabeli, na przykład: 6470 #6 6#$. RTCEQYPKM To zapytanie usunęłoby wszystkich pracowników z tabeli pracownik. Jest ono szyb- sze niż instrukcja . 6 , ponieważ powoduje usunięcie tabeli i utworzenie nowej — pustej. Należy pamiętać o tym, że 6470 #6 nie zapewnia bezpieczeństwa właściwego dla transakcji. Instrukcja UPDATE Możemy użyć instrukcji SQL 72 #6 , aby zmienić wiersze przechowywane w bazie danych. Na przykład, wyobraźmy sobie, że jeden z naszych pracowników zmienia stanowisko: WRFCVGRTCEQYPKM UGVUVCPQYKUMQ CFOKPKUVTCVQTDCFCP[EJ YJGTG+ RTCEQYPKMC   To wyrażenie zmienia wartość kolumny stanowisko dla pracownika o identyfikatorze 6651. Ogólny wzorzec instrukcji 72 #6 według podręcznika MySQL jest następujący: 72 #6 =.19A24+14+6;?=+)014 ?PCYCAVCD 5 6PCYCAMQNY[TCGPKG=PCYCAMQNY[TCGPKGŗ? =9* 4 FGHKPKELCAYJGTG? =14 4$;ŗ? =.+/+6YKGTUG? Wczytywanie danych za pomocą instrukcji LOAD DATA INFILE 91 NWD 72 #6 =.19A24+14+6;?=+)014 ?PCYCAVCD=PCYCAVCDŗ? 5 6PCYCAMQNY[TCGPKG=PCYCAMQNY[TCGPKGŗ? =9* 4 FGHKPKELCAYJGTG? Instrukcja 72 #6 w wielu względach jest podobna do instrukcji . 6 . Możemy podać opcjonalną klauzulę 9* 4 , aby aktualizować określone wiersze, lub nie podawać jej, aby uaktualnić wszystkie wiersze. Tutaj również zapomnienie dodania klauzuli 9* 4 może mieć nieprzyjemne skutki — pamiętam jeden projekt, w którym mój nierozsądny kolega wpisał między wierszami: WRFCVGWUGT UGVRCUUYQTF VGUV  Dlatego podkreślamy użyteczność opcji KCOCFWOO[, szczególnie gdy musimy pracować z nieuważnymi osobami. Druga z podanych wersji instrukcji 72 #6 służy do aktualizacji wielu tabel. Działa po- dobnie do omawianej wcześniej instrukcji . 6 , usuwającej wiersze z wielu tabel. Zauważmy, że tylko kolumny wymienione w klauzuli 5 6 będą aktualizowane. Wszystkie pozostałe klauzule instrukcji 72 #6 analizowaliśmy wcześniej. Opcje .19A 24+14+6; oraz +)014 działają w taki sam sposób, jak w instrukcji +05 46. Klauzule 14 4$; oraz .+/+6 działają tak, jak w instrukcji . 6 . Wczytywanie danych za pomocą instrukcji LOAD DATA INFILE Polecenie .1#  #6#+0(+. pozwala wprowadzić dane z pliku tekstowego do poje- dynczej tabeli bez konieczności pisania instrukcji +05 46. W listingu 5.2 pokazano zawartość pliku, w którym znajdują się informacje na temat wydziałów. Listing 5.2. wydzial_infile.txt (KPCPUG $CFCPKCKTQYQL 07..-CFT[ 07../CTMGVKPI Plik ma domyślny format dla instrukcji .1#  #6#+0(+. — każdy rekord znajduje się w oddzielnym wierszu, a wartości kolumn są oddzielone od siebie tabulatorem (format wczytywania danych można konfigurować; za chwilę zobaczymy, jak się to robi). Możemy pobrać dane do tabeli wydzial za pomocą następującej instrukcji .1#  #6# +0(+. : 92 Rozdział 5. ♦ Wstawianie, usuwanie i aktualizacja danych NQCFFCVCNQECNKPHKNG Y[FKCNAKPHKNGVZV KPVQVCDNGY[FKCN Ta instrukcja jest szczególnie przydatna przy konwertowaniu danych z innego formatu bazy danych, arkusza kalkulacyjnego lub pliku CSV (ang. comma-separated values). Instrukcja .1#  #6#+0(+. wymaga uprawnienia FILE; więcej informacji na temat uprawnień znajduje się w rozdziale 11., „Zarządzanie uprawnieniami użytkowników” — w razie pojawienia się problemów podczas wykonania tego polecenia należy zajrzeć do tego rozdziału. Z istotnych względów bezpieczeństwa uprawnienie to jest często ograniczane, aby nie pozwolić użytkownikom na wczytywanie na przykład pliku /etc/ passwd. Ogólny wzorzec instrukcji .1#  #6#+0(+. jest następujący: .1#  #6#=.19A24+14+6;^ 10 744 06?=.1 #.?+0(+.  PCYC2NKMWVZV =4 2.# ^+)014 ? +0616#$. PCYCAVCD =(+ . 5 =6 4/+0#6 $; V ? ==126+10#..;? 0 .15 $; ?  5 #2 $; ? ? =.+0 56 4/+0#6 $; P ? =+)014 NKEDC.+0 5? = PCYCAMQNŗ ? Klauzule opcjonalne to:  Opcja .1924+14+6; działa w ten sam sposób, jak w instrukcji +05 46, czyli jej działanie jest wstrzymywane do momentu, w którym inni klienci nie zakończą odczytywania tabeli. Z kolei opcja 10 744 06 pozwala innym klientom odczytywać tabelę w czasie wstawiania danych.  W przykładzie podaliśmy opcjonalne słowo kluczowe .1 #., oznaczające, że plik z danymi jest na komputerze klienta. Jeżeli nie zostanie ono dodane, plik będzie szukany przez MySQL na serwerze.  Jeżeli klucze kolidują w czasie wstawiania danych, opcje 4 2.# i +)014 dostarczają dwóch metod do ich obsługi. Wstawienie 4 2.# oznacza, że istniejący wiersz zostanie zamieniony na nowy, +)014 — że istniejący wiersz pozostanie w tabeli.  Klauzule (+ . 5 i .+0 5 precyzują, w jaki sposób ułożone są dane w pliku wczytywanym. Domyślnie dla instrukcji .1#  #6#+0(+. jest przyjęte, że każdy rekord znajduje się w nowym wierszu, natomiast kolumny są rozdzielone tabulatorami. Możemy także ująć wartości kolumn w apostrofy oraz zastosować znak lewego ukośnika, aby uniknąć ewentualnych problemów, które mogłyby zostać wywołane przez znaki specjalne (takie jak apostrofy).  Klauzula +)014 NKEDC.+0 5 stanowi informację, że należy ignorować określoną liczbę (NKEDC) pierwszych wierszy w pliku wczytywanym.  Ostatnia klauzula pozwala wczytać dane tylko do niektórych kolumn tabeli. Podsumowanie 93 Popularny format pobierania danych to CSV lub inaczej format pliku z wartościami oddzielonymi przecinkami. Wiele programów potrafi zapisywać i odczytywać pliki tego typu, jednym z przykładów jest Microsoft Excel1. W listingu 5.3 pokazano plik CSV zapisany w arkuszu Excel. Listing 5.3. nowi_programisci.csv 0CYKUMQ5VCPQYKUMQ+ Y[FKCNW ,WNKC.GPKPRTQITCOKUVC CTKWU0QYCMRTQITCOKUVC 6KO1 .GCT[RTQITCOKUVC Możemy wczytać te dane do tabeli RTCEQYPKM za pomocą następującego zapytania: NQCFFCVCKPHKNG G PQYKARTQITCOKUEKEUX KPVQVCDNGRTCEQYPKM HKGNFUVGTOKPCVGFD[  NKPGUVGTOKPCVGFD[ P KIPQTGNKPGU PCYKUMQUVCPQYKUMQ+ Y[FKCNW  Jak widać, użyliśmy więcej opcji niż w przykładzie z danymi w formacie domyślnym. Warto omówić kilka z tych elementów:      Ponieważ zastosowaliśmy ścieżkę używaną w systemie Windows (DOS), która zawiera lewy ukośnik, powinniśmy sprawić, aby nie został on źle zinterpretowany. Dlatego teraz nasza ścieżka ma postać: G PQYKARTQITCOKUEKEUX . Prawdopodobnie zapytanie zadziała bez podania znaku oddzielającego kolumny w pliku CSV, jednak lepiej jest go podać. W tym przykładzie nie musimy podawać znaku oddzielającego rekordy, mimo to wpisaliśmy go (znak nowego wiersza). Plik ma nagłówek; pierwsze dwa wiersze nie zawierają danych, dlatego powinny być zignorowane. Dane w pliku nie zawierają + RTCEQYPKMC, dlatego aby przypisać trzy kolumny do czterech kolumn w bazie danych, musieliśmy sprecyzować, do których kolumn (w kolejności) dane zostaną przyporządkowane. W tym przykładzie ustaliliśmy kolumny, wpisując PCYKUMQUVCPQYKUMQ+ Y[FKCNW . Podsumowanie W tym rozdziale poznaliśmy sposoby wstawiania, usuwania i aktualizacji danych tabeli bazy danych. i 1 W polskiej wersji językowej Excel zapisuje plik CSV jako plik wartości rozdzielonych średnikami (chociaż nazywa go plikiem wartości rozdzielonych przecinkami) — przyp. red. 94 Rozdział 5. ♦ Wstawianie, usuwanie i aktualizacja danych Wstawianie danych  Wartości łańcuchów znakowych powinny być umieszczane w apostrofach. Przed apostrofami i lewymi ukośnikami należy wstawiać lewy ukośnik.  Dodawanie danych do tabel za pomocą instrukcji +05 46: +05 46=.19A24+14+6;^ .#; ?=+)014 ? =+061?PCYCAVCD= PCYCAMQNŗ ? 8#.7 5 Y[TCGPKG^ (#7.6 ŗ  ŗ ŗ =10 72.+ #6 - ;72 #6 PCYCAMQNY[TCGPKGŗ? NWD+05 46==.19A24+14+6;^ .#; ?=+)014 ? =+061?PCYCAVCD= PCYCAMQNŗ ? 5 . 6ŗ NWD+05 46==.19A24+14+6;^ .#; ?=+)014 ? =+061?PCYCAVCD 5 6PCYCAMQN Y[TCGPKG^ (#7.6 ŗ =10 72.+ #6 - ;72 #6 PCYCAMQNY[TCGPKGŗ?  Instrukcja 4 2.# działa w taki sam sposób, jak instrukcja +05 46, tylko powoduje nadpisanie istniejących wierszy, gdy pojawi się kolizja kluczy. Usuwanie danych  Unikanie błędów za pomocą opcji KCOCFWOO[.  Usuwanie danych z tabeli instrukcją . 6 : . 6 =.19A24+14+6;?=37+ -?(41/PCYCAVCDGNK =9* 4 FGHKPKELCAYJGTG? =14 4D[ŗ? =.+/+6YKGTUG? NWD . 6 =.19A24+14+6;?=37+ -?PCYCAVCDGNK= ?=PCYCAVCDGNK= ?ŗ? (41/QFYQNCPKGFQVCDGNK =9* 4 FGHKPKELCAYJGTG? NWD . 6 =.19A24+14+6;?=37+ -? (41/PCYCAVCDGNK= ?=PCYCAVCDGNK= ?ŗ? 75+0)QFYQNCPKGFQVCDGNK =9* 4 FGHKPKELCAYJGTG?  Instrukcja 6470 #6 6#$. powoduje usunięcie wszystkich wierszy z tabeli. Aktualizacja danych Aktualizacja danych w tabeli instrukcją 72 #6 6#$. : Quiz 95 72 #6 =.19A24+14+6;?=+)014 ?PCYCAVCD 5 6PCYCAMQNY[TCGPKG=PCYCAMQNY[TCGPKGŗ? =9* 4 FGHKPKELCAYJGTG? =14 4$;ŗ? =.+/+6YKGTUG? NWD 72 #6 =.19A24+14+6;?=+)014 ?PCYCAVCD=PCYCAVCDŗ? 5 6PCYCAMQNY[TCGPKG=PCYCAMQNY[TCGPKGŗ? =9* 4 FGHKPKELCAYJGTG? LOAD DATA INFILE Używamy instrukcji .1#  #6#+0(+. , aby wczytać zawartość pliku tekstowego do tabeli: .1#  #6#=.19A24+14+6;^ 10 744 06?=.1 #.?+0(+.  PCYC2NKMWVZV =4 2.# ^+)014 ? +0616#$. PCYCAVCD =(+ . 5 =6 4/+0#6 $; V ? ==126+10#..;? 0 .15 $; ?  5 #2 $; ? ? =.+0 56 4/+0#6 $; P ? =+)014 NKEDC.+0 5? = PCYCAMQNŗ ? Quiz 1. Która z poniższych instrukcji spowoduje prawidłowe wstawienie wiersza do tabeli pracownik? a) b) c) d) KPUGTVKPVQRTCEQYPKMXCNWGU UGV+ RTCEQYPKMC07..PCYKUMQ .CWTC6QOCUGYUMC  UVCPQYKUMQ RTQITCOKUVC + Y[FKCNW KPUGTVRTCEQYPKMXCNWGU 07.. .CWTC6QOCUGYUMC  RTQITCOKUVC   KPUGTVKPVQRTCEQYPKMXCNWGU 07...CWTC6QOCUGYUMCRTQITCOKUVC  KPUGTVRTCEQYPKMXCNWGU 07.. .CWTC1 .GCT[  RTQITCOKUVC   96 Rozdział 5. ♦ Wstawianie, usuwanie i aktualizacja danych 2. Instrukcja 4 2.# : a) działa tak samo, jak +05 46, lecz gdy pojawi się kolizja klucza, istniejący wiersz zostanie zastąpiony nowym wierszem; b) działa tak samo, jak +05 46, lecz gdy pojawi się kolizja klucza, pozostawiony zostanie istniejący wiersz, a zignorowany nowy; c) działa tak samo, jak 72 #6 , lecz gdy pojawi się kolizja klucza, istniejący wiersz zostanie zastąpiony nowym; d) działa tak samo, jak 72 #6 , lecz gdy pojawi się kolizja klucza, pozostawiony zostanie istniejący wiersz, a zignorowany nowy. 3. Opcja uruchomieniowa klienta mysql KCOCFWOO[: a) zapobiega wstawianiu wszelkich danych; b) zapobiega aktualizacji danych, jeżeli nie jest sprecyzowane ograniczenie dotyczące klucza; c) zapobiega usunięciu danych, jeżeli nie jest sprecyzowane ograniczenie dotyczące klucza; d) oba b) i c). 4. Domyślnie pola w plikach danych, wczytywanych instrukcją NQCFFCVCKPHKNG, są oddzielone: a) przecinkami, b) spacjami, c) tabulatorami, d) znakami „^”. 5. Opcja .1 #. w instrukcji .1#  #6#+0(+. mówi, że: a) klient i serwer działają na tym samym komputerze, b) plik danych jest na serwerze, c) plik danych jest na kliencie, d) serwer działa na lokalnym hoście. Ćwiczenia 1. Utwórz zestaw instrukcji +05 46, aby wstawić dane do każdej tabeli bazy danych zamowienia. 2. Usuń dane z tabel. 3. Zapisz plik zawierający te same dane, które były wstawiane w punkcie pierwszym, a następnie wczytaj je do bazy danych, używając instrukcji .1#  #6#+0(+. . 97 Następnie Odpowiedzi Quiz 1. b 2. a 3. d 4. c 5. c Ćwiczenia Nie ma jednej prawidłowej odpowiedzi w ćwiczeniach z tego rozdziału. Po prostu upewnij się, że potrafisz zrobić wszystkie ćwiczenia. Następnie W rozdziale 6., „Zapytania w MySQL”, zaczniemy analizować podstawowe narzędzie SQL — instrukcję 5 . 6 w jej wielu odmianach.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

MySQL. Podstawy
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: