5. POČÍTAČOVÉ CVIČENÍ Databáze Databázi si můžeme představit jako místo, kam se ukládají všechny potřebné údaje. Přístup k údajům uloženým v databázi obstarává program, kterému se říká Systém Řízení Báze Dat (SŘBD). Anglicky: DataBase Management Systém (DBMS). Mezi SŘBD patří programy jako Oracle (komerčný) a programy a šířené zdarma jako MySQL a PostgreSQL. Převážná většina dnes používaných SŘBD při uspořádání údajů v databázi vychází z relačního modelu dat. V tomto modelu jsou údaje uspořádány do tabulek. Tabulka zpravidla shromažďuje údaje o jednom druhu objektů. Můžeme tak mít například tabulku s osobními údaji zaměstnanců. Jednotlivé řádky odpovídají jednotlivým zaměstnancům. Sloupce pak obsahují informace např.: osobní číslo, jméno, rodné číslo, adresa a výše platu. Sloupcům tabulky obvykle říkáme v databázové terminologii položky nebo atributy. Jednotlivé řádky se pak nazývají záznamy. Viz. obrázek 1.
Databáze může samozřejmě obsahovat větší množství tabulek – záleží na tom, co vše za údaje chceme do databáze zaznamenat. Každá tabulka má proto své jméno, které ji v rámci databáze jednoznačně identifikuje. V našem případě by tabulka měla nejspíše název Zaměstnanci. Primární klíč: Každá tabulka by měla obsahovat tzv. primární klíč. Primární klíč je atribut, jehož hodnota je pro každý záznam jedinečná. V našem případě tedy jako primární klíč může posloužit atribut Osobní číslo, protože každý zaměstnanec má své vlastní osobní číslo (nebo např. rodné číslo – to má každý občan České republiky jedinečné). Atributy: Sloupcům tabulky obvykle říkáme v databázové terminologii položky nebo atributy. Pro každý atribut tabulky musíme určit jaký typ dat může obsahovat. Mezi nejběžněji používané typy patří celá čísla, znakové řetězce a logické hodnoty (ano/ne). Další velmi často používané typy jsou reálná čísla, měnové údaje, datum a čas. Mnoho SŘBD podporuje i složitější typy jako je obrázek, video či audio klip.
Administrace databáze Do libovolného webového prohlížeče napište adresu: http://databaze.fbmi.cvut.cz/mysql
Vytvořit novou tabulku v databázi (např. Název: test, Sloupce: 2)
Pozn.: Na serveru „databaze.fbmi.cvut.cz“ každý student má vytvořenou (při registraci) vlastní databázi s názvem, která se shoduje s jeho příjmením.
Definování sloupců (např. oscislo, jmeno)
Vložit záznam do tabulky
Projít záznamy v tabulce
Lehký úvod do SQL Naše skripty zapsané v PHP mohou obsahovat příkazy zapsané v jazyce SQL. To znamená, že nic nebrání tomu, aby byl přes Web zpřístupněn obsah nějaké databáze. Abychom si mohli SQL vyzkoušet, budeme potřebovat nějaký SQL-server. Server databaze.fbmi.cvut.cz nabízí službu databázového serveru MySQL. Přístupové jméno a heslo jste dostaly emailem.
Vytvoření nové tabulky Nyní v databázi vytvoříme tabulku adresar a v ní sloupce Jméno a E-mail Pozn.: Názvy všech tabulek a položek je lepší zadávat bez diakritických znamének, protože ne všechny servery si zde s češtinou poradí.
= "szabo"; = "paw5ogv"; = "szabo";
$tb="adresar"; $sloupec1="Jmeno"; $sloupec2="E-mail";
// uzivatel - upravte dle emailu // heslo - upravte dle emailu // nazev databaze – je to vase prijmeni // nazev tabulky // nazev 1. sloupce // nazev 2. sloupce
$spojeni= mysql_connect("localhost", $DbLogin, $DbPass); mysql_select_db($DbName, $spojeni); // definice SQL dotazu $sqlstr = "CREATE TABLE `$tb` (`$sloupec1` VARCHAR(20) NOT NULL ,`$sloupec2` VARCHAR(40) NOT NULL)"; // vykonani SQL dotazu $result = mysql_query($sqlstr); // uzavreni databaze mysql_close(); echo "databaze byla uspesne vytvorena" ?>
Zde jsme již použili příkaz SQL pro vytvoření tabulky funkce. mysql_select_db($DbName, $spojeni); vybere databázi se kterou chceme pracovat (v našem případě je pouze jedna). mysql_query($sqlstr); je funkce zpracovávající kód SQL. VARCHAR(20) tento parametr SQL určuje kolik znaků může mít poznámka v daném sloupci. NOT NULL znamená, že data nebudou nulová.
Přidání záznamu do tabulky Nyní přidáme záznam Jirka Mládek -
[email protected] - stejným způsobem budete moci vytvořit i ty ostatní.
= "szabo"; = "paw5ogv"; = "szabo";
// uzivatel - upravte dle emailu // heslo - upravte dle emailu // nazev databaze – je to vase prijmeni
$tb="adresar"; $sloupec1="Jmeno"; $sloupec2="E-mail";
// nazev tabulky // nazev 1. sloupce // nazev 2. sloupce
$spojeni= mysql_connect("localhost", $DbLogin, $DbPass); mysql_select_db($DbName, $spojeni); // definice SQL dotazu $sqlstr = "INSERT INTO `$tb` ( `$sloupec1` , `$sloupec2` ) VALUES ('Jirka Mládek', '
[email protected]')"; // vykonani SQL dotazu $result = mysql_query($sqlstr); // uzavreni databaze mysql_close(); echo "data byla uspesne vlozena" ?>
Vybrané datové typy MySQL Typ
int float varchar(n) date time
Popis celé číslo číslo s pohyblivou řádovou čárkou textový řetězec o maximální délce n datum ve tvaru RRRR-MM-DD čas ve tvaru HH:MM:SS
Příklad testování připojení k databázi // spojení s DB serverem if (!($link = mysql_connect($DbServer, $DbLogin, $DbPass))) { echo "Chyba při připojení k databázi na serveru ".$DbServer."!"; exit; } // vyber databaze (pro Vas kontrola existence DB) if (!($spojeni = mysql_select_db($DbName, $link))) { echo "Chyba při připojení k databázi ".$DbName."!"; exit; } ?>