[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info@builder.cz   Inzerce: reklama@grafika.cz
Diskuzní fóra
.Net (219)
ASP (536)
ActiveX (33)
Assembler (289)
C++ Builder (5087)
Databáze (1381)
Delphi (3993)
DelphiX (264)
DirectX (77)
Java (1730)
JavaScript (1435)
Php (9741)
PowerBuilder (1455)
Problémy a algoritmy (1225)
Programování v Linuxu (421)
Python (30)
Visual Basic (1312)
Visual C++ (1285)
Wap (53)
Web (2117)
Win32 (809)
Textová inzerce
Grafika Publishing, vydavatel http://www.grafika.cz/, http://www.webtip.cz/, http://www.webtip.cz/ a dalších hledá nové posily pro svůj tvůrčí tým.
Chcete se stát tvůrcem prestižních webových projektů?

Bližší informace
Služby Builder.cz
  • Bazar - koupím(15) Nový
       - Koupím učebnici (skripta): Programování v jazyce Object Pascal
       - hledam knihu c++, c#
  • Bazar - prodám(36)
       - Visual Basic Enterprise Ed. 5.0
       - Microsoft Windows XP Professional
  • Hledám práci(47) Nový
       - Programátor PHP, ASP, VBA, JScript, VBS, MySQL a HTML
       - Sprava LINUX/UNIXovych serveru a siti
  • Nabízíme práci(45)
       - PROGRAMÁTOR-ANALYTIK na plný úvazek.
       - HTML, JavaScript, ASP, PHP, MySQL
  • Projekty(15)
       - Diskusní fórum
       - GUANO - začátek i konec
  • Nejčtenější články!
    Naučte se programovat v Delphi (11. díl) - Práce se soubory
    Sériové rozhraní a mobil (3. díl)
    Sériové rozhraní v Delphi (2. díl)
    Upload obrázků
    JavaDoc - lehký úvod
    Allegro - Knihovna pro programování her II.
    Standardní funkční objekty v C++
    Práce se zásobníkem v Assembleru
    PE cryptor - kódování
    Allegro - Knihovna pro programování her III.
    Jak spustit program a počkat na jeho ukončení - podruhé
    Nejnovější články!
    Upload - II a logout
    Sériové rozhraní a mobil II (4. díl)
    Přesměrování Program Entry Pointu
    BASSMOD - Zvuková knihovna
    Jak spustit program a počkat na jeho ukončení - podruhé
    JavaDoc - příkazová řádka
    Upload obrázků
    Allegro - Knihovna pro programování her III.
    Sériové rozhraní a mobil (3. díl)
    JavaDoc - kompletní průvodce tagy
    PHP - Část XX. (SQL - získávání dat z databáze II.)
    Php krok za krokem
    Předchozí díl: PHP - Část XIX. (MySQL - získávání dat z databáze)

    Následující díl: PHP - Část XXI. (SQL - získávání dat z databázových tabulek III)
    Autor: Marek Bražina
    Rubrika: PHP
    Publikováno: 13.11. 2000
      Tisk článku

    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.



    Hodnocení článku
    1 | 2 | 3 | 4 | 5
    Aktuální známka: 2.06
    (Počet známek: 438)

    Komentáře k článku
    -- Žádné příspěvky --
    Přidat příspěvek





    mailto:%20info@builder.cz
    Vydává Grafika Publishing, s.r.o.
    Copyright (c) 1997-2001 Všechna práva vyhrazena