Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
PHP - Část XX. (SQL - získávání dat z databáze II.)
13. listopadu 2000, 00.00 | další díl seriálu o PHP, věnovaný práci s databází. Detailní vysvětlení příkazu SELECT, možnosti podmínek v WHERE ap.
V dnešním článku budeme pokračovat v objasňování SQL příkazu SELECT. Minule jsme si ukázali, jak jednoduše vypsat všechny údaje z tabulky nebo jen určité položky. Vše se však vždy aplikovalo na všechny záznamy v tabulce, což ve většině skriptů nepotřebujeme. Proto můžeme u tohoto příkazu definovat podmínku, podle které se vypíší jen určité záznamy. Tato podmínka se v příkazu SELECT zapisuje za klauzuli WHERE. V podmínce můžeme používat různé operátory, které mají většinou stejný význam jako v matematice. Mimo ně můžeme pracovat i s tzv. logickými operátory, které spojují více podmínek v jednu složenou. Nyní si ukážeme pár příkladů s naší databází a tabulkou z minulých článků. Pokud chceme vypsat jen jména zaměstnanců, kteří mají plat více než 10000, použijeme tento příkaz v následující podobě:
SELECT jmeno FROM zamestnanci WHERE
plat > 10000;
Abychom získali data z tohoto příkazu pro
práci v PHP, použijeme opět jednu z funkcí, které jsem objasnil v minulém
článku. Nebudu zde uvádět příklady se všemi matematickými operátory,
protože mají stejný význam jako v matematice, neměl by tedy být problém s
pochopením jejich významu. Malý rozdíl však nastane při použití operátoru
'=
'. Ten totiž nemůžeme použít pro podmínku s textovými řetězci.
Pro výpis jména a platu jen o zaměstnancích, kteří mají plat přesně
25000 použijeme:
SELECT jmeno, plat FROM zamestnanci
WHERE plat = 25000;
Kdybychom však chtěli použít podmínku,
která má vypsat vše o p. Novákovi, nemohli bychom operátor '=
'
použít, protože se v podmínce vyskytuje textový řetězec - místo operátoru
'=
' jazyk SQL nabízí operátor 'LIKE
', který má
shodný význam jako operátor '=
', jen se používá při práci s
textovými řetězci. Použijeme tedy:
SELECT * FROM zamestnanci WHERE jmeno
LIKE "Jan Novák";
Operátor LIKE
s sebou přináší
ještě dva znaky, které mají speciální význam. Tyto znaky se používají
v textovém řetězci za operátorem LIKE
. Je to znak '%
'
a znak '_
'. Znak '%
' v textovém řetězci nahrazuje
jakoukoliv skupinu znaků, znak '_
' nahrazuje právě jeden znak.
Tento příkaz vypíše jména a adresy zaměstnanců, jejichž jméno začíná
na Jan:
SELECT jmeno, adresa FROM zamestnanci
WHERE jmeno LIKE "Jan%";
Již na začátku tohoto článku jsem uvedl,
že podmínky můžeme kombinovat pomocí logických operátorů, tedy pomocí AND
,
OR
, NOT
. Větší opodstatnění přináší až v
rozsáhlejších databázích, kde je více tabulek s desítkami a stovkami řádků. V naší
malé databázi si maximálně můžeme ukázat jednoduchý příklad, jak
vypsat data o zaměstnancích, kteří mají plat větší než 10000 a nejmenují
se Jan Novák:
SELECT * FROM zamestnanci WHERE (plat
> 10000) AND NOT (jmeno LIKE "Jan Novák");
Pro anglicky nerozumějící jen uvádím, že
AND znamená 'a', OR znamená 'nebo' a NOT znamená 'ne'. Jejich použití se
odvozuje od jejich významu. Samotný příkaz SELECT umožňuje použít několika
příkazů, z nichž si zde uvedeme dva. Příkaz Count()
a příkaz
Avg()
. Příkaz Count()
slouží pro zjištění počtu
záznamů a příkaz Avg()
slouží pro zjištění průměrné
hodnoty položky. Nyní si ukážeme, jak jednoduše zjistit průměrný plat
zaměstnanců:
SELECT Avg(plat) FROM zamestnanci;
Pokud bychom chtěli zjistit počet zaměstnanců, museli bychom napsat:
SELECT Count(*) FROM zamestnanci;
Příště se naučíme pomocí WHERE propojovat více tabulek a dokončíme příkaz SELECT.
Obsah seriálu (více o seriálu):
- PHP část I. - Úvod do jazyka
- PHP část II. - Instalace
- PHP - Část V. (Operátory)
- PHP - Část VIII.
- PHP - Část IX. (Vlastní funkce)
- PHP - Část X. (Proměnné ve funkcích)
- PHP - Část XI.
- PHP - Část XII. (Regulární výrazy)
- PHP - Část XIII. (Regulární výrazy podruhé)
- PHP - Část XIV. (PHP a databáze)
- PHP - Část XV. (Instalace MySQL ve Windows)
- PHP - Část XVI. (Instalace MySQL na LINUXu)
- PHP - Část XVII. (MySQL - vytvoření nové databáze)
- PHP - Část XVIII. (Vkládání dat do databáze)
- PHP - Část XIX. (MySQL - získávání dat z databáze)
- PHP - Část XX. (SQL - získávání dat z databáze II.)
- PHP - Část XXI. (SQL - získávání dat z databázových tabulek III)
- PHP - Část XXII. (MySQL - modifikace a mazání dat v tabulce)
- PHP část XXIII. - MySQL - přístupová práva
- PHP část XXIV. - PostgreSQL
- PHP část XXV. - Cookies
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007