![]() |
|
Všechny ideály nepotřebují jen křídla, ale i místo, odkud by mohly vzlétnout (Ernest Hemingway) | ![]() |
|
![]() MySQL aneb u?íme se SQL jazyk (VIII.)
Ji?í Luká? -
MySQL -
31. 10. 2000 - 30362 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)!
INSERT INTO zamestnanec VALUES (3,"Jiri","Lopata",5000); 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 ?e?ení B:
mysql> SELECT plat,count(plat) FROM zamestnanec 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 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 ...
Související články:
Celý článek |
Zpět |
Počet komentářů: 17 |
Přidat komentář |
MySQL aneb u?íme se SQL jazyk (XIII.) (28.06.2002) MySQL aneb u?íme se SQL jazyk (XII.) (25.09.2001) MySQL aneb u?íme se SQL jazyk (XI.) (29.05.2001) MySQL aneb u?íme se SQL jazyk (X.) (22.01.2001) MySQL aneb u?íme se SQL jazyk (IX.) (29.11.2000) MySQL aneb u?íme se SQL jazyk (VII.) (25.09.2000) MySQL aneb u?íme se SQL jazyk (VI.) (26.08.2000) MySQL aneb u?íme se SQL jazyk (V.) (30.07.2000) MySQL aneb u?íme se SQL jazyk (IV.) (24.07.2000) MySQL aneb u?íme se SQL jazyk (III.) (06.07.2000) MySQL aneb u?íme se SQL jazyk (II.) (29.06.2000) MySQL aneb u?íme se SQL jazyk (I.) (22.06.2000) ![]() ![]() |
|
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ů.