![php-logo[1]](http://www.womap.4fan.cz/wp-content/uploads/2012/06/php-logo1-150x79.png)
V dnešním díle se budeme zabývat databázemi a úvodem k nim. Příště si ukážeme interakci databází a PHP.
V PHP je snad nejpoužívanější jeho interakce s databázemi, kdy uživatel data z databází získává, mění, vytváří… Pojďme to vzít postupně a nejprve si vysvětlit, co to databáze je.
Databáze
Nejrozšířenější typ databází je MySQL, proto se zde budu zabývat pouze jím.
Co to vlastně databáze je? Databázi si můžeme představit například jako soubor v Excelu, kde je více listů, přičemž každý list představuje jednu tabulku databáze. Databáze může mít jednu tabulku (jeden list v excelu), nebo více (více listů). Tabulky mají každé své jméno, každá tabulka má daný počet sloupců, které jsou pojmenovány. Na každý řádek se poté zapisuje jeden záznam.
Příklad
Pro pochopení si představme jednoduchou databázi, které bude mít v sobě tabulku, která bude sloužit jako telefonní adresář. Bude mít tyto sloupce: Jméno, Příjmení, Telefonní číslo. Do tabulky budeme postupně vkládat jména, příjmení a tel. čísla jednotlivých lidí… pokud bychom si chtěli zobrazit její strukturu, vypadaly by nějak takto:
Jméno | Příjmení | Telefonní číslo |
Pavel | Novák | 123 456 789 |
Dan | Starý | 234 543 987 |
Petra | Vdaná | 524 986 203 |
Takhle nějak vypadá struktura tabulky.
Vytvoření databáze
Abychom si mohli vytvořit databázi, musíme mít na počítači nainstalovaný program, který nám bude simulovat server… například Xampp, PHP Triad apod. Já se budu zabývat vytvořením databáze a práci s ní pod programem Xampp.
Po nainstalování aplikace spustíme „Control Panel“, ve kterém zaškrtneme „SVC“ u Apache a klikneme na Start, poté klikneme na Start také u MySQL. Tím jsme zapli virtuální server. Nyní si zapneme příkazový řádek a v něm napíšeme: mysql -u root, tím jsme se dostali do programu mysql, ve kterém můžeme vytvářet či mazat databáze, editovat tabulky…
Databázi vytvoříme příkazem „create database pokus;“ – tímto jsme vytvořili databázi pokus. Nyní můžeme příkazový řádek zavřít.
Vytvoření tabulky
Nyní máme vytvořenou databázi a teď do ní chceme vložit tabulku, do které budeme následně vkládat nějaké hodnoty. Opět zapneme příkazový řádek a napíšeme „mysql -u root“. Nyní, protože už máme vytvořenou databázi si musíme zvolit, že data chceme vkládat do ní. To provedeme příkazem „use pokus;“ – „pokus“ je název databáze, kterou chceme používat. Nyní, když máme zvolenou databázi, můžeme do ní vložit tabulku. Při vytváření rovnou u tabulky definujeme názvy, datové typy sloupců a popř. i jejich délku. Celý zápis vypadá následovně:
create table adresar(
jmeno varchar(50),
prijmeni varchar(50),
cislo varchar(50)
);
Tímto zápisem jsme vytvořili tabulku „adresar“, která má tyto sloupce: jmeno, prijmeni a cislo. Vždy za názvem sloupce následuje jeho datový typ – v tomto případě varchar(datové typy rozepíšu níže v tabulce) a za ním jeho maximální délka v počtu znaků – tudíž každý sloupec může být dlouhý maximálně 50 znaků.
Datové typy
Vypíšu zde nejpoužívanější, pokud byste jich chtěli více, najdete je například zde.
varchar (x) | x znaků |
int, integer | -+ 2 147 483 648 |
text | max 65 535 bajtů |
date | 1000-01-01 – 9999-12-31 |
Toto jsou mnou nejčastěji používané datové typy v MySQL. Ve skutečnosti jich je mnohem více, ale jak už jsem řekl, chci vám ukázat jen ty nejpoužívanější.
Další vlastnosti
Také můžeme ještě k sloupci přiřadit určitou vlastnost, jejich seznam zmíním o kousek níže v tabulce. Nyní si ukážeme, jak se zapisují.
....
id integer primary key auto_increment,
....
Co tento zápis znamená? Tímto jsme vytvořili sloupec s názvem „id“, který má datový typ integer (budou v něm čísla) a má vlastnosti primary key a auto_increment.
not null | v „buňce“ tabulky musí být vždy hodnota |
unique | ve sloupci, který má tuto vlastnost se nesmí vyskytovat více než 1 buňka se stejným obsahem |
primary key | hodnota buňky je primární klíč – tzn. unikátní hodnota (vlastnost unique) a musí být vyplněna (not null) – tato vlastnost v sobě vlastně kloubí vlastnosti not null a unique; v dané tabulce tuto vlastnost může mít pouze jeden sloupec |
auto_increment | hodnota buňek se automaticky generuje v posloupné řadě – pokud má jedna buňka hodnotu číslo „2″, následující bude mít hodnotu „3″ ….. |
default | nastaví defaultní hodnotu pro buňku v případě, pokud hodnota do buňky nebyla vložena uživatelem |
Toto je seznam vlastností sloupců, které můžete použít v MySQL.
Úprava struktury tabulky
Pokud už jste tabulku jednou vytvořili a zjistili jste, že vám zde chybí či nadbývá sloupec… existují příkazy, kterými můžete tabulku upravovat.
Přidání sloupce
Sloupec přidáme jednoduchým příkazem:
alter table adresar add_column bydliste varchar(30);
Myslím že není co vysvětlovat…
Smazání sloupce
Pokud chceme smazat nadbytečný sloupec napíšeme:
alter table adresar drop id;
Tímto jsme odstranili sloupec id z tabulky adresar
Úprava hodnot sloupce
Chceme-li upravit datové typy sloupce… stačí použít tento příkaz:
alter table adresar modify jmeno varchar(30) not null;
alter table adresar change cislo tel_cislo varchar(30) not null;
Prvním příkazem jsme upravili sloupec jmeno, a to tak, že jsme mi přiřadili nově vlastnost not null a maximální délku řetězce omezili na 30 znaků. Druhým příkazem jsme sloupec cislo přejmenovali na tel_cislo, nastavili mu datový typ varchar s maximální délkou 30 znaků a vlastnost not null.
Smazání tabulky
Další věc, kterou můžeme s tabulkou dělat je její smazání:
drop table adresar;
Vkládání záznamů
Když máme vytvořenou tabulku…tak bychom do ní mohli vložit nějaké záznamy. První si to ukážeme pomocí příkazového řádku a poté pomocí PHP.
Vkládání záznamů příkazovým řádkem
insert into adresar value( "Petra", "Vdaná", "543 678 123");
Tímto jsme do tabulky adresar postupně do jednotlivých sloupců vložili hodnoty Petra, Vdaná, 543 678 123.
Pokud chceme vložit data pouze do určitých sloupců, musíme ještě k zápisu dodat, které sloupce to mají být:
insert into adresar (prijmeni, cislo) values ("Novak", "123 456 789");
Tímto jsme do tabulky adresář do sloupců prijmeni a cislo vložili hodnoty „Novak“ a „123 456 789″.
Mazání záznamů
Pokud chceme záznam z tabulky vymazat, použijeme tento příkaz:
delete from tabulka where prijmeni = Novak;
Tímto jsme smazali všechny záznamy z tabulky, kde je prijmeni „Novak“.
Pro mazání záznamů existují také další podmínky, o kterých se budete moct dočíst v některém z dalších článků na téma PHP.
Úprava záznamů
Úprava záznamů se provádí jednoduchým příkazem:
update adresar set jmeno = Petr where prijmeni = Novak;
Tímto jsme upravili v tabulce adresar hodnotu buňky, které odpovídá sloupci jmeno a řádku, kde je prijmeni „Novak“. Opět zde existuje spousta podmínek, kterými se dá určit, který záznam má být upraven…
Zisk dat z databáze
Když máme data v databázi, budeme je později chtít nějak použít, získat. To se provede příkazem select:
select * from adresar where prijmeni = Novak;
Tímto kódem jsme získali vše z tabulky adresar, kde prijmeni je Novak. Opět, spousty podmínek, kterými můžeme omezovat výběr…
Toto je k databázím vše. V příštím článku se podíváme na jejich propojení s PHP