V předcházejících dílech jste se seznámili s tvorbou tabulek, vkládáním informací a jejich vybíráním. Občas se vám ale stane, že budete potřebovat určité informace z databáze odstranit a proto je tu dnešní díl. Seznámím vás trochu s příkazem DELETE a nakonec ještě s UPDATE, pomocí kterého, jak asi správně tušíte, můžete informace měnit a aktualizovat.
DELETE je velmi jednoduchý příkaz a pokud jste pilně studovali předcházející díl o SELECTu, bude pro vás jeho zvládnutí hračkou. Má totiž úplně stejnou syntaxi, jako SELECT a dokonce u něj můžete využívat některé z kauzulí (jako například WHERE, HAVING a matematické operátory). Takže vám zde uvedu příklady jeho použití:
Dejme tomu, že chceme v obchodě zredukovat ceny pod 5000 kč a navíc nemáme rádi odběratele začínající na J a mající tři písmena ve jménu, proto tyto záznamy zredukujeme:
DELETE FROM zakazky WHERE (cena > 5000) OR (odberatel LIKE 'J__')
Zde bych vás na něco upozonil a je to následující zápis:
DELETE FROM zakazky
Takto se totiž můžete zbavit všech vašich pracně nasbíraných informací jednou ranou.
Nyní přejdu k vysvětlení činnosti UPDATE. Rekněme, že máme v podniku slevu 200 kč na výrobky dražší, než 2000 kč. Nejlépe to pochopíte na následujícím příkladu:
UPDATE zakazky SET cena = cena - 200 WHERE cena > 2000
Funkce je tato: Změní údaje v tabulce zakazky, konkrétně ve sloupci cena sníží její hodnotu o 200, pokud obsahuje hodnotu větší než 2000.
Na závěr povídání o SQL by vás možná mohlo zajímat, jak smazat celou tabulku:
DROP TABLE zakazky
Párkrát jsem se setkal s případem, že někdo chtěl smazat obsah tabulky a nechtěně si spletl "DELETE FROM zakazky" s příkazem "DROP TABLE zakazky". Potom nemohl přijít na to, proč mu do tabulky nejdou vkládat data. Existuje ještě jeden příkaz "DROP DATABASE nazev_db" a ten vám smaže celou databázi.
V prvním dílu seriálu o SQL jsem vám ukázel, jak se SQL příkazy používají ve skriptech. Nyní, když už umíte základy, vám také ukážu, jak si můžete nechat záznamy zobrazit.
<?
@$spojeni = MySQL_Connect (“sql_server“, “uživatel“, “heslo“);
// jako server si na zkoušku zvolte localhost
if (!$spojeni):
echo “Nepodařilo se spojit s databází. </body></html>“;
exit;
endif;
@$select = MySQL_Select_DB("nazev_databaze");
// vybrat pracovní databázi
if (!$select):
echo “Nepodařilo se vybrat databázi. </body></html>“;
exit;
endif;
@$prikaz = MySQL_Query("a zde bude váš SQL příkaz“);
// provést příkaz
if (!$prikaz):
echo “Nepodařilo se provést příkaz. </body></html>“;
exit;
endif;
echo "<table border=\"1\" cellspacing=\"1\" cellpadding=\"2\" bordercolor=\"black\">";
while ($show = MySQL_Fetch_Row($prikaz))
// uložit záznamy do proměnné $show s numerickými indexy a provést výpis
{
echo "<tr><td bgcolor=\"#eeeeee\">".$show[0]."</td><td>".$show[1]."</td><td bgcolor=\"#eeeeee\">".$show[2]."</td><td>".$show[3]."</td></tr>";
// výpis dat bude probíhat, dokud $show bude mít nějakou hodnotu
}
while(false);
echo "</table>";
MySQL_Close();
?>
|
Použili-li byste na naši tabulku jako SQL příkaz "SELECT * FROM zakazky", dostali byste tento výsledek:
| rádio | 1500 | Jiří Bezrádia | 1 | | pračka | 8000 | Jana Malá | 2 | | mixér | 2000 | Jitka Hrozná | 3 | | telefon | 4200 | Lukáš Boss | 4 | | okno | 1550 | Jan Novák | 5 |
Tímto dnešní díl končí a já vám ještě prozradím, že aplikací, kterou s vámi příště začnu programovat, bude inzertní centrum. Hezký den.
Čevelíček Marek
|