Spresnenie výsledkov dotazu úpravou SQL príkazov

Spresnenie výsledkov dotazu úpravou SQL príkazov

Ak vaše dotazy nefungujú dostatočne tvrdo, pridanie niektorých základných SQL ných výpisov môže pomôcť zamerať výsledky. Pozrime sa na niekoľko typov príkazov SQL a klauzuly alebo časti, ktoré by ste mohli 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

Príkaz select SQL obsahuje dve až tri klauzuly. Klauzula SELECT rozpráva o tom, kde sa údaje majú vyhľadať, a požiada ju o vrátenie konkrétneho výsledku.

Poznámka:  Vyberte položku výkazy vždy končiť bodkočiarkou (;) buď na konci poslednej klauzuly, alebo na samotnej trati na konci príkazu SQL.

Nasledujúci príkaz select žiada Access o získanie informácií z e-mailovej adresy a podnikových stĺpcov z tabuľky Kontakty, konkrétne tam, 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 uvádza stĺpce, ktoré obsahujú údaje, ktoré chcete použiť, a má operátor (SELECT), za ktorým nasledujú dva identifikátory (e-mailová adresa a spoločnosť). Ak má identifikátor medzery alebo špeciálne znaky (napríklad "e-mailová adresa"), priložiť identifikátor v hranatých zátvorkách.

2. Klauzula FROM identifikuje zdrojovú tabuľku. V tomto príklade má operátor (od), za ktorým nasleduje identifikátor (kontakty).

3. klauzula WHERE je voliteľná klauzula. Príklad obsahuje operátor (kde), za ktorým nasleduje výraz (mesto = "Seattle").

Ďalšie informácie o vybratý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

Povinné ?

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á klauzula SQL pozostáva z výrazov. Tu je zoznam niektorých bežných SQL podmienok.

SQL výraz

Definícia

Príklad

identifikátor

Názov, ktorý používate 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ôsobiť

Príklad

Zobrazíte iba odlišné hodnoty.

Použite odlišné kľúčové slovo v klauzule SELECT.

Napríklad, ak sú vaši zákazníci z niekoľkých rôznych pobočiek a niektoré majú rovnaké telefónne číslo a chcete zobraziť len telefónne číslo, ktoré je uvedené len raz, vaša klauzula SELECT bude vyzerať takto:

SELECT DISTINCT [txtCustomerPhone] 

Ak chcete zmeniť spôsob, akým sa identifikátor zobrazí v údajovom zobrazení na zlepšenie čitateľnosti.

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

SELECT [txtCustPhone] AS [Customer Phone]

Prispôsobenie klauzuly FROM

Prispôsobiť

Príklad

Môžete použiť alias tabuľky alebo iný názov, ktorý ste priradili k tabuľke v príkaze SELECT. Alias tabuľky je užitočný, ak je názov názvu 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í, pričom obidva pomenované ID, z ktorých jeden pochádza z tabuľky Tblzákazník a druhej z tabuľky Tblobjednávka:

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

Použite operátor ako na definovanie aliasov tabuľky v klauzule FROM:

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

Tieto aliasy tabuľky potom môžete použiť v klauzule SELECT takto:

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

Použite spojenia na kombinovanie párov záznamov z dvoch zdrojov údajov na jeden výsledok alebo na určenie, či chcete zahrnúť záznamy z ktorejkoľvek tabuľky, ak sa v súvisiacej tabuľke nenachádza žiadny zodpovedajúci záznam.

Pridajte sa k tabuľkám, aby sa v dotaze zlúčili položky z tabuliek a vylúčili sa položky, keď v druhej tabuľke nie je žiadny zodpovedajúci záznam.

Klauzula FROM môže vyzerať takto:

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

Informácie o používaní pripojení

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

Vonkajšie spojenia špecifikujte, či chcete zahrnúť údaje tam, kde neexistuje žiadna bežná hodnota. Vonkajšie spojenia sú smerové, čo znamená, že môžete určiť, či chcete zahrnúť všetky záznamy z prvej tabuľky zadanej v spojení (nazývané ľavé spojenie), alebo zaradiť všetky záznamy z druhej tabuľky do spojenia (nazývané správne spojenie). Vonkajšie spojenie obsahuje nasledujúcu syntax SQL:

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

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

Na začiatok stránky

Prispôsobenie klauzuly WHERE

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

Príkladom toho, ako môžete prispôsobiť klauzulu Basic WHERE na obmedzenie výsledkov dotazu. Predpokladajme, že chcete vyhľadať telefónne číslo zákazníka a zapamätať si len jeho priezvisko ako pečivo. V tomto príklade sú posledné mená uložené v poli priezvisko, takže syntax SQL by mala byť:

WHERE [LastName]='Bagel'

Klauzulu WHERE použite aj na kombinovanie zdrojov údajov v stĺpcoch, ktoré majú zhodné údaje, ale rôzne typy údajov. Táto hodnota je užitočná, pretože nie je možné vytvoriť spojenie medzi poľami, ktoré majú rôzne typy údajov. Použitie jedného poľa ako kritéria pre iné pole s kľúčovým slovom like . Ak chcete napríklad použiť údaje z tabuľky aktíva a z tabuľky zamestnanci, iba ak typ aktíva v poli Typ aktíva v tabuľke aktíva obsahuje číslo 3 v poli množstvo v tabuľke zamestnanci, tu je niekoľko príkladov, ktoré bude vyzerať takto:

WHERE field1 LIKE field2

Dôležité:  V klauzule WHERE nie je možné zadať kritériá pre pole, ktoré sa používa pri agregačnej funkcii. 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

Ak chcete zobraziť kombinované zobrazenie výsledkov z niekoľkých podobných výberových dotazov, použite operátor UNION. Ak má databáza napríklad tabuľku produkty a tabuľku služby a obe majú tri polia: Exkluzívna ponuka alebo produkt alebo služba, cena, záruka alebo záruka. Hoci tabuľka produkty ukladá informácie o záruke a v tabuľke služby sú uložené informácie o záruke, základné informácie sú rovnaké. Pomocou zjednocovacieho dotazu môžete kombinovať tri polia z týchto dvoch tabuliek takto:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

Keď spustíte dotaz, údaje z každej množiny zodpovedajúcich polí sa zlúčia do jedného výstupného poľa. Ak chcete do výsledkov zahrnúť ľubovoľné 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?

Rozšírte svoje zručnosti práce s balíkom Office
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×