CYAN
MAGENTA
YELOW
CYAN
BLACK
MAGENTA
E N C Y K L O P E D I E
V edici E N C Y K L O P E D I E W E B D E S I G N E R A vychází tentokrát ryze praktická kniha – kompletní a podrobná příručka pro uživatele phpMyAdmin, grafického rozhraní pro efektivní správu serveru a databází MySQL. Kniha popisuje v době vydání aktuální českou verzi phpMyAdmin 2.6.0, která obsahuje celou řadu novinek, rozšíření a vylepšení oproti verzi předchozí.
ZONER software, s.r.o. významný producent software v oblasti digitální fotografie, počítačové grafiky a multimédií, poskytovatel internetových služeb, souvisejících s prezentací na internetu a e-komercí, a nakladatelství odborné literatury.
efektivní správa
phpMyAdmin nabízí uživatelům ucelený systém pro komplexní manipulaci s databázemi a tabulkami MySQL. Systémovým administrátorům poskytuje nástroje pro správu uživatelů a jejich oprávnění. Kniha pokrývá oba úhly pohledu, obsahuje navíc i poznámky o používání SQL v rámci MySQL, předvádí některé nedokumentované možnosti a vlastnosti.
Z obsahu vybíráme:
• Příkazy SQL a dotazy nad více tabulkami
• Stažení, instalace a popis roz- • hraní
• Editace dat, změny ve struktuře tabulky, export a import struktury a dat
• Vyhledávání dat a operace nad celými tabulkami
• Relace
Vytváření systémové dokumentace
• Transformace založené na MIME
• Znakové sady • Administrace serveru MySQL • Řešení potíží a odborná pomoc
E N C Y K LO P E D I E W E B D E S I G N E R A Pod tímto logem vycházejí publikace určené pro každého, kdo se zajímá o tvorbu webových stránek. Od ryze praktických příruček a průvodců až po komplexní publikace o všem, co potřebuje webdesignér při každodenní práci. Na slevy, které můžete získat, a vydavatelský plán, v němž vedle knih domácích odborníků najdete celou řadu titulů světově uznávaných autorů, se informujte na adrese vydavatelství. Věrným čtenářům je určen výhodný PRÉMIOVÝ PLUS PROGRAM. Zoner Press tel.: 532 190 883 fax: 543 257 245 e-mail: knihy@zoner.cz http://www.zonerpress.cz
MySQL
efektivní správa MySQL
www.zoner.cz
© Foto: Jiří Heller, www.heller.cz Fotografie z nabídky fotobanky HELLER.CZ
KATALOGOVÉ ČÍSLO: ZR417
ISBN 80-86815-09-9
phpMyAdmin
phpMyAdmin
o phpMyAdmin
efektivní správa
phpMy_0.indd 1
YELOW
BLACK
MySQL
• Odhalte skutečnou sílu
phpMyAdmin, zvyšte svou produktivitu i úroveň při správování a administraci databází MySQL.
• Naučte se provádět
operace nad celými tabulkami, jednoduché i složené dotazy SQL.
• Vyzkoušejte si
generování systémové dokumentace.
• Podívejte se na
použití nástrojů pro práci s relacemi.
• Zjistěte, jak se vytvářejí
© Foto: Jiří Heller
a používají oblíbené dotazy.
• Seznamte se s MIME
transformacemi, prací se znakovými sadami...
Marc DeLisle
Marc DeLisle
www.zonerpress.cz 9 7 8 8 0 8 6
MAGENTA
W E B D E S I G N E R A
phpMyAdmin
ZONER software, s.r.o., Koželužská 7, 602 00 Brno
CYAN
BLACK
ENCYKLOPEDIE WEBDESIGNERA
Marc DeLisle
• Základní informace
YELOW
8 1 5 0 9 1
CYAN
MAGENTA
YELOW
BLACK 3.9.2004 11:26:23
phpMyAdmin efektivní správa MySQL
www.zonerpress.cz
phpMyAdmin efektivní správa
MySQL
Marc DeLisle
Authorized translation from the English language edition, entitled MASTERING PHPMYADMIN FOR EFFECTIVE MYSQL MANAGEMENT, 2nd edition, August 2004, 1-904811-03-5 by DeLisle, Marc, published by Packt Publishing Ltd; Copyright © 2004 Packt Publishing 2004. All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher except in the case of brief quotations embedded in critical articles or reviews. CZECH language edition published by ZONER software s.r.o., Copyright © 2004 Autorizovaný překlad anglického vydání nazvaného MASTERING PHPMYADMIN FOR EFFECTIVE MYSQL MANAGEMENT, druhé vydání, srpen 2004, 1-904811-03-5, autor DeLisle, Marc; vydal Packt Publishing Ltd; Copyright © 2004 Packt Publishing. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována, ukládána na záložních systémech nebo předávána žádnou formou nebo způsobem, bez přechozího písemného svolení vydavatele s výjimkou stručných citací zařazených v recenzích nebo posudcích. České vydání vydal ZONER software s.r.o., Copyright © 2004.
phpMyAdmin – efektivní správa MySQL Autor: Marc DeLisle Copyright © ZONER software s.r.o. Vydání první v září 2004. Všechna práva vyhrazena. KATALOGOVÉ ČÍSLO: ZR417 Zoner Press ZONER software s.r.o. Koželužská 7, 602 00 Brno Překlad: RNDr. Jan Pokorný Odpovědný redaktor: Ing. Pavel Kristián DTP: Pavel (Mr.Penguin) Kristián © Cover foto: Jiří Heller, HELER.CZ s.r.o., www.heller.cz © Cover a layout: Ing. Pavel Kristián Informace, které jsou v této knize zveřejněny mohou byt chráněny jako patent. Jména produktů byla uvedena bez záruky jejich volného použití. Při tvorbě textů a vyobrazení bylo sice postupováno s maximální péčí, ale přesto nelze zcela vyloučit možnost výskytu chyb. Vydavatelé a autoři nepřebírají právní odpovědnost ani žádnou jinou záruku za použití chybných údajů a z toho vyplývajících důsledků. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována ani distribuována žádným způsobem ani prostředkem, ani reprodukována v databázi či na jiném záznamovém prostředku či v jiném systému bez výslovného svolení vydavatele s výjimkou zveřejnění krátkých částí textu pro potřeby recenzí. Veškeré dotazy týkající se distribuce směřujte na: Zoner Press ZONER software s.r.o. Koželužská 7, 602 00 Brno tel.: 532 190 883, fax: 543 257 245 e-mail: knihy@zoner.cz http://www.zonerpress.cz
ISBN 80-86815-09-9
Obsah
KAPITOLA
KAPITOLA
1
2
O autorovi
13
Úvod
14
Co se v knize probírá Co budete potřebovat při práci s knihou Konvence Odborná pomoc pro zákazníky Stažení kódu příkladů z knihy Stažení ukázek z knihy Zpětná vazba od čtenářů Nalezené chyby Otázky
14 15 17 18 18 19 19 19 19
Základní informace o phpMyAdmin
21
PHP a MySQL: přední dvojka u Open-Source Co je phpMyAdmin? Historie Souhrn schopností phpMyAdmin Shrnutí
22 22 23 26 27
Instalace phpMyAdmin
29
Stažení Instalace na vzdálených serverech Linuxu pomocí klienta Windows Instalace na místních serverech Linuxu Instalace na místních serverech Windows (Apache, IIS) Základní konfigurace Soubor config.inc.php PmaAbsoluteUri Sekce specifické pro servery Konfigurace pro více serverů Servery definované v konfiguračním souboru Instalace pro více uživatelů Autentizace HTTP Autentizace Cookie Zabezpečení Ochrana na úrovni adresáře Kontrola přístupu založená na IP Omezení pro seznam databází
29 30 31 32 32 32 33 33 36 36 37 39 39 40 40 41 43
6
KAPITOLA
KAPITOLA
phpMyAdmin – efektivní správa MySQL
3
4
Ochrana přenášených dat Modernizace phpMyAdmin Shrnutí
43 43 44
Přehled rozhraní
45
Panely a okna Přihlašovací panely Levý a pravý panel Okno SQL Úvodní stránka Konfigurace titulků okna Konfigurace všeobecných ikon Přirozené seřazení názvů databází a tabulek Výběr jazyka Vzhledy Konfigurace vzhledu Výběr vzhledu Levý panel Seznam databází a seznam tabulek Rozvírací seznam serverů Pravý panel Domovská stránka Zobrazení databáze Zobrazení tabulky Zobrazení serveru Ikony pro domovskou stránku a pro záložky hlavní nabídky Okno SQL Specifická záhlaví a zápatí Odkazy na dokumentaci MySQL Shrnutí
45 45 45 46 46 46 47 47 48 49 49 49 50 50 54 55 55 57 58 60 60 61 62 62 63
První kroky
65
Vytvoření databáze Nemáte žádná oprávnění? První vytvoření databáze je autorizované Vytvoříme první tabulku Zvolíme sloupce Vytvoříme tabulku Zvolíme klíče Ruční vkládání dat Přizpůsobení panelu pro zadávání dat pro typy char a varchar Režim prohlížení
65 65 66 67 67 68 69 70 72 73
Obsah
KAPITOLA
KAPITOLA
KAPITOLA
5
6
7
7
Odkazy na okno SQL Navigační lišta Výsledky setřídění Zvýraznění řádků barvami Omezení délky sloupců Přizpůsobení režimu prohlížení Vytvoříme druhou tabulku Shrnutí
73 74 76 77 78 78 79 80
Editace dat
81
Editační režim Přechod na další sloupec Zpracování hodnot NULL Jak se na hodnotu aplikuje funkce Duplikace řádků dat Souběžná editace na více řádcích Odstraňování dat Odstraňování jednotlivých řádků Odstraňování více řádků najednou Odstranění všech řádků tabulky Odstranění všech řádků z několika tabulek Odstraňování tabulek Odstraňování databází Shrnutí
81 82 82 83 84 85 86 86 87 87 88 88 89 89
Změny ve struktuře tabulky
91
Přidání sloupce Svislý režim Editace vlastností sloupce Sloupce typu TEXT Binární velké objekty (BLOB, Binary Large Object) Nahrávání binárního obsahu Typy ENUM a SET DATE, DATETIME a DATESTAMP: ovládací prvek kalendář Správa indexů Indexy založené na jediném sloupci Indexy složené z více sloupců a editace indexů Fulltextové indexy Optimalizace tabulky: vysvětlení dotazu příkazem EXPLAIN Shrnutí
91 92 93 93 94 95 96 98 99 99 100 102 102 104
Export struktury a dat
105
8
phpMyAdmin – efektivní správa MySQL
Výpisy, zálohy a export Export databáze Podpanel Export Formát SQL Podpanel Do souboru Formát dat CSV CSV pro data Microsoft Excelu LaTeX XML Přirozený formát MS Excelu Export tabulky Export rozčleněného souboru Selektivní exporty Export části výsledků dotazu Export a zaškrtávací políčka Uložení exportovaného souboru na serveru Shrnutí KAPITOLA
8
Import struktury a dat Limity pro přenos Import souborů SQL Import souborů CSV Rozdíly mezi formáty SQL a CSV Požadavky Využití rozhraní pro příkaz LOAD Volby příkazu LOAD Nahrávací adresář na webovém serveru Import komprimovaných výpisů Shrnutí
KAPITOLA
9
Vyhledávání dat Prohledávání jediné tabulky Každodenní používání phpMyAdmin Vstup na podstránku Vyhledávání Výběr sloupců, které chceme zobrazit Vyhledávací kritéria pro sloupce: dotaz podle příkladu Náhled k vytištění Vyhledávání pomocí zástupných znaků Kombinování kritérií Použití klauzule WHERE Získávání výsledků typu "všechny různé hodnoty" Prohledávání celé databáze
105 106 107 107 112 114 115 115 117 118 119 119 120 120 121 122 123
125 125 127 129 129 129 130 131 132 133 133
135 135 135 135 136 137 138 138 140 140 141 141
Obsah
Shrnutí KAPITOLA
1 0 Operace nad celými tabulkami Údržba tabulek Změna vlastností tabulky Typ tabulky Komentáře tabulky Řazení tabulky Volby tabulky Přejmenování, přemístění a kopírování tabulky Přidávání dat do tabulky Operace nad několika tabulkami najednou Oprava tabulky, která „je v užívání“ Shrnutí
KAPITOLA
1 1 Systém relací Relační MySQL? InnoDB Infrastruktura propojených tabulek Umístění infrastruktury Instalace infrastruktury propojených tabulek Zobrazení relací Interní relace phpMyAdmin Relace InnoDB Tabulky InnoDB bez infrastruktury propojených tabulek Výhody plynoucí z definovaných relací Informace o cizím klíči Rozvírací seznam cizích klíčů Okno pro prohlížení připojené tabulky Kontrola referenční integrity Automatická aktualizace metadat Komentáře pro sloupce Shrnutí
KAPITOLA
1 2 Zadávání příkazů SQL Pole pro dotaz SQL Zobrazení databáze Zobrazení tabulky Okno SQL Volby okna SQL Historie SQL založená na JavaScriptu Historie SQL založená na databázi (permanentní)
9 143
145 146 147 147 147 148 148 149 150 150 151 151
153 153 153 154 154 155 158 159 160 163 164 164 165 165 167 167 168 168
169 169 169 170 172 173 174 174
10
phpMyAdmin – efektivní správa MySQL
Editování dotazu a okno SQL Dotazy složené z několika příkazů Úhledný tisk (zvýraznění syntaxe) Validátor SQL Požadavky na systém Jak se validátor zpřístupní Výsledky z validátoru Shrnutí KAPITOLA
1 3 Generátor dotazů obracejících se na několik tabulek Volba tabulek Sloupcové podmínky Volič sloupců: jediný sloupec nebo všechny sloupce Řadit Zobrazit Aktualizace dotazu Podmínky Automatická sloučení Vykonání dotazu Shrnutí
KAPITOLA
1 4 Oblíbené dotazy Vytvoření oblíbeného dotazu po úspěšném dotazu Uložení dotazu do oblíbených před jeho odesláním Oblíbený dotaz z několika příkazů SQL Opětovné vyvolání dotazu ze seznamu oblíbených dotazů Spuštění oblíbeného dotazu Manipulace s oblíbeným dotazem Veřejné oblíbené dotazy Výchozí počáteční dotaz pro tabulku Parametry oblíbených dotazů Vytvoření parametrizovaného oblíbeného dotazu Předání hodnoty parametru oblíbenému dotazu Spouštění oblíbených dotazů z pma_bookmark Shrnutí
KAPITOLA
174 175 176 177 177 178 178 180
181 182 183 183 183 184 184 185 189 189 190
191 191 193 194 194 195 195 195 196 197 197 198 198 199
1 5 Systémová dokumentace
201
Náhled databáze Selektivní náhled databáze Náhled tabulky Slovník dat
201 202 202 203
Obsah
KAPITOLA
Relační schéma v PDF Přidáme do našeho modelu třetí tabulku Upravíme stránky PDF Shrnutí
204 204 205 209
1 6 Transformace založené na MIME
211
Nastavení MIME pro sloupec Typ MIME Transformace při prohlížení Parametry transformace Požadavky pro generování obrázku GD2 Knihovna JPEG a PNG Ukázky transformací Miniatura, na které lze kliknout (.jpeg nebo .png) Odkaz na obrázek Formátování data Odkazy z textu Zachování původního formátování Zobrazování částí textu Externí aplikace Shrnutí KAPITOLA
11
1 7 Znakové sady Soubory jazyků a UTF-8 Verze MySQL starší než 4.1.x Znakové sady Volba efektivní znakové sady Jaké účinky má přepínání Import a export znakových sad MySQL 4.1 a novější Řazení Domovská stránka Vytvoření databáze Dostupné znakové sady a řazení Efektivní znaková sada a řazení Zobrazení databáze Zobrazení tabulky Import a export se znakovými sadami Zobrazení serveru Podpora znaků japonštiny (Kanji) Shrnutí
211 212 213 213 213 214 214 214 214 215 215 216 217 217 218 220
221 221 221 222 223 224 224 225 226 226 226 227 228 228 229 230 230 231 231
12 KAPITOLA
phpMyAdmin – efektivní správa MySQL
1 8 Administrace serveru MySQL s phpMyAdmin Jak se dostaneme do zobrazení serveru Správa uživatelů a oprávnění Přehled uživatelů Přidání uživatele Stránka pro modifikace údajů o uživateli Odstranění uživatele Informace o databázi Zobrazit podrobnosti Setřídění podle statistických údajů Kontrola databázových oprávnění Odstranění vybraných databází Serverové operace Prověření stavu serveru Serverové proměnné Serverové procesy Export více databází najednou Shrnutí
KAPITOLA
233 233 233 233 235 237 240 241 241 242 242 242 242 242 245 245 246 247
1 9 Řešení potíží a odborná pomoc
249
Požadavky na systém Základní konfigurace Řešení běžných závad Chybové zprávy Jiné potíže Hledání odborné pomoci Často kladené dotazy (FAQ) Fóra nápovědy Pátrač po odborné pomoci (Support Tracker) Pátrač po chybách (Bug Tracker) Příspěvky do projektu Základna pro kód Aktualizace překladů Záplaty (Patches) Budoucí verze phpMyAdmin Shrnutí
249 250 250 250 253 255 255 255 256 256 257 257 257 257 257 258
Rejstřík
259
O autorovi Marc DeLisle začal přispívat k phpMyAdmin v prosinci 1998, kdy vyrobil první vícejazyčnou verzi. Od května 2001 se účastní aktivně jako vývojář a administrátor projektu. phpMyAdmin tvoří nyní nedílnou součást jeho života. Od roku 1980 pracoval v Collège de Sherbrooke v Quèbecu v Kanadě jako programátor aplikací a správce sítě. Také lektoroval kurzy s tématikou práce v síti, zabezpečení, servery Linuxu, a vývoj aplikací PHP/MySQL. V jedné ze svých tříd se s potěšením setkal s uživatelem phpMyAdmin z Argentiny.
Jsem velmi vděčný svému redaktoru Louay Fatoohi, který mě na projekt nasměroval a doprovázel mě při jeho produkci; jeho hlasité připomínky vysoce oceňuji. Mé díky také patří Garvinu Hickingovi, členu vývojového týmu phpMyAdmin a recenzentovi knihy. Garvinův ostrý zrak mi pomohl v tom, aby byla kniha srozumitelnější a úplnější. Konečně, žádná kniha o phpMyAdmin by nemohla existovat bez softwaru phpMyAdmin. Chtěl bych poděkovat všem přispěvatelům do zdrojovému kódu a do dokumentace; čas, který obětovali tomuto softwarovému projektu mě stále podněcuje a žene vpřed.
Pro Carole, Andrého, Corinne, Aniie a Guillauma z celého srdce. Marc
14
phpMyAdmin – efektivní správa MySQL
Úvod MySQL je nejpopulárnější databáze „Open Source“. Používají ji milióny vývojářů a podporuje četné rozsáhlé dynamické weby a aplikace. MySQL získal svou širokou popularitu nejen díky tomu, že „otevřeně“ poskytuje svůj zdrojový kód, ale zejména svou spolehlivostí, robustností a podporou rozličných platforem. K jeho popularitě také přispěla existence phpMyAdmin, což je standardizovaný administrační nástroj, který usnadňuje správu databází ostříleným vývojářům i začátečníkům. Vyspělé grafické rozhraní, které poskytuje pro MySQL, činí z phpMyAdmin neocenitelný nástroj pro vývojáře MySQL i pro webové vývojáře. Kniha představuje vyčerpávající návod k phpMyAdmin a předvádí v plné šíři potenciál tohoto nástroje. Ukazuje, jak se konfigurují, aktivují a používají myriády schopností phpMyAdmin, základní i pro pokročilé.
Co se v knize probírá Uvádím stručný přehled osmnácti kapitol knihy. V kapitole 1 se dozvíte, co je phpMyAdmin, jeho historii a jaké má hlavní rysy. V kapitole 2 se podrobně probírají různé instalační a konfigurační volby, včetně možnosti instalovat jednu kopii phpMyAdmin pro více uživatelů a nakonfigurovat ji tak, aby spravovala tři různé servery. V kapitole se též probírají otázky zabezpečení. Kapitola 3 obsahuje přehled grafického rozhraní phpMyAdmin. Podrobnější průzkum jednotlivých panelů a oken podniknete v následných kapitolách. V kapitole 4 vytvoříte svou první databázi, tabulku a různé její sloupce. Odstraňování jednotlivých řádků, skupiny řádků, tabulek a databází se probírá v kapitole 5. Zde se také probírají operace pro editování dat, jako jsou zpracování hodnot Null, nebo aplikování funkcí MySQL na data. Kapitola 6 se soustřeďuje na rozličné volby phpMyAdmin týkající se změn struktury tabulky. Patří mezi ně přidávání takových typů sloupců, jako jsou TEXT, BLOB. ENUM a SET, nahrávání binárních dat do sloupců BLOB, či správa indexů. phpMyAdmin se dá využívat pro zálohování dat a pro snímání průběžných stavů fází vývoje a produkce. V kapitole 7 se ukazuje, jak se tyto úkoly provádějí pomocí schopnosti pro export phpMyAdmin. Vysvětlují se zde také různé formáty dat, které lze při exportu použít. phpMyAdmin umí také importovat data, což je předmět kapitoly 8. Probírá se zde import souborů SQL a CSV, a dále to, jak phpMyAdmin zpracovává komprimované soubory. Kromě prohlíže-
Úvod
15
cích schopností (à la datový list) přívětivých k uživateli umožňuje phpMyAdmin snadno vyhledávat data. Prohledávání databází a jednotlivých tabulek se probírá v kapitole 9. Předchozí kapitoly se valnou většinou zabývají sloupci tabulek. Kapitola 10 se soustřeďuje na operace, které ovlivňují celé tabulky. Vysvětluje se zde plně oprava a optimalizace tabulek, změna různých atributů tabulek, i kopírování a přemisťování tabulek do jiné databáze. V kapitole 11 se začnete seznamovat s vyspělejšími schopnostmi phpMyAdmin. Uvidíte, jak se instaluje infrastruktura propojených tabulek, která je nezbytná, chcete-li využívat mnohé vyspělejší schopnosti. Probírá se instalace pro jediného uživatele i pro více uživatelů. Vysvětluje se zde také, jak se definují relace mezi tabulkami. Kromě toho, že nám phpMyAdmin dovoluje provádět rozličné databázové operace prostřednictvím svého grafického rozhraní, umožňuje také spouštět komplikované příkazy SQL při řešení těch úkolů, které nejde provádět prostřednictvím grafického rozhraní. Tato schopnost se probírá v kapitole 12. Kapitola 13, ve které se probírá prohledávání více tabulek, doplňuje kapitolu 9. Ukazuje, jak se prohledává jediná tabulka, a jak celá databáze. Kapitola 14 se zabývá význačnou schopností phpMyAdmin, možností ukládat tzv. „oblíbené“ dotazy (v originále záložky dotazů, neboli bookmarks). Je to jeden z rysů infrastruktury propojených tabulek, kterou jsme probírali v kapitole 11. V kapitole se ukazuje, jak se zaznamenávají oblíbené dotazy, jak se s nimi manipuluje, a jak se jim předávají parametry. Vytvoření a udržování dobré dokumentace o struktuře dat je nesmírně důležitá záležitost, zvláště jedná-li se o týmové projekty – phpMyAdmin ji vyrobí za nás. Jedná se o schopnost, která se probírá v kapitole 15. V kapitole se ukazuje, jak se vygenerují prosté seznamy tabulek a sloupců, jak se používají slovníky dat pro kompletní seznamy sloupců, i jak se ve formátu PDF vygeneruje relační schéma tabulek, které jste si sami vyrobili. phpMyAdmin umí provádět transformace obsahu sloupců založené na MIME. V kapitole 16 se probírají transformace textu i obrázků. V kapitole 17 se podrobně probírají znakové sady a řazení. V kapitole 18 se ukazuje, jak mohou systémoví administrátoři využít phpMyAdmin při správě uživatelských účtů a oprávnění, i při prověřování stavu serveru. V kapitole 19, poslední kapitole knihy, se probírají rozličná témata, která se týkají vzniklých závad a odborné pomoci. Probírají se tu nejběžnější chybové zprávy a potíže, které vznikají při konfiguraci. V kapitole jsou také uvedeny informace o tom, jak a kde můžete získat odbornou pomoc.
Co budete potřebovat při práci s knihou Potřebujete přístup k nějakému serveru nebo k pracovní stanici, kde jsou nainstalované:
• MySQL • PHP
16
phpMyAdmin – efektivní správa MySQL
• Webový server Apache nebo IIS. Poznámka překladatele. Všechny schopnosti rozhraní phpMyAdmin i příklady jsem testoval (a snímal obrázky) na místním stroji s touto konfigurací:
• Microsoft Windows 2000 Professional s IIS, Internet Explorer 6.0, • MySQL verze 5.0 alpha běžící jako služba
• PHP verze 4.3.0 • PEAR 1.3.1 • phpMyAdmin 2.6 rc1, což byla nejnovější verze, která byla v době psaní těchto řádků k dispozici. Při instalaci se automaticky nabídne rozhraní v češtině, proto jsme se také rozhodli uvádět obrázky, popisy k nim, i terminologii v češtině.
• Adobe AcrobatReader 6.0 (v kapitole 15). K spolupráci MySQL, PHP a phpMyAdmin ale nepotřebujete vůbec žádné „dělo“. Vyzkoušel jsem také všechny klíčové ukázky z knihy na šunce na chalupě s touto konfigurací:
• Microsoft Windows 98 service pack 2 s PWS (Personal Web Server) 4.0 • MySQL verze 5.0 alpha • PHP 5.0.0
Úvod
17
Pro MySQL i PHP existují pro Windows instalační programy, které se dají stáhnout a spustit. Stačí rozbalit zip odpovídajícího produktu do vhodného adresáře a spustit instalační program. Pro MySQL není třeba už dělat nic, u PHP je třeba v php.ini nastavit adresář rozšíření (u mě to bylo extension_dir = "c:\PHP\ext\ c:\PHP\ext\" ") a odstranit středník na začátku řádků požadovaných rozšíření. Instalaci phpMyAdmin stačí provést tak, jak je uvedeno v knize.
Konvence V knize najdete několik stylů textu, jimiž se rozlišují různé druhy informací. Podívejte se na ukázky těchto stylů. Zároveň u nich uvádím vysvětlení, co vyjadřují. Pro kód se používají tři styly. Kód objevující se uvnitř textu se uvádí takto: „Parametr $cfg['PropertiesIconic'] může nabývat hodnot TRUE, FALSE nebo 'both'.“
18
phpMyAdmin – efektivní správa MySQL
Bloky kódu se uvádějí tímto stylem: $cfg['PropertiesIconic'] = TRUE; $cfg['ModifyDeleteAtLeft'] = TRUE; $cfg['ModifyDeleteAtRight'] = FALSE;
Chci-li upoutat vaši pozornost na konkrétní část bloku kódu, uvádím relevantní řádky tučně: CREATE TABLE `books` ( `isbn` varchar(25) NOT NULL default '', `author_id` int(11) NOT NULL default '0', PRIMARY KEY (`isbn`), KEY `author_id` (`author_id`) ) TYPE=MyISAM COMMENT='Contains book description';
Nové termíny a důležité pojmy uvádím také tučným písmem. Slova, která vidíte na obrazovce, například v nabídkách nebo dialogových oknech, se v textu objevují takto: „kliknutím na tlačítko Další přejdete na další obrazovku“. Tipy, doporučení a důležité připomínky se uvádějí takto. Veškeré vstupy a výstupy v režimu příkazového řádku se uvádějí ve tvaru: c:\packt>mysqladmin ping mysqld is alive
Odborná pomoc pro zákazníky Když jste teď hrdým vlastníkem knihy od Zoner Pressu, máme pro vás soustu věcí, abyste ze svého nákupu vytěžili co nejvíc.
Stažení kódu příkladů z knihy Navštivte http://www.packtpub.com/support, vyberte tuto knihu ze seznamu titulů, abyste si mohli stáhnout kód ukázek nebo jakékoli další extra prostředky pro potřeby práce s knihou. Pak se vám zobrazí soubory dostupné ke stažení. Soubory, které lze stáhnout, obsahují též pokyny, jak je používat. Poznámka překladatele. Stažení příkladů je kupodivu poměrně komplikované vzhledem k tomu, že se vlastně jedná jen o dva čisté textové soubory. Když dorazíte na http://www.packtpub.com/support a vyberete si knihu, musíte zadat svou e-mailovou adresu. Pak vám oznámí, že vám adresu, odkud si můžete soubor stáhnout, pošlou na vaši e-mailovou adresu. Když přejdete na adresu http://packtpub.com/ file/hash/n file/hash/ názevsouboru, stáhne se soubor (s naprosto nezapamatovatelným názvem). Obsahuje pouze dva soubory readme.txt a dbbook.sql.
Úvod
19
Stažení ukázek z knihy Několik vybraných částí této knihy najdete ve formátu PDF na webu našeho vydavatelství www. zonerpress.cz. Na stránkách věnovaných této knize je k dispozici i řada poznámek překladatele, které pro vás možná budou také užitečné.
Zpětná vazba od čtenářů Názory a připomínky čtenářů jsou vždy srdečně vítané. Dejte nám vědět, co si o knize myslíte, co se vám na ní líbí, a co nelíbí. Zpětné vazby od čtenářů jsou pro nás důležité, abychom připravovali takové tituly, z nichž získáte co nejvíc. Chcete-li nám zaslat nějaký všeobecný názor,. prostě nám pošlete e-mail na adresu knihy@zoner. cz a nezapomeňte prosím uvést v předmětu zprávy titul knihy – phpMyAdmin. Chcete-li kontaktovat původního vydavatele anglického originálu, použijte feedback@packtpub.com. Potřebujete-li knihu na nějaké jiné téma, a byli byste rádi, abychom ji publikovali, odešlete nám prosím návrh jejího titulu jako poznámku na stejnou e-mailovou adresu, knihy@zoner.cz. Jste-li v něčem expertem, a přitom máte zájem buď o tom napsat nějakou knihu, nebo do nějaké knihy něčím přispět, pošlete nám své náměty na www.packtpub.com/authors.
Nalezené chyby I když jsme podnikli všemožné úsilí, aby byl obsah knihy přesný, přesto se v něm mohou vyskytnout chyby. Najdete-li v některé z našich knih nějakou chybu – ať už je to chyba v textu, nebo v kódu, budeme vám vděční, když nás o ní budete informovat. Můžete tím ostatním čtenářům ušetřit různé frustrace, a také přispějete k tomu, aby byly budoucí verze knihy dokonalejší.
Otázky Máte-li nějaké potíže související s knihou, můžete nás kontaktovat na adrese knihy@zoner.cz. Uděláme, co bude v našich silách, ale vezměte na vědomí, že vám nemůžeme pomáhat s vašimi „provozními“ problémy. Více pomoci se asi dočkáte na serveru interval.cz. Kontaktovat nás můžete i telefonicky nebo poštou: Zoner Press ZONER software s.r.o. Koželužská 7, 602 00 Brno tel.: 532 190 883, fax: 543 257 245 e-mail: knihy@zoner.cz http://www.zonerpress.cz
1 Základní informace o phpMyAdmin Vítejte na rozvinutém Webu! Za několik posledních let se Web dramaticky změnil. Ve svém dětství byl Web médium, které se převážně využívalo pro sdělování statických informací („Heč, mám na Webu svou domovskou stránku!“). Nyní rozsáhlé části Webu přenášejí takové informace, které jsou dynamicky generovány aplikačními programy. Spoléhají se na ně společnosti, firmy, a dokonce i jednotlivé fyzické osoby, když vytvářejí své intranety a veřejné weby. Protože jsou výhody plynoucí z používání databází zřejmé (lepší přístupnost i strukturování informací), jsou webové aplikace obvykle database-driven, databází „poháněné“. Konečným uživatelem na popředí je velmi dobře známý (a rychle rozšiřovaný) webový prohlížeč, v pozadí je nějaký databázový systém. Rozhraní mezi prohlížečem a databází poskytují různé aplikační programy. Ti, kteří v současné době nepracují na Webu se stránkami těžícími z databází, nevyužívají plně kapacitu tohoto média. Může se také stát, že budou zaostávat za svými konkurenty, kteří už tento přechod učinili. Takže otázka nezní, zda bychom měli implementovat web „poháněný“ databází, ale spíše kdy, a hlavně jak ho implementovat. Proč webové aplikace? Protože přispívají k tomu, aby uživatelé byli s našimi aplikacemi spokojenější, vylepšovali svoje zkušenosti, a abychom je vtáhli do celého procesu tím, že poskytneme následující možnosti:
• • • • •
shromažďovat názory (zpětné vazby) ohledně našeho webu; umožníme jim komunikovat s námi i vzájemně mezi sebou prostřednictvím fór; nabídneme jim zboží z našeho webu elektronického obchodu; zpřístupníme jim snadno upravovatelné informace založené na Webu (správa obsahu); dovolíme navrhování a udržování databází z Webu.
Dnes by zkratka WWW mohla vyjadřovat World-Wide Wave (nikoli původní World Wide Web), tedy obrovitá vlna (nikoli pavučina), která se převalila celým světem, a od základu změnila způsob, jakým vývojáři přemýšlejí o uživatelském rozhraní, prezentaci dat, a ze všeho nejvíc, o způsobu, jak mají data dorazit k uživatelům, a vracet se zpět do „centrálního úložiště dat“.
22
phpMyAdmin – efektivní správa MySQL
PHP a MySQL: přední dvojka u Open-Source V této kapitole se popisuje místo, které zaujímá phpMyAdmin v kontextu PHP/MySQL, vysvětluje se historie phpMyAdmin, a uvádí souhrn jeho schopností. Podíváme-li se na řešení, která aktuálně nabízejí poskytovatelé hostitelů, převládá kombinace PHP a MySQL. Zmíněné duo, dobře podporované svými domovskými stránkami, http://www.php.net respektive http://www.mysql.com, vybavilo vývojáře tak, aby mohli nabídnout řadu hotových webových aplikací a, což je nejdůležitější, umožnilo vývojářům ve firmách dát rychle do provozu solidní webová řešení. MySQL, který do značné míry vyhovuje standardu ANSI-92 SQL, je databázový systém, který je dobře známý svou rychlostí, robustností, a malými režijními náklady na připojení, což je důležité ve webovém kontextu, kde stránky musí být obslouženy tak rychle, jak je to jen možné. PHP, instalovaný jako modul uvnitř webového serveru, je populární skriptovací jazyk, v němž se aplikace píší tak, aby komunikovaly s MySQL v pozadí a s prohlížeči v popředí. Jeho evoluci ilustruje příznačně to, že se změnil i význam samotného akronymu. Z Personal Home Page (osobní domovská stránka) přes Professional Home Page (profesionální domovská stránka) na svou aktuální rekurzívní definici: PHP: Hypertext Processor (PHP: hypertextový procesor). Je k dispozici na milionech webových domén a žene svou vlastní vlnu rychle vyvíjených aplikací.
Co je phpMyAdmin? phpMyAdmin je webová aplikace napsaná v PHP a obsahující klientský kód XHTML, CSS a JavaScriptu. Poskytuje kompletní webové rozhraní pro administraci databází MySQL a je ve svém oboru obecně považován za vůdčí aplikaci. Protože je od svého vzniku open-source, těší se podpoře četných vývojářů a překladatelů po celém světě (v době, kdy šla kniha do tisku, už byl přeložen do 47 jazyků). Hostitelem projektu je v současné době SourceForge. Produktu phpMyAdmin (má oficiální domovskou stránku na http://www.phpmyadmin.net) prokázali důvěru hostitelští poskytovatelé po celém světě tím, že ho nainstalovali na své servery. Kromě toho můžeme instalovat svou vlastní kopii phpMyAdmin dovnitř našeho webového prostoru, pokud má náš poskytovatel nainstalované nejnovější verze PHP a MySQL. Populární CPanel (řídící aplikace webu) je s phpMyAdmin v souladu.
KAPITOLA
1 : Základní informace o phpMyAdmin
23
Historie První interní verzi (0.9.0) zakódoval Tobias Ratschiller a nese datum 9.9.1998. Vydal pak 26. října 1998 verzi 1.0.1. Rané verze byly nabízené na webu Tobiase: http://www.phpwizard.net (tento web už s ním nemá nic společného). Jak Tobias napsal v doprovodných poznámkách: „Tato práce je založena na MySQL-Webadmin Petera Kuppelwiesera. Byl to jeho nápad, vytvořit webové rozhraní do MySQL pomocí PHP3. I když jsem nepoužil nic z jeho zdrojového kódu, existují jisté pojmy, které jsem si od něho vypůjčil. phpMyAdmin byl vytvořen proto, že mi Peter sdělil, že už dále nehodlá vyvíjet svůj (skvělý) nástroj.
24
phpMyAdmin – efektivní správa MySQL
V porovnání se současnou verzí (pět let od původní verze), byla první verze poněkud omezující ve svých schopnostech, nicméně se dala využít pro vytváření databází a tabulek, k editaci jejich struktury, i k zadávání a získávání dat. Všimněte si v následujícím obrázku, že v levém rámci už byl seznam názvů databází (ještě ne názvy tabulek), a že pravý rámec představoval pracovní prostor pro správu databáze nebo tabulky. Takhle vypadalo rozhraní pro databáze v anglické verzi 1.3.0:
Když jste chtěli pracovat s nějakou tabulkou, ocitli jste se na obrazovce tohoto druhu:
Já jsem začal používat phpMyAdmin ve verzi 1.2.0 (vydané 29. listopadu 1998) a okamžitě mě nadchl nápad, aby šlo udržovat vzdálenou databázi pomocí nějaké webové aplikace. Ovšem, stu-
KAPITOLA
1 : Základní informace o phpMyAdmin
25
denti v Collège de Sherbrooke, kde jsem pracoval v Quèbecu v Kanadě, byli lidé mluvící francouzsky, takže jsem kontaktoval Tobiase a nabídl mu takovou transformaci jeho zdrojového kódu, která vytáhne všechny zprávy mimo, do nějakého souboru zpráv. Nabídku přijal a já jsem vytvořil soubory anglických a francouzských zpráv. Pak, 27. prosince 1998, vydal Tobias verzi 1.3.1, první vícejazyčnou verzi (mezitím se postaral o vytvoření souboru německých zpráv). V roce 1999 a v první polovině roku 2000, zdokonalil Tobias navigační systém, přidal schopnosti a zařadil soubory dalších jazyků. Na webu jeho projektu se provozovalo diskusní fórum, takže průběžně přicházely nové nápady a probíraly se různé záplaty. Potom, 8. června 2000, vydal verzi 2.1.0, což byla poslední verze vydaná Tobiasem, protože už nadále neměl čas na to, aby se projektu věnoval. Uživatelů už bylo ovšem hodně, a stále více jich projevovalo o produkt zájem. Na internetu se stále záplatovalo a nebylo žádné centrum, které by věci koordinovalo. Byla publikovaná (a opravená) výstraha týkající se zabezpečení, ale žádná nová verze vydaná nebyla. 31. března 2001 zaregistroval Olivier Müller projekt phpMyAdmin na SourceForge.net a vydal zde verzi 2.2.0pre1. V té době se tomu říkalo neoficiální verze. Obnovený start projektu přilákal některé vývojáře, kteří nyní měli k dispozici infrastrukturu SourceForge (server CVS, fóra, „slídiče chyb“ – bug trackers, emailové konference), takže jim pomohla urychlit vývoj. Já osobně jsem se k projektu „opětovně připojil“ v květnu 2001 a začal jsem opravovat a zdokonalovat kód, podobně jako to dělali mí spolupracovníci vývojáři. „Oficiálními“ jsme se stali 28. května 2001, kdy Tobias přijal naši novou verzi jako oficiální verzi. Pamatuji se na tyto měsíce jako na dobu intenzivního vývojářského úsilí, kdy se něco zdokonalovalo a opravovalo každý den, včetně nových sekcí dokumentace. Naše snažení kulminovalo dne 31. srpna 2001 vydáním verze 2.2.0. Tady máte výňatek ze souboru, jímž se oznamovalo vydání verze 2.2.0. „Po 5 měsících, 5 vydáních beta a 4 kandidátních vydáních vyhlašují s potěšením vývojáři phpMyAdmin, že je k dispozici verze phpMyAdmin 2.2.0. [...] 31. března 2001 opětovně nastartoval Olivier Müller (Švýcarsko), s podporou vývojářů Marc Delisle (Quèbec), Loĩc Chapeaux (Francie) a týmu dalších osmi, projekt phpMyAdmin na SourceForge.net s autorizací od původního udržovatele balíku. Nyní, po 5 měsících záplat, oprav chyb, dodávání nových schopností a testování, je konečně verze 2.2.0 hotová.“ V této verzi byly opraveny věci týkající se zabezpečení, bylo přidáno sedm nových jazyků (s dynamickou detekcí jazyka) a kód byl přepracován tak, aby vyhovoval CSS2 a XHTML 1.0 a dodržoval doporučení PEAR pro psaní kódu. V této verzi se také objevila schopnost práce s oblíbenými dotazy (bookmarks). Během následujícího roku vývojářské práce pokračovaly a bylo vydáno 7 dílčích verzí. Poslední verze ze série 2.2.x je 2.2.7-p11. Je to také poslední verze, která byla plně otestovaná pod PHP 3.
26
phpMyAdmin – efektivní správa MySQL
Důležité datum je 3. duben 2002; zaregistrovali jsme phpMyAdmin.net jako oficiální název domény pro projekt. 11. srpna 2002 pak byla vydána verze 2.3.0. Bylo přidáno tak mnoho nových schopností, že stránky prostě příliš narostly ve svislém směru, takže se tato verze stala „velkou rozčleňující verzí“. Zobrazovala podstránky pro každou skupinu schopností tabulky nebo databáze. Tým zahájil naplánovaný rozvrh vydávání nových podverzí (2.3.1, 2.3.2) každé dva měsíce. O sedm měsíců později byla do verze 2.4.0 zařazena správa uživatelů/serveru. 11. května 2003 pak číslo verze skočilo rovnou na 2.5.0, aby se tím oslavil transformační systém typu MIME jednotlivých buněk. Aktuální verze, 2.6.0, podporuje nové rozšíření mysqli, které je k dispozici v PHP 5, s jehož pomocí se dociluje vyšší výkon a lepší zabezpečení. V této verzi byl také upraven návrh rozhraní, včetně nových ikon a správy různých vzhledů. Všechny zde uvedené schopnosti jsou v knize vysvětlené. phpMyAdmin získal také některá ocenění, na což se můžete podívat v sekci Awards domovské stránky projektu. Nejprve dostal od administrátorů SourceForge cenu „projekt měsíce“ (Project Of The Month) za prosinec 2002. V dokumentu ve stylu interview, který jsme připravili pro stránku POTM SourceForge, jsem napsal, že na mě udělala dojem četnost stahování produktu, což bylo v té době 3 za minutu (od té doby jsme se dostali ve špičce na 10 za minutu). phpMyAdmin dostal v roce 2003 75 % hlasů od čtenářů německého časopisu PHP Magazin a jeho mezinárodní verze v kategorii „Nejlepší aplikace/nástroj PHP“. Cena byla oficiálně prezentována v listopadu 2003 na 2003 International PHP Conference.
Souhrn schopností phpMyAdmin Cílem phpMyAdmin je nabídnout kompletní správu serverů a dat MySQL založenou na webech, a držet krok s evolučními standardy MySQL a Webu. Přestože produkt není perfektní, aktuálně zahrnuje nejběžněji požadované schopnosti a spoustu věcí navíc. Vývojový tým trvale produkt vyvíjí na základě oznámených chyb a požadavků na schopnosti a pokračuje ve vydávání podverzí v intervalu zhruba dvou měsíců. phpMyAdmin nabízí schopnosti, které pokrývají základní operace MySQL s databázemi a s tabulkami. Má také interní relační systém, který udržuje metadata za účelem podpory vyspělejších schopností. Konečně, systémoví administrátoři mohou z phpMyAdmin spravovat uživatele a oprávnění. Je důležité připomenout, že volby dostupných operací phpMyAdmin závisejí na oprávněních, která byla uživateli udělena ke specifickému serveru MySQL. Základní výbavu tvoří následující schopnosti:
• Vytvoření a odstranění databáze • Vytvoření tabulky, přejmenování, kopírování a odstranění
KAPITOLA
• • • • • • • • • • •
1 : Základní informace o phpMyAdmin
27
Údržba struktury tabulky, včetně indexů Speciální operace nad tabulkou (oprava, optimalizace, změna typu) Vkládání dat, modifikace, odstraňování Zobrazování dat vodorovně /svisle a náhled před tiskem Navigace po datech a třídění Nahrávání binárních dat Vyhledávání dat (v tabulce nebo v databázi) Dotaz podle příkladu (nad několika tabulkami) Dávkové načítání dat Export struktury a dat v rozličných formátech, s komprimací. Instalace pro více uživatelů a více serverů.
Do nadstavby patří:
• • • • • • • •
Komentáře na úrovni sloupců Cizí klíče (s InnoDB nebo bez) Prohlížení připojené tabulky Oblíbené dotazy Slovník dat Relační schéma a slovník PDF Historie dotazů SQL Připojení k MySQL buď pomocí tradičního rozšíření mysql, nebo nového rozšíření mysqli (v PHP 5)
• Podpora znakových sad pro databáze, tabulky a sloupce (s MySQL 4.1) • Transformace obsahu sloupce založené na typu MIME • Správa vzhledů, jimiž se dá přizpůsobit vzhled rozhraní Do schopností pro administraci serveru patří:
• • • •
Správa uživatelů a oprávnění Kontrola databázových oprávnění Stav serveru Export více databází najednou
Shrnutí V kapitole jsme hovořili o tom,
• jak se vyvíjel Web jakožto prostředek pro snadnější doručování aplikací; • proč bychom měli takové aplikace vyvíjet s PHP/MySQL;
28
phpMyAdmin – efektivní správa MySQL
• jak se phpMyAdmin stal vůdčí aplikací pro rozhraní k MySQL z Webu; • jaká byla historie vývoje phpMyAdmin; • jaké schopnosti obsahuje (ve formě stručného výčtu).
10 Operace nad celými tabulkami V předchozích kapitolách jsme se převážně zabývali sloupci tabulek. V této kapitole se naučíme provádět některé operace, které ovlivňují tabulky jako celek. Probereme vlastnosti tabulky a jak se dají modifikovat. Prodiskutujeme také operace nad několika tabulkami. V zobrazení tabulky byly různé odkazy, které vedou na operace s tabulkami, shromážděné na jedinou podstránku Úpravy (Operations). Takhle vypadá:
146
phpMyAdmin – efektivní správa MySQL
Poznámka překladatele. V momentálním českém rozhraní je téměř duplicita v názvech režimů Edit (Upravit) a výše uvedeného Úpravy (Operations). Pokud by vám to hodně vadilo, upravte v patřičném souboru češtiny, například \lang\czech-windows-1250.inc.php hodnotu proměnné $strOperations, třeba na Operace, tedy $strOperations = 'Operace';. Podobně se můžete vypořádat i s jinými texty, které vás iritují. Na druhou stranu je ovšem lepší, když je rozhraní pokud možno jednotné, protože rozhodně víc než to, že jsou texty (subjektivně) nevhodné, bude uživatele iritovat, když budou na různých pracovištích různé.
Údržba tabulek Během svého životního cyklu se tabulky opakovaně modifikují, narůstají, nebo se scvrkávají. Na serveru může docházet k výpadkům, takže na něm mohou některé tabulky zůstat v poškozeném stavu. Na podstránce Úpravy můžeme provádět různé operace, ale všechny operace nejsou dostupné pro všechny typy tabulek:
•
Zkontrolovat tabulku. Prohlédnou se všechny řádky, aby se prověřilo, že jsou odstraněné
odkazy v pořádku. Také se vypočte kontrolní součet, aby se prověřila integrita klíčů; je-li vše v pořádku, měli bychom obdržet zprávu ‘OK’.
•
Analyzovat tabulku. Analyzuje a uloží se rozložení klíčů; využije se to v následných opera-
cích JOIN, kde se určí, v jakém pořadí se mají slučovat tabulky.
•
Opravit tabulku. Opraví případná poškozená data; připomínáme, že tabulka může být nato-
lik poškozená, že se nebudeme moci dostat ani do zobrazení tabulky! V takovém případě se podívejte na patřičný opravný postup do oddílu Operace nad několika tabulkami.
•
Optimalizovat tabulku. To se hodí, když tabulka obsahuje nějaké „díry“. Po masivním od-
straňování řádků nebo změnách délek sloupců VARCHAR zůstávají odstraněné bajty v tabulce. phpMyAdmin nás na různých místech upozorňuje (například v zobrazení Struktura), pokud se domnívá, že by se tabulka měla optimalizovat. Jedná se o jistý druh defragmentační operace – je dostupná pro tabulky typů MyISAM a BDB (berkeley DB).
•
Vyprázdnit vyrovnávací paměť pro tabulku. Musí se udělat, když došlo k mnoha chybám
připojení a kdy další připojení server MySQL blokuje. Operace vyprázdní něco rychlých vyrovnávacích pamětí a umožní dál normálně pokračovat.
•
Defragmentovat tabulku. Operace vkládání a odstraňování záznamů v tabulce InnoDB
fragmentují její index. Tabulka by se měla pravidelně defragmentovat, aby se z ní data získávala rychleji. Operace jsou založené na dostupných podkladových dotazech MySQL – phpMyAdmin pouze volá tyto dotazy.
KAPITOLA
1 0 : Operace nad celými tabulkami
147
Změna vlastností tabulky V tomto oddílu probereme možnosti nastavení různých vlastností (také se jim říká atributy) tabulky.
Typ tabulky První vlastností, kterou můžeme změnit, je typ tabulky:
Typ řídí celé chování tabulky: její umístění (na disku nebo v paměti), strukturu indexů, zda podporuje transakce a cizí klíče. Obsah rozvíracího seznamu může být různý, závisí na typech tabulek, které podporuje váš server MySQL. Má-li tabulka hodně řádků, může být změna jejího typu časově náročná operace.
Komentáře tabulky Tento dialog umožňuje přidávat do tabulky komentáře. Komentáře se zobrazují při různých vhodných příležitostech (například v zobrazení tabulky a v exportovaném souboru).
Chování, které jsme doposud viděli, produkují výchozí hodnoty FALSE parametrů $cfg['Show TooltipAliasDB'] a $cfg['ShowTooltipAliasTB']; v levém panelu a na podstránce Struktura zobrazení databáze se zobrazují skutečné názvy databází a tabulek. Komentář se objeví, když se kurzor myši umístí na název tabulky. Je-li některý z parametrů nastavený na TRUE, tak se odpovídající prvky (názvy databází pro DB, názvy tabulek pro TB) zobrazí jen jako jejich komentáře, nezobrazí se jejich názvy. Když se na ně umístí kurzor myši, zobrazí se skutečný název. Hodí se to, když skutečné názvy tabulek nejsou vypovídající.
148
phpMyAdmin – efektivní správa MySQL
Existuje ještě jedna možnost pro $cfg['ShowTooltipAliasTB']: hodnota 'nested'. Využijeme-li ji, stanou se následující věci:
• Skutečný název tabulky se zobrazí v levém panelu. • Komentář tabulky (například project_ _) se interpretuje jako název projektu a také se tak zobrazí – podívejte se prosím do oddílu Vnořované zobrazení tabulek uvnitř databáze v kapitole 3.
Řazení tabulky Když prohlížíme tabulku v režimu Projít a nespecifikovali jsme konkrétní způsob seřazení, použije MySQL výchozí seřazení řádků. Výchozí způsob seřazení řádků tabulky lze změnit dialogem Změnit pořadí tabulky podle. Můžeme zvolit libovolný sloupec a tabulka se podle něho jednou seřadí. V naší ukázce volíme sloupec author_id. Po kliknutí na Proveď se tabulka seřadí podle identifikačních čísel autorů. Výchozí řazení platí tak dlouho, dokud se v tabulce neprovedou nějaké změny (žádné vkládání, odstraňování, ani aktualizace). To je důvod, proč phpMyAdmin zobrazuje upozornění po jednom (singly).
Po setřídění podle author_id, budou jako první zobrazené knihy autora 1, pak budou knihy autora 2, atd. (mluvíme o výchozím procházení tabulky, bez explicitního setřídění). Můžeme také volit způsob seřazení - Vzestupně nebo Sestupně. Vložíme-li nový řádek, popíšeme novou knihu od autora 1, a klikneme na Projít, nezobrazí se kniha spolu s ostatními knihami tohoto autora, protože k setřídění došlo před vložením nového záznamu.
Volby tabulky Další vlastnosti, které ovlivňují chování tabulky, se dají specifikovat v tomto dialogu:
KAPITOLA
•
1 0 : Operace nad celými tabulkami
149
pack_keys. Zaškrtnutí vede na menší index; dá se tím zrychlit čtení, ale prodlouží se aktua-
lizace. Dostupné pro typy tabulek MyISAM a ISAM.
•
checksum. Zaškrtnutí způsobí, že bude MySQL pro každý řádek počítat kontrolní součet. Zpomaluje to aktualizace, ale snadněji se najdou poškozené tabulky. Dostupné jen pro typ MyISAM.
•
delay_key_write. Zaškrtnutím dáváte pokyn MySQL, aby nezapisoval aktualizace indexů
okamžitě, ale aby je odložil do fronty na později. Zvyšuje se tím výkon. Dostupné jen pro typ MyISAM.
•
auto_increment. Dá se tím nastavit nová automaticky přidávaná hodnota sloupce.
Poznámka překladatele. Posledním polem se dá určit, od kterého čísla mají dále pokračovat automaticky přidávané hodnoty. Uvedete-li číslo menší než číslo posledního existujícího záznamu, phpmyAdmin to bude ignorovat a bude pokračovat nejbližším dalším dostupným číslem.
Přejmenování, přemístění a kopírování tabulky Operace Přejmenovat se pochopí nejsnáze; tabulka prostě změní svůj název a zůstane v téže databázi. Operace Přesunout (vidíte ji na následujícím obrázku) umí dělat dvě manipulační akce s tabulkou: změnit název tabulky a také název databáze, do které se má tabulka uložit:
150
phpMyAdmin – efektivní správa MySQL
MySQL přímo nepodporuje přesouvání tabulek, takže phpMyAdmin musí vytvořit tabulku v cílové databázi, zkopírovat data, a pak kompletně odstranit zdrojovou tabulku. Operace Kopírovat ponechá původní tabulku nedotčenou a zkopíruje její strukturu, nebo data (nebo obojí) do jiné tabulky, případně i do jiné databáze. Zde bude books-copy přesnou kopií zdrojové tabulky books. Až kopírování skončí, zůstaneme v zobrazení tabulky books, pokud jsme nezaškrtli Přepnout na zkopírovanou tabulku.
Přepínač Pouze strukturu se hodí, když potřebujeme vytvořit nějakou testovací tabulku se stejnou strukturou.
Přidávání dat do tabulky Dialog Kopírovat se může také využít k přidávání dat z jedné tabulky do jiné. Obě tabulky musejí mít stejnou strukturu. Operaci provedeme tak, že napíšeme název tabulky, do které chceme kopírovat data z aktuální tabulky a vybereme přepínač Jen data. Tato operace by se mohla hodit například tehdy, kdyby údaje o knihách přicházely z různých zdrojů (od různých vydavatelů), byly by tedy uloženy ve více tabulkách, a my bychom chtěli data „sehrát“ na jediné místo.
Operace nad několika tabulkami najednou V zobrazení databáze je vedle každého názvu tabulky zaškrtávací políčko, a pod seznamem tabulek je rozvírací seznam. Tyto ovládací prvky umožňují rychle vybrat některé tabulky a provést nad nimi najednou některou z dostupných operací. V ukázce na následujícíé stránce jsme vybrali tabulky books-copy a books a zvolil jsme pro ně operaci Zkontrolovat tabulku. Snadno a rychle vybrat všechny tabulky, resp. zrušit výběr tabulek můžeme pomocí odkazů Zaškrtnout vše / Odškrtnout vše.
KAPITOLA
1 0 : Operace nad celými tabulkami
151
Oprava tabulky, která „je v užívání“ Režim operací nad několika tabulkami je jediná metoda (pokud neznáme přesný dotaz SQL, který úlohu řeší), jak opravit poškozenou tabulku. Takové tabulky mohou být zobrazené v zobrazení databáze s indikátorem právě se používá. Uživatelé hledající nápovědu na fórech odborné pomoci pro phpMyAdmin často obdrží tento tip od zkušenějších uživatelů phpMyAdmin.
Shrnutí V této kapitole jsme probrali operace, které lze provádět nad celými tabulkami. Patří do nich:
• • • •
údržbové operace nad tabulkami, jimiž se tabulky opravují a optimalizují; změny různých vlastností tabulky; přesouvání tabulek, včetně přejmenování a přemístění do jiné databáze; operace nad několika tabulkami najednou.