Spresnenie výsledkov dotazu úpravou SQL príkazov
Applies ToAccess pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ak vaše dotazy nepracujú dostatočne tvrdo, pridaním niektorých základných SQL príkazov sa môžete zamerať na výsledky. Pozrime sa na niekoľko typov sql príkazov a klauzúl alebo častí, ktoré môžete upraviť, aby ste získali požadované výsledky.

Poznámka:  Tento článok sa nevzťahuje na webové aplikácie Accessu – druh databázy, ktorý navrhujete pomocou Accessu a publikujete online.

Obsah článku

Vytvorenie príkazu Select

Výberový príkaz SQL obsahuje dve až tri klauzuly. Klauzula SELECT oznámi databáze, kde má vyhľadať údaje, a zobrazí výzvu na vrátenie konkrétneho výsledku.

Poznámka:  Príkazy SELECT sa vždy končia bodkočiarkou (;) buď na konci poslednej klauzuly, alebo v riadku samotnom na konci príkazu SQL.

Nasledujúci príkaz select požaduje, aby Access získal informácie zo stĺpcov E-mailová adresa a Spoločnosť z tabuľky Kontakty, konkrétne z miesta, kde sa v stĺpci Mesto nachádza "Seattle".

Karta SQL objektu zobrazujúca príkaz SELECT

Vyššie uvedený dotaz obsahuje tri klauzuly SELECT, FROM a WHERE.

1. Klauzula SELECT obsahuje stĺpce obsahujúce údaje, ktoré chcete použiť, a obsahuje operátor (SELECT), za ktorým nasledujú dva identifikátory (E-mailová adresa a Spoločnosť). Ak identifikátor obsahuje medzery alebo špeciálne znaky (napríklad "E-mailová adresa"), uzavrite identifikátor do hranatých zátvoriek.

2. Klauzula FROM identifikuje zdrojovú tabuľku. V tomto príklade má operátor (FROM) nasledovaný identifikátorom (Kontakty).

3. Klauzula WHERE je voliteľná klauzula. Príklad obsahuje operátor (WHERE) nasledovaný výrazom (City="Seattle").

Ďalšie informácie o výberových dotazoch nájdete v téme Vytvorenie jednoduchého výberového dotazu.

Tu je zoznam bežných sql klauzúl:

SQL klauzula

Jej funkcia

Vyžaduje sa ?

SELECT

Uvádza polia s relevantnými údajmi.

Áno

FROM

Uvádza tabuľky, ktoré obsahujú polia uvedené v klauzule SELECT.

Áno

WHERE

Uvádza kritériá pre polia, ktoré musí spĺňať každý záznam, ak sa má zahrnúť do výsledkov.

Nie

ORDER BY

Určuje spôsob zoradenia výsledkov.

Nie

GROUP BY

V SQL príkaze obsahujúcom agregačné funkcie uvádza polia, ktoré nie sú sumarizované v rámci klauzuly SELECT.

Iba ak existujú takéto polia

HAVING

V SQL príkaze obsahujúcom agregačné funkcie určuje podmienky vzťahujúce sa na polia, ktoré nie sú sumarizované v rámci príkazu SELECT.

Nie

Každá sql klauzula sa skladá z výrazov. Tu je zoznam niektorých bežných výrazov SQL.

SQL výraz

Definícia

Príklad

identifikátor

Názov, ktorý sa používa na identifikáciu databázového objektu, ako je napríklad názov stĺpca.

[E-mailová adresa] a spoločnosť

operátor

Kľúčové slovo reprezentujúce akciu alebo upravujúce akciu.

AS

konštanta

Hodnota, ktorá sa mení, napríklad číslo alebo NULL.

42

výraz

Kombinácia identifikátorov, operátorov, konštánt a funkcií, ktorá sa vyhodnotí ako jedna hodnota.

>= Produkty.[Jednotková cena]

Na začiatok stránky

Prispôsobenie klauzuly SELECT

Prispôsobenie

Príklad

Zobrazenie iba jedinečných hodnôt.

V klauzule SELECT použite kľúčové slovo DISTINCT.

Ak napríklad vaši zákazníci pochádzajú z niekoľkých rôznych pobočiek a niektorí majú rovnaké telefónne číslo a chcete, aby sa v zozname zobrazovalo len raz telefónne číslo, klauzula SELECT by bola takáto:

SELECT DISTINCT [txtCustomerPhone] 

Zmena spôsobu zobrazenia identifikátora v údajovom zobrazení na zlepšenie čitateľnosti.

Použite operátor AS (kľúčové slovo, ktoré predstavuje akciu alebo upravuje akciu) s aliasom poľa v klauzule SELECT. Alias poľa je názov, ktorý priradíte k poľu, aby sa výsledky ľahšie čítali.

SELECT [txtCustPhone] AS [Customer Phone]

Prispôsobenie klauzuly FROM

Prispôsobenie

Príklad

V príkaze Select môžete použiť alias tabuľky alebo iný názov, ktorý priradíte k tabuľke. Alias tabuľky je užitočný, ak je názov tabuľky dlhý, najmä ak máte viacero polí s rovnakým názvom z rôznych tabuliek.

Ak chcete vybrať údaje z dvoch polí, oba s názvom ID, z ktorých jedno pochádza z tabuľky tblCustomer a druhé z tabuľky tblOrder:

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

Na definovanie aliasov tabuliek v klauzule FROM použite operátor AS:

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

Tieto aliasy tabuliek potom môžete použiť v klauzule SELECT takto:

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

Spojenia sa používajú na kombinovanie párov záznamov z dvoch zdrojov údajov do jedného výsledku alebo na určenie, či sa majú zahrnúť záznamy z niektorej z tabuliek, ak v súvisiacej tabuľke neexistuje zodpovedajúci záznam.

Spojenie tabuliek tak, aby dotaz kombinoval položky z tabuliek a vylúčil položky, ak v druhej tabuľke neexistuje zodpovedajúci záznam

Takto by mohla vyzerať klauzula FROM:

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

Informácie o používaní spojení

Existujú dva typy spojení, vnútorné a vonkajšie spojenie. Vnútorné spojenia sú v dotazoch bežnejšie. Keď spustíte dotaz s vnútorným spojením, výsledok zobrazí iba tie položky, v ktorých v oboch spojených tabuľkách existuje spoločná hodnota.

Vonkajšie spojenia určujú, či sa majú zahrnúť údaje, v ktorých neexistuje žiadna spoločná hodnota. Vonkajšie spojenia sú smerové, čo znamená, že môžete určiť, či sa majú zahrnúť všetky záznamy z prvej tabuľky zadanej v spojení (nazývané ľavé spojenie), alebo zahrnúť všetky záznamy z druhej tabuľky do spojenia (nazývané pravé spojenie). Vonkajšie spojenie má nasledujúcu syntax SQL:

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

Ďalšie informácie o používaní spojení v dotaze nájdete v téme Spojenie tabuliek a dotazov.

Na začiatok stránky

Prispôsobenie klauzuly WHERE

Klauzula WHERE obsahuje kritériá, ktoré pomáhajú obmedziť počet položiek vrátených v dotaze. Pozrite si príklady kritérií dotazu a ich fungovania.

Príkladom toho, ako môžete prispôsobiť základnú klauzulu WHERE, je obmedzenie výsledkov dotazu. Predpokladajme, že chcete vyhľadať telefónne číslo zákazníka a jeho priezvisko si môže pamätať len ako Bagel. V tomto príklade sú priezvisťá uložené v poli Priezvisko, takže syntax SQL by bola:

WHERE [LastName]='Bagel'

Klauzulu WHERE použite aj na kombinovanie zdrojov údajov pre stĺpce, ktoré majú zodpovedajúce údaje, ale rôzne typy údajov. Je to užitočné, pretože nie je možné vytvoriť spojenie medzi poľami, ktoré majú rôzne typy údajov. Jedno pole použite ako kritérium pre druhé pole s kľúčovým slovom LIKE . Ak napríklad chcete použiť údaje z tabuľky Aktíva a tabuľky Zamestnanci, iba ak typ majetku v poli typ majetku v tabuľke Aktíva obsahuje číslo 3 v poli Množstvo v tabuľke Zamestnanci, takto bude vyzerať klauzula WHERE:

WHERE field1 LIKE field2

Dôležité:  V klauzule WHERE nie je možné zadať kritériá pre pole, ktoré sa používa s agreganou funkciou. Namiesto toho môžete na stanovenie kritérií pre agregované polia použiť klauzulu HAVING.

Na začiatok stránky

Prispôsobenie pomocou operátora UNION

Operátor UNION použite vtedy, keď chcete zobraziť kombinované zobrazenie výsledkov z niekoľkých podobných výberových dotazov. Ak má vaša databáza napríklad tabuľku Produkty a tabuľku Služby a obe obsahujú tri polia: exkluzívnu ponuku alebo produkt alebo službu, cenu, záruku alebo záruku. Napriek tomu, že v tabuľke Produkty sú uložené informácie o záruke a tabuľka Služby obsahuje informácie o záruke, základné informácie sú rovnaké. Zjednocovací dotaz môžete použiť na skombinovanie troch polí z týchto dvoch tabuliek:

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

Pri spustení dotazu sa údaje z každej množiny zodpovedajúcich polí skombinujú do jedného výstupného poľa. Ak chcete do výsledkov zahrnúť všetky duplicitné riadky, použite operátor ALL.

Poznámka:  Príkaz Select musí mať rovnaký počet výstupných polí v rovnakom poradí a s rovnakými alebo kompatibilnými typmi údajov. Na účely zjednocovacieho dotazu sú typy údajov Number a Text kompatibilné.

Ďalšie informácie o zjednocovacích dotazoch nájdete v téme Použitie zjednocovacieho dotazu na zobrazenie jednotného výsledku z viacerých dotazov.

Na začiatok stránky

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.