[Grafika] [WebTip] [Fotografování] [Galerie] [MujMac] [Printing]
  Redakce: info (at) builder.cz   Inzerce: reklama (at) grafika.cz
Diskuzní fóra
.Net (68472)
ASP (1591)
ActiveX (168)
Allegro (136)
Assembler (3926)
C++ Builder (23160)
C/C++ (44499)
Databáze (30680)
Delphi (78808)
DelphiX (1655)
DirectX (1464)
Java (39508)
JavaScript (12598)
Matematické programy (2178)
OOP a UML (732)
OpenGL (6920)
Php (65225)
PowerBuilder (464)
Problémy a algoritmy (10473)
Programování v Linuxu (2000)
Právo a programování (3384)
Python (1353)
Ruby (136)
Visual Basic (12078)
Visual C++ (12956)
Wap (56)
Web (10895)
Web servery (5549)
Win32 (13553)
Windows CE (865)
XML/XSL (1860)
Textová inzerce
Služby Builder.cz
  • Bazar - koupím(0)
  • Bazar - prodám(0)
  • Hledám práci(0)
  • Nabízíme práci(0)
  • Projekty(0)
  • PHP - Část XX. (SQL - získávání dat z databáze II.)
    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.
    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
    Poslat odkaz emailem
     

    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.


    Zpět na začátek stránky

    Autor: Marek Bražina
    Klikni pro další články autora

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

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




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