PHP – Databáze

php-logo[1]

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

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>