Toto je jeden ze sady článků o jazyku SQL v Accessu. Tento článek popisuje, jak se používá klauzule SELECT, a pomocí příkladů ilustruje různé techniky, které můžete při jejich psaní použít.
Přehled jazyka SQL v Accessu najdete v článku Jazyk SQL v Accessu: základní koncepty, slovník a syntaxe.
V tomto článku
Výběr polí: klauzule SELECT
Příkaz SELECT obvykle začíná klauzulí SELECT. Pomocí klauzule SELECT můžete zadat názvy polí obsahujících data, která chcete použít v dotazu. Místo nebo kromě polí můžete také použít výrazy. Jako pole můžete dokonce použít jiný příkaz SELECT, což se označuje jako poddotaz.
Dejme tomu, že chcete znát telefonní čísla svých zákazníků. Za předpokladu, že má pole sloužící k uložení zákaznických telefonních čísel název txtCustPhone, vypadá klauzule SELECT takto:
SELECT [txtCustomerPhone]
Název můžete uzavřít do hranatých závorek. Pokud název neobsahuje žádné mezery ani speciální znaky (třeba interpunkci), jsou hranaté závorky nepovinné. Pokud název obsahuje mezery nebo speciální znaky, musíte hranaté závorky použít.
Tip: Název, který obsahuje mezery, je srozumitelnější a dokáže vám při návrhu formulářů a sestav ušetřit čas, musíte se ale smířit s tím, že při vytváření příkazů SQL budete hodně psát. Při pojmenování objektů v databázi Accessu byste tuto skutečnost měli vzít do úvahy.
Pokud příkaz SQL obsahuje dvě nebo více polí se stejným názvem, musíte názvy polí v klauzuli SELECT doplnit o název zdroje dat jednotlivých polí. Pro zdroj dat, který používáte v klauzuli FROM, použijete stejný název.
Výběr všech polí
Když chcete zahrnout všechna pole z nějakého zdroje dat, můžete v klauzuli SELECT buď vypsat všechna pole individuálně, nebo použít zástupný znak hvězdička (*). Když použijete hvězdičku, Access při spuštění dotazu určí, jaká pole zdroj dat obsahuje, a zahrne do dotazu všechna tato pole. To zajišťuje aktuálnost dotazu, pokud se do zdroje dat doplní nová pole.
V příkazu SQL můžete hvězdičku použít u jednoho nebo několika zdrojů dat. Pokud použijete hvězdičku s několika zdroji dat, musíte spolu s hvězdičkou začlenit název zdroje dat, aby Access mohl určit, ze kterého zdroje dat chcete zahrnout všechna pole.
Předpokládejme, že chcete vybrat všechna pole z tabulky Orders, ale jenom e-mailovou adresu z tabulky Contacts. Klauzule SELECT by mohla vypadat takto:
SELECT Orders.*, Contacts.[E-mail Address]
Poznámka: Nezapomeňte sledovat, kde jste hvězdičku použili. Když později do zdroje dat přidáte nová pole, s kterými jste nepočítali, nemusí výsledky dotazu odpovídat tomu, co chcete.
Výběr rozdílných hodnot
Pokud víte, že váš příkaz vybere redundantní data, ale raději byste viděli jenom rozdílné hodnoty, můžete v klauzuli SELECT použít klíčové slovo DISTINCT. Dejme tomu, že každý z vašich zákazníků zastupuje několik různých účastníků, z nichž někteří používají stejné telefonní číslo. Pokud chcete zajistit, aby se každé telefonní číslo zobrazilo jenom jednou, bude klauzule SELECT vypadat následovně:
SELECT DISTINCT [txtCustomerPhone]
Použití zástupných názvů pro pole nebo výrazy: klíčové slovo AS
Popisek, který se zobrazuje u jakéhokoli pole v zobrazení Datový list, můžete změnit pomocí klíčového slova AS a aliasu pole v klauzuli SELECT. Alias pole je název, který přiřadíte nějakému poli v dotazu, aby byly výsledky srozumitelnější. Pokud například chcete vybrat data z pole s názvem txtCustPhone a toto pole obsahuje telefonní čísla zákazníků, můžete zlepšit srozumitelnost výsledků pomocí aliasu pole v příkazu SELECT následujícím způsobem:
SELECT [txtCustPhone] AS [Customer Phone]
Poznámka: Alias pole musíte použít, pokud v klauzuli SELECT použijete výraz.
Výběr pomocí výrazu
Někdy si chcete prohlédnout výpočty na základě dat nebo načíst jenom část dat nějakého pole. Dejme tomu, že na základě dat v poli BirthDate v databázi chcete vrátit rok, ve kterém se narodili vaši zákazníci. Klauzule SELECT by mohla vypadat takto:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Tento výraz se skládá z funkce DatePart a dvou argumentů – "yyyy" (konstanty) a [BirthDate] (identifikátoru).
Jako pole můžete použít jakýkoli platný výraz, pokud pro danou jednu vstupní hodnotu vrátí tento výraz také jednu hodnotu.