Úprava příkazů SQL pro zostření výsledků dotazu
Applies ToAccess pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Pokud vaše dotazy nefungují dostatečně tvrdě, přidáním některých základních příkazů SQL můžete výsledky soustředit. Podívejme se na několik typů příkazů SQL a na klauzule nebo části, které můžete upravit, abyste získali požadované výsledky.

Poznámka:  Tento článek se nevztahuje na webové aplikace pro Access (to je druh databází, které se navrhují v Accessu a publikují online).

V tomto článku

Vytvoření příkazu Select

Příkaz SQL Select má dvě až tři klauzule. Klauzule SELECT říká databázi, kde má hledat data, a požádá ji o vrácení konkrétního výsledku.

Poznámka:  Příkazy SELECT vždy končí středníkem (;) buď na konci poslední klauzule, nebo na řádku na konci příkazu SQL.

Následující příkaz select požádá Access, aby získal informace ze sloupců E-mail Address (E-mailová adresa) a Company (Společnost) z tabulky Contacts (Kontakty), konkrétně tam, kde ve sloupci City (Město) najde "Seattle".

Karta objektu SQL zobrazující příkaz SELECT

Výše uvedený dotaz obsahuje tři klauzule SELECT, FROM a WHERE.

1. Klauzule SELECT obsahuje seznam sloupců obsahujících data, která chcete použít, a obsahuje operátor (SELECT) následovaný dvěma identifikátory (E-mailová adresa a Společnost). Pokud identifikátor obsahuje mezery nebo speciální znaky (například "E-mailová adresa"), uzavřete identifikátor do hranatých závorek.

2. Klauzule FROM identifikuje zdrojová tabulka. V tomto příkladu má operátor (FROM) následovaný identifikátorem (Kontakty).

3. Klauzule WHERE je volitelná. Příklad obsahuje operátor (WHERE) následovaný výrazem (City="Seattle").

Další informace o výběrových dotazech najdete v tématu Vytvoření jednoduchého výběrového dotazu.

Tady je seznam běžných klauzulí SQL:

Klauzule SQL

Akce

Povinné ?

SELECT

Zobrazí seznam polí, která obsahují zajímavá data.

Ano

FROM

Zobrazí seznam tabulek, které obsahují pole uvedená v klauzuli SELECT.

Ano

WHERE

Určuje kritéria pole, která musí každý záznam splnit, aby byl zahrnut do výsledků.

Ne

ORDER BY

Určuje, jak se mají výsledky seřadit.

Ne

GROUP BY

V příkazu SQL, který obsahuje agregační funkce, zobrazí seznam polí, která nejsou shrnuta v klauzuli SELECT.

Pouze v případě, že taková pole existují.

HAVING

V příkazu SQL, který obsahuje agregační funkce, určuje podmínky, které platí pro pole souhrnná v příkazu SELECT.

Ne

Každá klauzule SQL se skládá z termínů. Tady je seznam některých běžných termínů SQL.

Termín SQL

Definice

Příklad

Identifikátor

Název, který použijete k identifikaci databázového objektu, například název sloupce.

[E-mailová adresa] a společnost

Operátor

Klíčové slovo, které představuje akci nebo upravuje akci.

AS

Konstanta

Hodnota, která se nezmění, například číslo nebo NULL.

42

Výraz

Kombinace identifikátorů, operátorů, konstant a funkcí, která se vyhodnocuje na jednu hodnotu.

>= Produkty. [Jednotková cena]

Začátek stránky

Přizpůsobení klauzule SELECT

Přizpůsobení

Příklad

Chcete-li zobrazit pouze jedinečné hodnoty.

Použijte klíčové slovo DISTINCT v klauzuli SELECT.

Pokud například vaši zákazníci pocházejí z několika různých poboček a některé mají stejné telefonní číslo a vy chcete telefonní číslo vidět jenom jednou, bude klauzule SELECT vypadat takto:

SELECT DISTINCT [txtCustomerPhone] 

Změna způsobu zobrazení identifikátoru v zobrazení datových listů za účelem zlepšení čitelnosti

Použijte operátor AS (klíčové slovo, které představuje akci nebo upravuje akci) s aliasem pole v klauzuli SELECT. Alias pole je název, který přiřadíte poli, aby se výsledky snadněji četly.

SELECT [txtCustPhone] AS [Customer Phone]

Přizpůsobení klauzule FROM

Přizpůsobení

Příklad

Můžete použít alias tabulky nebo jiný název, který tabulce přiřadíte v příkazu select. Alias tabulky je užitečný, pokud je název tabulky dlouhý, zejména pokud máte více polí se stejným názvem z různých tabulek.

Pokud chcete vybrat data ze dvou polí, obou s názvem ID, z nichž jedno pochází z tabulky tblCustomer a druhé z tabulky tblOrder:

SELECT [tblCustomer].[ID],        [tblOrder].[ID]

Pomocí operátoru AS definujte aliasy tabulky v klauzuli FROM:

FROM [tblCustomer] AS [C],      [tblOrder] AS [O] 

Tyto aliasy tabulek pak můžete použít v klauzuli SELECT následujícím způsobem:

SELECT [C].[ID],        [O].[ID]

Pomocí spojení můžete zkombinovat dvojice záznamů ze dvou zdrojů dat do jednoho výsledku nebo určit, jestli se mají zahrnout záznamy z obou tabulek, pokud v související tabulce neexistuje odpovídající záznam.

Spojit tabulky tak, aby dotaz sloučil položky z tabulek a vyloučil položky, pokud v druhé tabulce není odpovídající záznam.

Klauzule FROM může vypadat takto:

FROM [tblCustomer] INNER JOIN [tblOrder]ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID] 

Informace o použití spojení

Existují dva typy spojení, vnitřní a vnější spojení. Vnitřní spojení jsou častější v dotazech. Když spustíte dotaz s vnitřním spojením, zobrazí se ve výsledku jenom ty položky, u kterých existuje společná hodnota v obou spojených tabulkách.

Vnější spojení určují, zda se mají zahrnout data, u kterých neexistuje žádná společná hodnota. Vnější spojení jsou směrová, což znamená, že můžete určit, jestli se mají zahrnout všechny záznamy z první tabulky zadané ve spojení (označované jako levé spojení), nebo zahrnout všechny záznamy z druhé tabulky do spojení (označované jako pravé spojení). Vnější spojení má následující syntaxi SQL:

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

Další informace o použití spojení v dotazu najdete v tématu Spojení tabulek a dotazů.

Začátek stránky

Přizpůsobení klauzule WHERE

Klauzule WHERE obsahuje kritéria, která pomáhají omezit počet položek vrácených v dotazu. Podívejte se na příklady kritérií dotazů a jejich fungování.

Příkladem toho, jak můžete přizpůsobit základní klauzuli WHERE, je omezit výsledky dotazu; Předpokládejme, že chcete najít telefonní číslo zákazníka a jeho příjmení si pamatujete jenom jako Bagel. V tomto příkladu jsou příjmení uložená v poli Příjmení, takže syntaxe SQL by byla:

WHERE [LastName]='Bagel'

Klauzule WHERE slouží také ke kombinování zdrojů dat pro sloupce, které mají odpovídající data, ale různé datové typy. To je užitečné, protože nemůžete vytvořit spojení mezi poli, která mají různé datové typy. Jedno pole použijte jako kritérium pro druhé pole s klíčovým slovem LIKE . Pokud například chcete použít data z tabulky Assets (Prostředky) a Employees (Zaměstnanci), pouze pokud má typ aktiva v poli Typ majetku v tabulce Prostředky číslo 3 v poli Množství v tabulce Zaměstnanci, bude klauzule WHERE vypadat takto:

WHERE field1 LIKE field2

Důležité informace:  Kritéria nelze zadat pro pole použité s agregační funkcí v klauzuli WHERE. Místo toho musíte k zadání kritérií agregovaných polí použít klauzuli HAVING.

Začátek stránky

Přizpůsobení pomocí operátoru UNION

Operátor UNION použijte, pokud chcete zobrazit kombinované zobrazení výsledků z několika podobných výběrových dotazů. Například pokud vaše databáze obsahuje tabulku Produkty a služby a obě pole mají tři pole: exkluzivní nabídka nebo produkt nebo služba, cena, záruka nebo záruka. I když tabulka Products (Produkty) uchovává informace o záruce a tabulka Services (Služby) zaručuje informace, základní informace jsou stejné. Pomocí sjednocovacího dotazu můžete zkombinovat tři pole ze dvou tabulek takto:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

Při spuštění dotazu se data z každé sady odpovídajících polí zkombinují do jednoho výstupního pole. Pokud chcete do výsledků zahrnout všechny duplicitní řádky, použijte operátor ALL.

Poznámka:  Příkaz Select musí mít stejný počet výstupních polí ve stejném pořadí a se stejnými nebo kompatibilními datovými typy. Pro účely sjednocovacího dotazu jsou datové typy Číslo a Text kompatibilní.

Další informace o sjednocovacích dotazech najdete v tématu Použití sjednocovacího dotazu k zobrazení sjednoceného výsledku z více dotazů.

Začátek stránky

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.