S třední škola stavební Jihlava Sada 1 - PHP 14. Úvod do jazyka SQL Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a zkvalitnění výuky prostřednictvím ICT Jan Pospíchal 2012 Projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky
Databáze a jazyk SQL Na databázi se můžeme dívat jako na úložiště dat, která spravuje databázový server. Její výhody bezpečnost a spolehlivost uložení a rychlost přístupu se zvláště projevují u velkých objemů dat. Data jsou v databázi uložena formou tabulek. Ke komunikaci s databázovým serverem slouží dotazovací jazyk SQL (Structured Query Language). Příkazy jazyka SQL lze rozdělit do dvou skupin: Příkazy pro definici datových struktur a objektů - databáze, tabulky, sestavy (pohledy), indexy apod. Umožňují měnit jejich strukturu nebo je odstraňovat. Příkazy pro manipulaci s daty. V dalším budeme používat databázový server MySQL.
Vytvoření databázové tabulky (1) Použijeme příkaz CREATE TABLE. Syntaxe je popsaná v manuálu(závisí na verzi MySQL serveru). Lze využít i dalších informací. Příklad: Vytvořme tabulku seznamzs poli (sloupci) id, prijmeni, jmeno, email. Příkaz má tvar: CREATE TABLE seznamz( id tinyint(4) AUTO_INCREMENT PRIMARY KEY, prijmeni varchar(30), jmeno varchar(25), email varchar(75) ); Zadáme ho v prostředí phpmyadmina.
Vytvoření databázové tabulky (2) Zadání dotazu v phpmyadminu: Odezva MySQL serveru:
Vytvoření databázové tabulky (3) Strukturu vytvořené tabulky seznamz zobrazíme příkazem describe seznamz;
Vložení dat do tabulky Data do tabulky seznamzvložíme příkazem INSERT. Příkaz: INSERT INTO seznamz(id, prijmeni, jmeno, email) VALUES (1, 'Beneš', 'Lubomír', 'Benes.Lubos@volny.cz'), (2, 'Böhm', 'David', 'DavidBohm@volny.cz'), (3, 'Brabec', 'Josef', 'PepinoBrabec24@volny.cz'), (4, 'Bratršovský', 'Ondřej', 'BratrOndra@volny.cz'), (5, 'Breindlová', 'Lenka', 'lena.breindlova@volny.cz'), (6, 'Doležal', 'Jakub', 'jakub4444@volny.cz'), (7,'Fialová','Karolína', 'kate.green@volny.cz'), (8, 'Fischer', 'Jan', 'honzafischer@volny.cz'), (9,'Chatrný','Jan', 'H.Chatrny@volny.cz'), (10,'Jaša','Marek','jasa.marek@volny.cz'), (11,'Kratochvíl', 'Aleš','aless.kratochvill@centrum.cz'), (12,'Kratochvíl', 'Vít','Vita.Kratochvil@volny.cz'), (13,'Krausová', 'Kristýna','KyKaS@volny.cz'), (14,'Pól','Jiří','Pl.Jiri@volny.cz'), (15,'Polreich', 'Oldřich','hb-parkour@gmail.com'), (16,'Remsová', 'Pavla', 'PavlaRemsova@volny.cz'), (17,'Růžička', 'Pavel', 'Lefty12@volny.cz'), (18,'Smejkal', 'Jiří','smejkal_jirka@hotmail.cz'), (19,'Sobotka','Vojtěch', 'Ntheze@volny.cz'), (20,'Stupka','Martin','moosi1@volny.cz'), (21,'Šíma','Zbyněk','sima.zbynek@email.cz'), (22,'Vedra', 'Lukáš', 'lukas.vedra@email.cz'), (23,'Vejvoda', 'Martin','Vejvys@volny.cz'), (24,'Vlach','Marek','mara.vlach@seznam.cz');
Změna struktury tabulky Příkazem alter table seznamzaddskupina tinyint(4) DEFAULT 0; přidáme tabulce seznamzsloupec skupina a všechny hodnoty v tomto sloupci jsou nastaveny na 0. Uvedený sloupec můžeme z tabulky seznamz odebrat příkazem alter table seznamz drop skupina;
Změna hodnot v tabulce (1) Příkazy update seznamz set skupina=1 where id<=12; update seznamz set skupina=2 where id>12; Změníme hodnotu ve sloupci skupinana 1 pro osoby s idmenším nebo rovným 12 a na 2 pro osoby s idvětším než 12.
Změna hodnot v tabulce (2) Příkazem replace seznamz values (24,'Marta','Vlachová','marta.vlachova@seznam.cz',2); změníme hodnoty stávajícího řádku tabulky.
Smazání řádku tabulky Příkazem delete from seznamz where id=25; smažeme příslušný řádek v tabulce seznamz.
Smazání tabulky Příkazy CREATE TABLE seznamz_smazat ( id tinyint(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, prijmeni varchar(30), jmeno varchar(25), email varchar(75), skupina tinyint(4)) ; INSERT INTO seznamz_smazat (id, prijmeni, jmeno, email, skupina) VALUES (1,'Beneš', 'Lubomír', 'Benes.Lubos@volny.cz', 1), (2,'Böhm', 'David', 'DavidBohm@volny.cz', 1), (3,'Brabec', 'Josef', 'PepinoBrabec24@volny.cz', 1), (4,'Bratršovský', 'Ondřej', 'BratrOndra@volny.cz', 1), (5,'Breindlová', 'Lenka', 'lena.breindlova@volny.cz', 1), (6,'Doležal', 'Jakub', 'jakub4444@volny.cz', 1), (7,'Fialová', 'Karolína','kate.green@volny.cz', 1), (8, 'Fischer', 'Jan', 'honzafischer@volny.cz', 1), (9,'Chatrný', 'Jan', 'H.Chatrny@volny.cz', 1), (10,'Jaša', 'Marek','jasa.marek@volny.cz', 1), (11,'Kratochvíl', 'Aleš', 'aless.kratochvill@centrum.cz', 1), (12,'Kratochvíl', 'Vít','Vita.Kratochvil@volny.cz', 1), (13,'Krausová', 'Kristýna', 'KyKaS@volny.cz', 2), (14,'Pól','Jiří', 'Pl.Jiri@volny.cz', 2), (15,'Polreich', 'Oldřich', 'hb-parkour@gmail.com', 2), (16,'Remsová', 'Pavla', 'PavlaRemsova@volny.cz', 2), (17,'Růžička','Pavel', 'Lefty12@volny.cz', 2), (18,'Smejkal', 'Jiří', 'smejkal_jirka@hotmail.cz', 2), (19,'Sobotka','Vojtěch', 'Ntheze@volny.cz', 2), (20,'Stupka','Martin', 'moosi1@volny.cz', 2), (21,'Šíma', 'Zbyněk','sima.zbynek@email.cz', 2), (22,'Vedra', 'Lukáš', 'lukas.vedra@email.cz', 2), (23,'Vejvoda', 'Martin','Vejvys@volny.cz', 2), (24,'Marta','Vlachová', 'marta.vlachova@seznam.cz', 2); vytvoříme tabulku seznamz_smazat(kopii tabulky seznamz) a příkazem drop table seznamz_smazat; ji smažeme.
Použitá literatura Mach, Jakub. PHP pro úplné začátečníky. 2. přepracované a rozšířené vydání. 1. vydání. Brno: CP Books a. s., 2005. 168 s. ISBN 80-7226-834-1 Naramore, E., Gerner, J., LeScouarnec, Y., Stolz, J., Glass, M. Vytváříme webové aplikace v PHP5, MySQLa Apache. 1. vydání. Brno: ComputerPress, a.s., 2006. 813 s. ISBN 80-251-1073-7 Lacko, Luboslav. PHP a MySQLHotová řešení. 1. vydání. Brno: CP Booksa. s., 2005. 300 s. ISBN 80-251-0397-8 Krejčí, Lukáš. PHP Kapesní přehled. 1. vydání. Brno: ComputerPress, a.s., 2006. 107 s. ISBN 80-251-0808-2 Materiál je určen k bezplatnému používání pro potřeby výuky a vzdělávání na všech typech škol a školských zařízení. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je : : Jan Pospíchal Pokud není uvedeno jinak, byly při tvorbě použity volně přístupné internetové zdroje. Autor souhlasí se sdílením vytvořených materiálů a jejich umístěním na www.ssstavji.cz.