Skip to main content

2.5 Výberový dopyt

Na získanie údajov z databázy používame takzvaný výberový dopyt s príkazom SELECT. Môžeme ho doplniť o selekciu riadkov klauzulou WHERE a tiež potlačiť duplicitné riadky výstupu kľúčovým slovom DISTINCT:

  • SELECT [DISTINCT] {stĺpce alebo výrazy} FROM {tabuľka} [WHERE {podmienka}];

V záujme prehľadnosti je vhodné každú klauzulu písať na samostatný riadok – pri krátkych výrazoch sa to zdá zbytočné, no neskôr je to priam nutnosť. Napríklad môžeme zobraziť priezvisko všetkých Petrov:

SELECT priezvisko
FROM zamestnanci
WHERE meno = 'Peter';

V klauzule SELECT môžeme spájať jednotlivé stĺpce a tiež ľubovoľné texty ohraničené apostrofmi ('). Oracle SQL a PostgreSQL umožňujú jednoduché spájanie operátorom „||“ – je to síce štandard, ale nefunguje v MySQL (v MariaDB len v režime Oracle). Môžeme však použiť funkciu CONCAT(), ktorá funguje vo všetkých troch SQL serveroch, napríklad:

SELECT CONCAT(meno, ' zarába mesačne ', plat)
FROM zamestnanci;

Žiaľ, v Oracle SQL môže mať funkcia CONCAT() len dva parametre, takže vyššie uvedený príklad by mal v univerzálnej podobe zložitejší tvar:

SELECT CONCAT(meno, CONCAT(' zarába mesačne ', plat))
FROM zamestnanci;

Treba dať pozor na rozdiely jednotlivých databázových systémov:

  • rozlišovanie malých / veľkých písmen v texte: Oracle SQL a PostgreSQL ich rozlišujú, MySQL/MariaDB nie;
  • operácia delenia celých čísel: Oracle SQL a MySQL/MariaDB vrátia výsledok ako reálne číslo, PostgreSQL vráti ako výsledok len celú časť (rovnako ako programovací jazyk C++).