SELECT
FROM
[WHERE ]
[GROUP BY ]
[HAVING ]
[ORDER BY ]
//Příklad:// Výběr partnerů a k nim počet vystavených faktur a celková cena k
úhradě. Omezení podmínkou data vystavení od 1.1.2005 a celkovou sumou k úhradě
větší než 1000 Kč. Seřazeno dle čísla partnera.
select idpartner, count(idfaktura), sum(cenakuhrade)
from faktury_faktury
where
datumvystaveni > '1.1.2005' and
idfdruh = 'fv'
group by idpartner
having sum(cenakuhrade) > 1000
order by idpartner
//Příklad:// Výběr ze dvou tabulek -- použití spojení dvou
tabulek. Výběr partnerů a k nim seznam vystavených faktur. Omezení podmínkou
data vystavení faktur od 1.1.2005.
select * from partneri_partneri partneri
join faktury_faktury faktury on faktury.idpartner = partneri.idpartner
where
faktury.datumvystaveni $>$ '1.1.2005' and
faktury.idfdruh = 'fv'
order by idpartner}
==== Změna hodnot ve sloupcích řádků tabulky ====
UPDATE
[]
SET =
[, = [, ....]]
[WHERE ]
Do všech sloupců, které jsou uvedeny za klíčovým slovem //SET// se vloží
hodnota odpovídajícího výrazu. Pomocí podmínky za klíčovým slovem
//WHERE// můžeme omezit množinu řádků, kterých se bude aktualizace
týkat.
//Příklad:// Vynulování množství u rozpočtu 'RZ00015'.
update rozpocty_rpolozky
set mnozstvi = '0'
where idrozp = 'RZ00015'
==== Přidání řádků do tabulky ====
INSERT INTO
[( [, [, ...]])]
| VALUES
( [, [, ...])
Nový řádek přidáme do tabulky uvedením hodnot pro všechny sloupce v tabulce.
Tímto způsobem můžeme přidat vždy pouze jeden řádek.
Více řádků najednou přidáme do tabulky pomocí vnořeného dotazu //SELECT//,
který musí mít stejnou strukturu seznamu výstupních sloupců (počet a datové
typy sloupců), jako má tabulka, do které chceme řádky přidat. Řádky, které jsou
výsledkem tohoto dotazu, jsou automaticky přidány k již existujícím řádkům v
tabulce.
//Příklad:// Doplnění číselníku nákladů z číselníku
rekapitulačních položek.
insert into rozpocty_crnakl
(idnakl, popis, vypocet, barva, typ, koef, zaklad, druhy)
select idrek, popis, vypocet, barva, typ, koef, zaklad, druhy
from rozpocty_crekap
==== Vymazání řádků z tabulky ====
DELETE FROM
[WHERE ]
Příkaz //DELETE// vymaže z tabulky všechny řádky, které splňují podmínku
zadanou za klíčovým slovem //WHERE//. Není-li tato podmínka uvedena, jsou
z tabulky vymazány všechny řádky.
Příkaz //DELETE// vymaže z tabulky celé řádky. Pokud chceme pouze vymazat
hodnotu v určitém sloupci (nastavit ji na //NULL//), musíme použít příkaz
//UPDATE//.
//Příklad:// Smazání všech ceníkových položek z druhu 'old'.
delete from rozpocty_cenik
where iddruh = 'old'