Super Svět / phpRS
Všechny ideály nepotřebují jen křídla, ale i místo, odkud by mohly vzlétnout (Ernest Hemingway)


sipka  Hlavní menu

te?ka Hlavní stránka
te?ka Seznam rubrik
te?ka Download
te?ka Weblinks / Odkazy
te?ka Ankety
te?ka TOP 30
te?ka MySQL

te?ka phpRS: dokumentace
te?ka phpRS: community web
te?ka phpRS: fórum
te?ka phpRS: Gallery

te?ka Snooker blog

te?ka Redak?ní stránka
te?ka Roz?í?ené vyhledávání
te?ka Personalizace

te?ka Reklama
te?ka Inzerujte u nás!

sipka  Seznam rubrik


sipka  ZONER software, s.r.o.

ZONER software, s. r. o.
ZONER software, s. r. o. je oficiální partner phpRS projektu.

sipka  Vyhledávání


Hledej
v Super Sv?t?!


Opus Dei

sipka  Doporu?ujeme


phpRS gallery

phpRS plug-iny, dopl?ky

phpRS: community web

sipka  Kalendá?

<<  Listopad  >>
PoÚtStČtSoNe
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30    

sipka  Reklama

Tane?ní orchestr Milana Reinberka a hudební skupina GARANT

www stránky
Tel.: +420 775 931 666

sipka  Reklama


sipka  Super Sv?t


Ikona ?asopisu Super Sv?t

ISSN 1213-3728

Copyright
Ji?í Luká?, 1998-2007


REDAKCE
Ji?í Luká? - ?éfredaktor

Redak?ní stránka

RSS | Atom

sipka  Ikony


PaBi3.com

Seznamka

TOPlist

MySQL

MySQL aneb u?íme se SQL jazyk (VIII.)

Ji?í Luká? - MySQL - 31. 10. 2000 - 27914 přečtení

Zhruba po m?sí?ní pomlce vás op?t vítám u dal?ího v po?adí ji? osmého dílu na?eho seriálu "MySQL aneb u?íme se SQL jazyk", který si klade za cíl seznámit vás prost?ednictvím databázového serveru MySQL s rela?ními databázovými systémy a SQL jazykem.

Dnes dokon?ím výklad SQL p?íkazu SELECT a za?nu výklad p?íkazu DELETE, s jeho? pomocí se vymazávají data z tabulky, nikoli v?ak tabulka samotná (viz. pátý díl)!

Ov?em je?t? ne?-li se za?neme zabývat vý?e nazna?enými úkoly, rád bych roz?í?il mno?ství dat v na?í tabulce o n?co málo záznam?, aby lépe vynikly ní?e probírané p?íkazy.

INSERT INTO zamestnanec VALUES (3,"Jiri","Lopata",5000);
INSERT INTO zamestnanec VALUES (4,"David","Mikes",6500);
INSERT INTO zamestnanec VALUES (5,"Tomas","Privratsky",6500);
INSERT INTO zamestnanec VALUES (6,"Petr","Vomacka",9000);

Seskupování ?ádk? v tabulce

Pro seskupení ?ádk? se stejnými hodnotami ve specifikovaném sloupci a jejich nahrazení jednou hodnotou odpovídající spole?né hodnot? se pou?ívá pod p?íkaz GROUP BY jména_sloupc?, který je sou?ástí SQL p?íkazu SELECT. Jeliko? si myslím, ?e pravou hodnotu tohoto p?íkazu lze pochopit jen z n?jakého reálného p?íkladu, nebudu vás dále zat??ovat slovním popisem tohoto p?íkazu a rad?ji ihned p?istoupím k ukázkovému p?íkladu.

Vzorový p?íklad ?íslo sedm: (Zadání: A) Prove?te výb?r/výpis tabulky "zamestnanec" tak, aby byly shodné hodnoty ve sloupci "plat" seskupeny do jedné ?ádky a neopakovaly se tak ?ádky se stejnou hodnotou v tomto sloupci. B) Prove?te tentý? výb?r s tím, ?e na míst? v syntaxi ozna?ené jako "specifikace_výstupních_sloupc?" (viz. ?estý díl) nepou?ijete zástupný symbol hv?zdi?ku, ale p?ímo specifikujete sloupec "plat" a sou?tovou funkci "count(plat)", která ke ka?dé hodnot? sloupce "plat" se?te po?et shodných záznam?.)

?e?ení A:

mysql> SELECT * FROM zamestnanec
    -> GROUP BY plat;
+----------------+-------+----------+---------+
| poradove_cislo | jmeno | prijmeni | plat    |
+----------------+-------+----------+---------+
|              2 | NULL  | Ryba     |    NULL |
|              1 | Petr  | Novak    | 5000.00 |
|              4 | David | Mikes    | 6500.00 |
|              6 | Petr  | Vomacka  | 9000.00 |
+----------------+-------+----------+---------+
4 rows in set (0.05 sec)

?e?ení B:

mysql> SELECT plat,count(plat) FROM zamestnanec
    -> GROUP BY plat;
+---------+-------------+
| plat    | count(plat) |
+---------+-------------+
|    NULL |           0 |
| 5000.00 |           2 |
| 6500.00 |           2 |
| 9000.00 |           1 |
+---------+-------------+
4 rows in set (0.05 sec)

Jak sami vidíte, tak seskupovací pod p?íkaz GROUP BY je sice "silný nástroj" (- v jistém slova smyslu), ale v ur?itých situací jeho pou?itím nezískáme nic, ba naopak. Ukázkou takového ?patné pou?ití je první zadání ozna?ené jako A, které je sice správn? vy?e?eno a po syntaktické stránce je v po?ádku, av?ak jeho provedením nezískáme nic u?ite?ného - zobrazí se v?echny ?ádky, kde dojde poprvé k výskytu dané hodnoty ve sloupci "plat".

Na druhou stranu výstupem druhé varianty tého? p?íkladu ozna?eného jako B je pom?rn? u?ite?ná tabulka, která nám ?íká, kolik zam?stnanc? evidovaných v této tabulce pobírá shodnou ?ástku uvedenou ve sloupci "plat".

Pozor! Sou?tová funkce COUNT(definice_s?ítané_v?ci) nes?ítá ?ádky, ve kterých se vyskytuje hodnota NULL.

Omezení souhrnných ?ádk? v tabulce

Pou?ijete-li v p?íkazu SELECT pod p?íkaz GROUP BY, m??ete pomocí podmínky za klí?ovým slovem HAVING agrega?ní_podmínka omezit, které souhrnné ?ádky budou uvedeny ve výsledku. Pouze souhrnné ?ádky, které splní uvedenou podmínku, jsou za?azeny do výsledného výstupu.

Vzorový p?íklad ?íslo osm: (Zadání: Prove?te výpis tabulky "zamestnanec" dle zadání vzorového p?íkladu 7B s tím, ?e je?t? navíc omezíte výstup souhrnných ?ádk? podmínkou typu HAVING, která ?íká, ?e v?echna výstupní data musí mít ve sloupci "plat" hodnotu vy??í ne? 5000,- K?.)

?e?ení:

mysql> SELECT plat,count(plat) FROM zamestnanec
    -> GROUP BY plat HAVING plat>5000;
+---------+-------------+
| plat    | count(plat) |
+---------+-------------+
| 6500.00 |           2 |
| 9000.00 |           1 |
+---------+-------------+
2 rows in set (0.05 sec)

Jeliko? si myslím, ?e více znalostí k pr?m?rnému ovládání SQL p?íkazu SELECT není zapot?ebí, tak bych tímto vý?e uvedeným vzorových p?íkladem ?íslo osmu tuto kapitolu uzav?el a p?e?el k nové s názvem ...

Vymazávání dat (?ádk?) z tabulky

Proto?e p?edpokládám, ?e asi ka?dý na základ? vý?e uvedeného nadpisu kapitoly tu?í, o ?em bude ?e?, nebudu se zdr?ovat zbyte?nými ?e?mi a hned p?ejdu k syntaxi SQL p?íkazu DELETE, s jeho? pomocí m??eme vymazávat data z tabulky.

Syntaxe: DELETE FROM jméno_tabulky WHERE podmínka

Pokud vám pod p?íkaz WHERE podmínka p?ipadá pon?kud pov?domí, tak máte pravdu, jeliko? jsme se jim ji? zabývali v rámci SQL p?íkazu SELECT a mohu vám ?íci, ?e se jedná o tentý? pod p?íkaz, který se ?ídí stejnými pravidly. Rozdíl je pouze v tom, jaký vliv má tato podmínka na výsledek p?íkazu DELETE oproti p?íkazu SELECT. Zatím co u p?íkazu SELECT jsme za pomoci tohoto pod p?íkazu dosáhli zú?ení vypsaných dat, u p?íkazu DELETE se tento pod p?íkaz pou?ívá ke stanovení konkrétní mno?iny ?ádk?, které mají být z tabulky vymazány.

Pozor! Pokud tento pod p?íkaz úpln? vypustíte z p?íkazu DELETE, tak dojde k vymazání celé tabulky, tedy bude zru?en ve?kerý obsah tabulky, jen? se daný p?íkaz DELETE týká!

P?í?t? dokon?íme výklad SQL p?íkazu DELETE a podíváme se na úpravu dat ulo?ených v tabulce. P?eji p?íjemný týden ...


[Akt. známka: 0,50 / Počet hlasů: 2] 1 2 3 4 5
Celý článek | Zpět | Počet komentářů: 17 | Přidat komentář | Informační e-mail Vytisknout článek

sipka  ?tená?i

Neznámý čtenář

sipka  Novinky

31.12.2008: ?ťastný nový rok
Vá?ení u?ivatelé phpRS systému a ?tená?i Super Sv?ta, p?ejeme Vám do nového roku 2009 hodn? zdraví, ?t?stí a pracovních úsp?ch?.

30.10.2008: Dal?í vývoj phpRS systému
Vá?ení u?ivatelé phpRS systému, jak jste si ji? ur?it? v?imli, tento rok bohu?el nebyl pro vývoj phpRS systému vlídný, co? se p?edev?ím projevilo na pozastavení (zdr?ení) vývoje nové trojkové verze. Hlavní p?í?inou je nedostatek volného, který si ka?dý vývoj ?ádá.

Rád bych v?ak zd?raznil, ?e tento stav rozhodn? neznamená zánik phpRS projektu a pevn? v??ím, ?e se ji? brzy budeme spole?n? radovat z nové verze.

30.06.2008: phpRS anketa 2008
Start leto?ního 5. ro?níku Ankety o nejlep?í phpRS web roku 2008 se odkládá na zá?í. Mezi hlavní d?vody pat?í aktuální nedostatek volného ?asu a dlouhodob? pozorovný zájem o zm?nu termínu na mimo-prázdninový ?as. D?kujeme za pochopení.

sipka  Personalizace

U?ivatelské jméno:

Heslo:




Registrace nového ?tená?e!
Upravit existující ú?et!


sipka  P?ehled funkcí phpRS

Stru?ný a p?ehledný seznam základních funkcí phpRS systému najdete zde.

sipka  Pou?íváte phpRS ???

Výzva pro v?echny u?ivatele redak?ního systému phpRS: "Zaregistrujte se v Seznamu webových server? vyu?ívajících redak?ních systém phpRS" a dejte tak najevo, ?e phpRS je dobrá volba!

sipka  Reklama

Tuning - novinky ze sv?ta tuningu na jednom míst?.
Rally - rozcestník s aktuálními ?lánky z ?eských a slovenských web? o rally.
Avon - dekorativní a pleťová kosmetika.
Tuning samolepky a komunitní tuning web.
LCD televize a dal?í elektronika a bílá technika.
Koupelnový nábytek od p?edního ?eského výrobce.
Projekty rodinných dom? - katalog projekt?.
Rodinné domy na klí? a adresá? stavebních firem.
Na?emimi - bazar a aukce oble?ení a hra?ek na miminka a d?ti

Done ==> $userfile_name"; } } else{ echo'
'; } ?>

Web site powered by phpRS PHP Scripting Language MySQL Apache Web Server

Tento web site byl vytvořen prostřednictvím phpRS - redakčního systému napsaného v PHP jazyce.
Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
nebo registrovanými ochrannými známkami příslušných vlastníků.