Toto je jeden zo súboru článkov o jazyku SQL v programe Access. Tento článok popisuje, ako napísať klauzulu SELECT, a používa príklady na znázornenie rôznych techník, ktoré môžete použiť pri jej písaní.
Prehľad o jazyku SQL v programe Access nájdete v článku Jazyk SQL programu Access: základné koncepty, slovník a syntax.
Obsah článku
Výber polí: klauzula SELECT
Príkaz SELECT sa zvyčajne začína klauzulou SELECT. Klauzula SELECT sa používa na určenie názvov polí obsahujúcich údaje, ktoré chcete použiť v dotaze. Namiesto polí alebo spoločne s poľami môžete použiť aj výrazy. Môžete dokonca použiť ako pole aj iný príkaz SELECT – nazýva sa to poddotaz.
Predpokladajme, že chcete vedieť telefónne čísla svojich zákazníkov. Za predpokladu, že pole, ktoré uchováva telefónne čísla zákazníkov, sa nazýva txtCustPhone, klauzula SELECT bude vyzerať takto:
SELECT [txtCustomerPhone]
Názov môžete uzavrieť do hranatých zátvoriek. Ak názov neobsahuje žiadne medzery a špeciálne znaky (napríklad interpunkčné znamienka), hranaté zátvorky nie sú povinné. Ak názov obsahuje medzery alebo špeciálne znaky, hranaté zátvorky musíte použiť.
Tip: Názov, ktorý obsahuje medzery, sa ľahšie číta a ušetrí čas pri návrhu formulárov a zostáv, no budete mať viac písania pri zadávaní príkazov SQL. Tento fakt by ste mali zvážiť pri pomenovaní objektov v databáze programu Access.
Ak príkaz SQL obsahuje dve alebo viac polí, ktoré majú rovnaký názov, v klauzule SELECT musíte do názvu poľa pridať názov zdroja údajov každého poľa. Pre tento zdroj údajov používate rovnaký názov, aký používate v klauzule FROM.
Výber všetkých polí
Ak chcete zahrnúť všetky polia zo zdroja údajov, v klauzule SELECT môžete buď uviesť zoznam všetkých polí jednotlivo, alebo môžete použiť zástupný znak hviezdičku (*). Ak použijete hviezdičku, Access pri spustení dotazu zistí, ktoré polia zdroj údajov obsahuje a zahrnie všetky tieto polia v dotaze. Tým sa zabezpečí, že dotaz zostane aktuálny aj vtedy, keď sa do zdroja údajov pridajú nové polia.
V príkaze SQL môžete použiť hviezdičku spolu s jedným alebo viacerými zdrojmi údajov. Ak použijete hviezdičku a existuje viacero zdrojov údajov, musíte zadať názov zdroja údajov spolu s hviezdičkou, aby Access mohol určiť, z ktorého zdroja údajov treba zahrnúť všetky polia.
Dajme tomu, že chcete vybrať všetky polia z tabuľky Objednávky, ale z tabuľky Kontakty len e-mailovú adresu. Klauzula SELECT môže vyzerať približne takto:
SELECT Orders.*, Contacts.[E-mail Address]
Poznámka: Majte prehľad o tom, kedy použijete hviezdičku. Ak ste neplánovali nové polia, ktoré sa neskôr pridali k zdroju údajov, výsledky dotazu vám nemusia vyhovovať.
Výber jedinečných hodnôt
Ak viete, že príkaz vyberie redundantné údaje a chcete radšej zobraziť len jedinečné hodnoty, môžete v klauzule SELECT použiť kľúčové slovo DISTINCT. Predpokladajme napríklad, že každý váš zákazník predstavuje niekoľko rôznych záujmov, pričom niektorí z nich používajú rovnaké telefónne číslo. Ak chcete zabezpečiť, aby sa každé telefónne číslo zobrazilo len raz, klauzula SELECT bude vyzerať takto:
SELECT DISTINCT [txtCustomerPhone]
Použitie náhradných názvov pre polia alebo výrazy: kľúčové slovo AS
Pomocou kľúčového slova AS a aliasu poľa v klauzule SELECT môžete zmeniť označenie, ktoré sa zobrazí pre každé pole v údajovom zobrazení. Alias poľa je názov, ktorý priradíte poľu v dotaze na uľahčenie čítania výsledkov. Ak napríklad chcete vybrať údaje z poľa s názvom txtCustPhone a toto pole obsahuje telefónne čísla zákazníkov, môžete čitateľnosť výsledkov vylepšiť pomocou aliasu poľa v príkaze SELECT takto:
SELECT [txtCustPhone] AS [Customer Phone]
Poznámka: Alias poľa musíte použiť, keď používate výraz v klauzule SELECT.
Výber pomocou výrazu
Niekedy vás môžu zaujímať výpočty založené na údajoch, alebo budete chcieť načítať len časť údajov v poli. Predpokladajme napríklad, že na základe údajov v poli BirthDate v databáze chcete vrátiť rok narodenia zákazníkov. Klauzula SELECT môže vyzerať asi takto:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Tento výraz pozostáva z funkcie DatePart a dvoch argumentov – „yyyy“ (konštanta) a [BirthDate] (identifikátor).
Akýkoľvek platný výraz môžete použiť ako pole, ak daný výraz vráti ako výstup jednu hodnotu, pričom mu bola daná jedna vstupná hodnota.