Úvodné informácie o jazyku SQL v programe Access

Dôležité : Tento článok je strojovo preložený, prečítajte si vyhlásenie. Anglickú verziu tohto článku nájdete tu a môžete ju použiť ako referenciu.

Ak chcete načítať údaje z databázy, požiadajte údajov pomocou Structured Query Language alebo SQL. SQL je počítačový jazyk, ktorý sa podobá angličtina, zrozumiteľný databázy programy. Znalosti SQL je dôležité, pretože každý dotaz v programe Microsoft Access používa SQL. Pochopiť, ako funguje SQL môže pomôcť pri vytváraní lepšie dotazov a umožňujú jednoduchšie pre vás na opravu dotazu, keď nevracia výsledky, ktoré chcete.

Poznámka : Kód jazyka SQL pre webový dotaz nie je možné upravovať.

Obsah tohto článku

Čo je SQL?

Základné SQL klauzúl: SELECT, FROM, a jeho umiestnenie

Zoradenie výsledkov: ORDER BY

Práca s súhrnné údaje: zoskupiť podľa a HAVING

Výsledky dotazu v kombinácii: únie

Ďalšie informácie o klauzula SELECT

Ďalšie informácie o Klauzula FROM

Ďalšie informácie o klauzuly WHERE

Čo je SQL?

SQL je počítačový jazyk pre prácu s množiny fakty a vzťahy medzi nimi. Relačné databázy programov, akými sú prístup, použite SQL na prácu s údajmi. Rovnako ako mnoho jazykov počítača, SQL je medzinárodný štandard, ktorý je rozpoznaný normy orgány, ako napríklad ISO a ANSI.

SQL sa slúži na popis množiny údajov, ktoré môžu pomôcť nájsť odpovede na otázky. Ak chcete použiť SQL, musíte použiť správnej syntaxe. Syntax je množina pravidiel, ktorými sa správne kombinujú prvky jazyka. SQL syntax vychádza z anglickej syntax a použitie mnoho rovnakých prvkov ako jazyka Visual Basic for Applications (VBA) syntax.

Napríklad jednoduchý príkaz SQL načítavajúci zoznam priezvisk pre kontakty s menom Mary by mohol vyzerať nasledovne:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Poznámka : SQL sa nepoužíva len pre prácu s údajmi, ale aj pri vytváraní a zmenu návrhu databázových objektov, ako sú napríklad tabuľky. V časti SQL, ktorý sa používa pri vytváraní a meniť databázových objektov sa nazýva jazyk definície údajov (DDL). V tejto téme sa neopisuje DDL. Ďalšie informácie nájdete v článku Vytvorenie alebo úprava tabuliek alebo indexov pomocou dotazu definujúceho údaje.

Príkazy SELECT

Na popis údajov pomocou množiny údajov použitím jazyka SQL zadávate príkaz SELECT. Príkaz SELECT obsahuje úplný popis množiny údajov, ktorú chcete získať z databázy. Zahŕňa to nasledovné:

  • Ktoré tabuľky obsahujú údaje

  • Ako spolu súvisia údaje s rôznych zdrojov

  • Ktoré polia alebo výpočty vygenerujú údaje

  • Kritériá, ktoré musí zodpovedať údajov sa súčasťou.

  • Či sa majú zoraďovať výsledky a ako

Klauzuly SQL

Podobne ako veta sa príkaz SQL skladá zo segmentov nazývaných klauzuly. Každá klauzula vykonáva funkciu pre príkaz SQL. Niektoré klauzuly sú v príkaze SELECT povinné. V nasledujúcej tabuľke sa uvádzajú najbežnejšie klauzuly SQL.

Klauzula SQL

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 príkaze SQL 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 príkaze SQL 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

Termíny SQL

Každá klauzula SQL pozostáva z termínov – porovnateľných so segmentmi reči. V nasledujúcej tabuľke sa uvádzajú typy termínov SQL.

Termín SQL

Porovnateľná časť reči

Definícia

Príklad

identifikátor

podstatné meno

Názov, ktorý používate na identifikáciu objektu databázy, napríklad názov poľa.

Customers.[Phone Number]

operátor

sloveso alebo príslovka

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

AS

konštanta

podstatné meno

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

42

výraz

prídavné meno

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

>= Products.[Unit Price]

Na začiatok stránky

Základné klauzuly SQL: SELECT, FROM a WHERE

Príkaz SQL má vo všeobecnosti formu:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Poznámky : 

  • Program Access ignoruje zlomy riadkov v príkaze SQL. Zvážte však použitie riadka pre každú klauzulu, aby boli pre vás i pre ostatných príkazy SQL čitateľnejšie.

  • Každý príkaz SELECT končí bodkočiarkou (;). Bodkočiarka sa môže zobraziť na konci poslednej klauzuly alebo v samostatnom riadku na koncu príkazu SQL.

Príklad v programe Access

Nasledovný príklad ilustruje, ako môže v programe Access vyzerať príkaz SQL pre jednoduchý výberový dotaz:

Karta SQL objektu zobrazujúca príkaz SELECT

1. Klauzula SELECT

2. Klauzula FROM

3. Klauzula WHERE

Tento príklad príkazu SQL možno preložiť takto: „Vybrať údaje uložené v poliach s názvom E-mail Address a Company z tabuľky s názvom Contacts, konkrétne tie, v ktorých hodnota poľa City je Seattle“.

Vysvetlime si na príklade, po jednotlivých klauzulách, ako pracuje syntax SQL.

Klauzula SELECT

SELECT [E-mail Address], Company

Toto je klauzula SELECT. Pozostáva z operátora (SELECT) nasledovaného dvomi identifikátormi ([E-mail Address] a Company).

Ak identifikátor obsahuje medzery alebo špeciálne znaky (napríklad „E-mail Address“), musí byť uzavretý v hranatých zátvorkách.

Klauzula SELECT nemusí uvádzať, ktoré tabuľky obsahujú polia, a nemôže uvádzať žiadne podmienky, ktoré musia spĺňať údaje na to, aby mohli byť zahrnuté.

Klauzula SELECT sa v príkaze SELECT vždy objavuje pred klauzulou FROM.

Klauzula FROM

FROM Contacts

Toto je klauzula FROM. Pozostáva z operátora (FROM) nasledovaného identifikátorom (Contacts).

Klauzula FROM neuvádza polia, ktoré sa majú vybrať.

Klauzula WHERE

WHERE City="Seattle"

Toto je klauzula WHERE. Pozostáva z operátora (WHERE) nasledovaného výrazom (City="Seattle").

Poznámka : Na rozdiel od klauzúl SELECT a FROM klauzula WHERE nie je povinným prvkom príkazu SELECT.

Môžete vykonať mnoho akcií, ktoré SQL vám umožňuje urobiť pomocou SELECT, FROM, a klauzuly WHERE. Ďalšie informácie o tom, ako používate klauzuly je uvedené v nasledujúcich častiach na konci tohto článku:

Ďalšie informácie o klauzula SELECT

Ďalšie informácie o Klauzula FROM

Ďalšie informácie o klauzuly WHERE

Zoradenie výsledkov: klauzula ORDER BY

Podobne ako program Microsoft Office Excel aj program Access umožňuje zoradenie výsledkov dotazu v údajovom hárku. V dotaze môžete určiť, ako sa majú výsledky po spustení dotazu zoradiť, použitím klauzuly ORDER BY. Ak použijete klauzulu ORDER BY, bude to posledná klauzula v príkaze SQL.

Klauzula ORDER BY obsahuje zoznam polí, ktoré chcete použiť na zoradenie, v rovnakom poradí, aké chcete použiť operácie zoraďovania.

Predpokladajme, že chcete výsledky zoradiť najprv hodnoty poľa Company v zostupnom poradí a – pokiaľ existujú záznamy s rovnakou hodnotou pre položku Company – ďalej podľa hodnôt v poli E-mail Address vo vzostupnom poradí. Vaša klauzula ORDER BY by vyzerala podobne ako táto:

ORDER BY Company DESC, [E-mail Address]

Poznámka : Program Access predvolene zoraďuje hodnoty vo vzostupnom poradí (A-Z, od najmenšieho po najväčšie). Pomocou kľúčového slova DESC nastavíte zoraďovanie hodnôt v zostupnom poradí.

Ďalšie informácie o Klauzula ORDER BY nájdete v téme Klauzula ORDER BY.

Na začiatok stránky

Práca so sumarizovanými údajmi: GROUP BY a HAVING

Niekedy chcete pracovať s súhrnné údaje, ako je napríklad celkový predaj za mesiac alebo najväčší položiek v zozname. Na vykonanie tohto kroku je použiť aggregate function na pole v klauzule SELECT. Ak chcete dotaz na zobrazenie počtu e-mailovými adresami pre každú spoločnosť, klauzule SELECT môže vyzerať napríklad takto:

SELECT COUNT([E-mail Address]), Company

Agregačné funkcie, ktoré môžete použiť závisia od typu údajov, ktorý sa nachádza v poli alebo výraz, ktorý chcete použiť. Ďalšie informácie o dostupných agregačných funkcií nájdete v článku Agregačné funkcie SQL.

Určenie polí, ktoré nie sú použité v agregačnej funkcii: klauzula GROUP BY

Keď používate agregačné funkcie, zvyčajne musíte vytvoriť aj klauzulu GROUP BY. Klauzula GROUP BY uvádza všetky polia, pre ktoré nepoužívate agregačnú funkciu.Ak použijete agregačné funkcie pre všetky polia v dotaze, nemusíte vytvárať klauzulu GROUP BY.

Klauzula GROUP BY nasleduje bezprostredne po klauzule WHERE, prípadne po klauzule FROM, ak sa klauzula WHERE neuvádza. Klauzula GROUP BY uvádza polia tak, ako sa zobrazujú v klauzule SELECT.

Napríklad – keď sa vrátime k predošlému príkladu – ak vaša klauzula SELECT použije agregačnú funkciu pre pole [E-mail Address], nie však pre pole Company, klauzula GROUP BY by vyzerala nasledovne:

GROUP BY Company

Ďalšie informácie o klauzula GROUP BY nájdete v téme klauzula GROUP BY.

Obmedzenie agregačných hodnôt použitím kritérií pre skupinu: Klauzula HAVING

Ak chcete, aby kritériá zúžili výsledky, ale pole, pre ktoré chcete použiť kritériá, je použité v agregačnej funkcii, nemôžete použiť klauzulu WHERE. Namiesto toho použijete klauzulu HAVING. Klauzula HAVING pracuje ako klauzula WHERE, ale používa sa pre agregované údaje.

Predpokladajme napríklad, že použijete funkciu AVG (vypočítavajúcu priemernú hodnotu) pre prvé pole v klauzule SELECT:

SELECT COUNT([E-mail Address]), Company

Ak chcete, aby dotaz zúžil výsledky na základe hodnoty funkcie COUNT, nemôžete použiť kritériá pre dané pole v klauzule WHERE. Namiesto toho uvediete kritériá v klauzule HAVING. Ak napríklad chcete, aby dotaz vrátil riadky iba vtedy, ak má spoločnosť priradené viaceré e-mailové adresy, klauzula HAVING by mohla vyzerať nasledovne:

HAVING COUNT([E-mail Address])>1

Poznámka : Dotaz môže obsahovať klauzulu WHERE a HAVING – kritériá pre polia, ktoré nie sú použité v agregačnej funkcii, sa uvedú v klauzule WHERE a kritériá pre polia použité s agregačnými funkciami sa uvedú v klauzule HAVING.

Ďalšie informácie o klauzula HAVING nájdete v téme HAVING klauzula.

Na začiatok stránky

Kombinovanie výsledkov dotazu: operátor UNION

Keď chcete skontrolovať všetky údaje vrátené spoločne viacerými podobnými výberovými dotazmi ako skombinovanú množinu, môžete operátor UNION.

Operátor UNION vám umožňuje skombinovať dva príkazy SELECT do jedného. Výberové dotazy, ktoré kombinujete, musia mať rovnaký počet výstupných polí, v rovnakom poradí a s rovnakými alebo kompatibilnými typmi údajov. Keď spustíte dotaz, údaje z každej skupiny zodpovedajúcich polí sa skombinujú do jedného výstupného poľa, aby mal výstup dotazu rovnaký počet polí ako každý z príkazov Select.

Poznámka : Na účely zjednocovacieho dotazu sú typy údajov Number a Text kompatibilné.

Keď použijete operátor UNION, určujete aj, či majú výsledky dotazu zahŕňať duplicitné riadky – ak existujú – použitím kľúčového slova ALL.

Základná syntax SQL pre zjednocovací dotaz, ktorá kombinuje dva príkazy SELECT, je nasledovná:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Predpokladajme napríklad, že existuje tabuľka s názvom Products a ďalšia tabuľka s názvom Services. Obe tabuľky majú polia s názvom produktu alebo služby, cenou, dostupnosťou záruky alebo ručenia a informáciou o tom, či ponúkate produkt alebo službu výhradne. Hoci tabuľka Products obsahuje informácie o záruke a tabuľka Services informácie o ručení, základné informácie sú rovnaké (čiže to, či sa určitý produkt alebo služba poskytuje s prísľubom kvality). Môžete použiť zjednocovací dotaz, ako sa uvádza nižšie, na skombinovanie štyroch polí z dvoch tabuliek:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Ďalšie informácie o príkazoch SELECT kombinujú pomocou operátora UNION, nájdete v článku skombinovanie výsledkov viacerých výberových dotazov použitím zjednocovacieho dotazu.

Na začiatok stránky

Ďalšie informácie o klauzule SELECT

V príkaze SELECT klauzula SELECT uvádza polia, ktoré obsahujú údaje chcete použiť.

Použitie hranatých zátvoriek na uzavretie identifikátorov

Na uzavretie názvu poľa v klauzule SELECT môžete použiť hranaté zátvorky. Ak názov neobsahuje medzery ani špeciálne znaky (ako sú interpunkčné znamienka), hranaté zátvorky sú nepovinné. Ak názov obsahuje medzery alebo špeciálne znaky, zátvorky musíte použiť.

Tip : Názov, ktorý obsahuje medzery sa ľahšie čítal a môžete ušetriť čas pri návrh formulárov a zostáv, ale skončiť robiť pri písaní viac pri písaní SQL príkazy. Túto skutočnosť by ste mali zvážiť, ak zadáte názov objektov v databáze.

Ak váš príkaz SQL obsahuje dve alebo viaceré polia s rovnakým názvom, musíte do klauzuly SELECT pridať názov zdroja údajov každého poľa. Pre zdroj údajov použijete rovnaký názov, aký použijete v klauzule FROM.

Výber všetkých polí

Keď chcete zahrnúť všetky polia zo zdroja údajov, môžete uviesť všetky polia jednotlivo v klauzule SELECT alebo môžete použiť ako zástupný symbol hviezdičku (*). Ak použijete hviezdičku, program Access určí pri spustení dotazu, ktoré polia obsahuje zdroj údajov, a zahrnie dané polia do dotazu. Pomôže to zabezpečiť, že dotaz zostane aktuálny aj po pridaní nových polí do zdroja údajov.

Hviezdičku môžete použiť pre jeden alebo viaceré zdroje údajov v príkaze SQL. Ak použijete hviezdičku, keď sa uvádzajú viaceré zdroje údajov, spolu s hviezdičkou musíte uviesť aj názov zdroja údajov, aby mohol program Access určiť, z ktorého zdroja údajov sa majú zahrnúť všetky polia.

Predpokladajme, že chcete vybrať všetky polia z tabuľky Orders, ale iba e-mailovú adresu z tabuľky Contacts. Vaša klauzula SELECT by vyzerala podobne ako táto:

SELECT Orders.*, Contacts.[E-mail Address]

Poznámka : Majte prehľad o tom, kedy ste použili hviezdičku. Ak sa do zdroja údajov neskôr pridajú nové polia, ktoré ste neplánovali zahrnúť, výsledky dotazu nemusia zodpovedať vašim požiadavkám.

Výber odlišujúcich hodnôt

Ak viete, že váš príkaz vyberie nadbytočné údaje, a chceli by ste radšej vidieť iba odlišujúce hodnoty, môžete v klauzule SELECT použiť kľúčové slovo DISTINCT. Predpokladajme napríklad, že vaši zákazníci reprezentujú niekoľko rôznych oblastí záujmu a niektorí z nich používajú rovnaké telefónne číslo. Ak chcete, aby sa každé telefónne číslo zobrazilo iba raz, vaša klauzula SELECT by vyzerala nasledovne:

SELECT DISTINCT [txtCustomerPhone]

Používanie náhradných názvov pre poli alebo výrazy: kľúčové slovo AS

Označenie zobrazené pre ľubovoľné pole v zobrazení údajového hárka môžete v klauzule SELECT zmeniť použitím kľúčového slova AS a aliasu poľa. Alias poľa je názov, ktorý priradíte poľu v dotaze, aby boli výsledky čitateľnejšie. Ak napríklad chcete vybrať údaje poľa s názvom txtCustPhone a pole obsahuje telefónne čísla zákazníkov, čitateľnosť výsledkov môžete zvýšiť použitím aliasu poľa v príkaze SELECT nasledovne:

SELECT [txtCustPhone] AS [Customer Phone]

Poznámka : Keď používate výraz v klauzule SELECT, musíte použiť alias poľa.

Výber pomocou výrazu

Niekedy sa chcete pozrieť výpočty založené na údajoch alebo načítať len časť údajov poľa. Predpokladajme, že napríklad, že chcete vráti rok, ktorý sa narodil zákazníkov, na základe údajov v časti DátumNarodenia v databáze. Môže v klauzule SELECT vyzerať takto:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Tento výraz sa skladá z funkcia DatePart a dva argumenty – "rrrr" (konštanty), a [BirthDate] (identifikátor).

Ako pole môžete použiť ľubovoľný platný výraz, ak je výstupom výrazu jedna hodnota pri jednej vstupnej hodnote.

Na začiatok stránky

Ďalšie informácie o klauzule FROM

V príkaze SELECT uvádza klauzula FROM tabuľky alebo dotazy obsahujúce údaje, ktoré použije klauzula SELECT.

Predpokladajme, že potrebujete vedieť telefónne číslo konkrétneho zákazníka. Pri predpoklade, že tabuľka obsahujúca dané pole má názov tblCustomer, klauzula FROM by mohla vyzerať nasledovne:

FROM tblCustomer

Použitie hranatých zátvoriek na uzavretie identifikátorov

Na uzavretie názvu môžete použiť hranaté zátvorky. Ak názov neobsahuje medzery ani špeciálne znaky (ako sú interpunkčné znamienka), hranaté zátvorky sú nepovinné. Ak názov obsahuje medzery alebo špeciálne znaky, zátvorky musíte použiť.

Tip : Názov, ktorý obsahuje medzery sa ľahšie čítal a môžete ušetriť čas pri návrh formulárov a zostáv, ale skončiť robiť pri písaní viac pri písaní SQL príkazy. Túto skutočnosť by ste mali zvážiť, ak zadáte názov objektov v databáze.

Použitie náhradných názvov pre zdroje údajov

Keď odkazujete na zdroj údajov v príkaze SELECT, môžete použiť iný názov pomocou aliasu tabuľky z klauzuly FROM. Alias tabuľky je názov priradený zdroju údajov v dotaze, keď používate ako zdroj údajov výraz alebo aby sa príkaz SQL ľahšie písal alebo čítal. Môže to byť osobitne užitočné, ak je názov zdroja údajov dlhý alebo sa ťažko píše, obzvlášť keď existujú viaceré polia s rovnakým názvom z rôznych tabuliek.

Ak chcete napríklad vybrať údaje z dvoch polí, ktoré majú obe názov ID, pričom jedno pochádza z tabuľky tblCustomer a druhé z tabuľky tblOrder, vaša klauzula SELECT by vyzerala nasledovne:

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

Použitím aliasov tabuliek v klauzule FROM zabezpečíte, že dotaz sa bude ľahšie písať. Vaša klauzula FROM s aliasmi tabuliek by mohla vyzerať nasledovne:

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

Mohli by ste potom použiť aliasy tabuliek v klauzule SELECT nasledovne:

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

Poznámka : Keď používate alias tabuľky, môžete odkazovať a zdroj údajov v príkaze SQL pomocou aliasu alebo pomocou úplného názvu zdroja údajov.

Spojenie súvisiacich údajov

Keď potrebujete skombinovať páry záznamov z dvoch zdrojov údajov vždy do jedného záznamu vo výsledkoch dotazu, môžete vykonať spojenie. Spojenie je operácia SQL určujúca, ako spolu súvisia dva zdroje údajov, a či sa majú údaje z jedného zdroja zahrnúť, ak nie sú k dispozícii zodpovedajúce údaje z druhého zdroja.

Na skombinovanie informácií z dvoch zdrojov údajov vykonáte operáciu spojenia pre pole, ktoré majú spoločné. Keď sú hodnoty uložené v tomto poli navzájom zodpovedajúce, údaje zo záznamov sa skombinujú vo výsledkoch.

Okrem kombinovania údajov môžete spojenie použiť aj na určenie, či s majú zahrnúť záznamy z jednej z tabuliek v prípade, že neexistuje zodpovedajúci záznam v súvisiacej tabuľke.

Predpokladajme, že chcete použiť údaje z dvoch tabuliek v dotaze: Tblzákazník a Tblobjednávka. Dve tabuľky obsahujú pole, Identifikácia zákazníka, ktorá identifikuje zákazník. Každý záznam v tabuľke Tblzákazník môžu mať jeden alebo viac zodpovedajúce záznamy v tabuľke Tblobjednávka a zodpovedajúce hodnoty možno určiť hodnoty v poli Identifikácia zákazníka.

Ak chcete spojiť tabuľky, aby z nich dotaz kombinoval záznamy okrem záznamov, pre ktoré neexistuje zodpovedajúci záznam v druhej z tabuliek, vaša klauzula FROM by mohla vyzerať nasledovne (v záujme čitateľnosti je pridaný zlom riadka):

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

V programe Microsoft Office Access s spojenia vyskytujú v klauzule FROM príkazu SELECT. Existujú dva typy spojení: vnútorné spojenia a vonkajšie spojenia. V nasledujúcich sekciách sa vysvetľujú tieto dva typy spojení.

Vnútorné spojenia

Vnútorné spojenia sú najbežnejším typom spojenia. Keď sa spustí dotaz s vnútorným spojením, vo výsledkoch dotazu sú zahrnuté iba tie záznamy, kde existuje spoločná hodnota v oboch spojených tabuľkách.

Vnútorné pripojenie má nasledujúcu syntax (v záujme čitateľnosti je pridaný zlom riadka):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

V nasledujúcej tabuľke sa popisujú rôzne časti operácie INNER JOIN.

Časť

Popis

Tabuľka1, tabuľka2

Názvy tabuliek, ktorých záznamy sa spájajú.

pole1, pole2

Názvy spojených polí. Ak nie sú číselné, musia mať rovnaký data type a obsahovať rovnaký druh údajov, ale nemusia mať rovnaký názov.

operpor

Ľubovoľný operátor relácie porovnávania: „=“, „<“, „>“, „<=“, „>=“ alebo „<>“.

Vonkajšie spojenia

Vonkajšie spojenia sa podobajú na vnútorné spojenia, pretože určujú dotazu, ako skombinovať informácie z dvoch zdrojov. Líšia sa však, pretože tiež určujú, či s majú zahrnúť údaje bez spoločnej hodnoty. Vonkajšie spojenia sú smerové: môžete určiť, či sa majú zahrnúť všetky záznamy z prvého zdroja údajov špecifikovaného v spojení (nazývaného ľavé spojenie) alebo či sa majú zahrnúť všetky záznamy z druhého zdroja údajov v spojení (nazývaného pravé spojenie).

Vonkajšie pripojenie má nasledujúcu syntax:

FROM Tabuľka1 [doľava | PRAVÝ] spojenie tabuľka2
ON Tabuľka1.pole1operpor tabuľka2.pole2

V nasledujúcej tabuľke sa popisujú rôzne časti operácií LEFT JOIN a RIGHT JOIN.

Časť

Popis

Tabuľka1, tabuľka2

Názvy tabuliek, ktorých záznamy sa spájajú.

pole1, pole2

Názvy polí, ktoré sú spojené. Polia musia mať rovnaký data type a obsahovať rovnaký typ údajov, ale nemajú s rovnakým názvom.

operpor

Ľubovoľný operátor relácie porovnávania: „=“, „<“, „>“, „<=“, „>=“ alebo „<>“.

Ďalšie informácie o spojení nájdete v článku spojenie tabuliek a dotazov.

Na začiatok stránky

Ďalšie informácie o klauzule WHERE

Ak chcete použiť údaje na obmedzenie počtu zobrazených záznamov, ktoré sa vrátia v dotaze, použite dotaz criteria v klauzule WHERE príkaz SELECT. Kritérium dotazu sa podobá na vzorec – je reťazec, ktorý môže obsahovať pole odkazy, operátory a konštanty. Kritériá dotazu sú typy expression.

V nasledujúcich tabuľkách sú uvedené niektoré vzorové kritériá a vysvetlenie princípu ich činnosti.

Kritériá

Popis

>25 and <50

Toto kritérium sa používa pre polia typu Number, ako sú napríklad polia Price alebo UnitsInStock. Zahrnie len tie záznamy, v ktorých pole obsahuje hodnotu väčšiu ako 25 a menšiu ako 50.

DateDiff ("yyyy", [DátumNarodenia], Date()) > 30

Toto kritérium sa používa pre pole typu Date/Time, ako je napríklad pole BirthDate. Výsledok dotazu bude obsahovať len záznamy, v ktorých počet rokov medzi dátumom narodenia osoby a dnešným dátumom je väčší ako 30.

Is Null

Toto kritérium sa môže použiť pre ľubovoľný typ poľa na zobrazenie záznamov, v ktorých hodnota poľa je null.

Ako môžete vidieť v predošlej tabuľke, kritériá sa svojím vzhľadom môžu od seba výrazne líšiť v závislosti od typu údajov poľa, na ktoré sú kritériá použité, a od špecifických požiadaviek. Niektoré kritériá sú jednoduché a používajú základné operátory a konštanty. Iné sú zložité a používajú funkcie, špeciálne operátory a zahŕňajú odkazy na polia.

Dôležité : Ak pole sa používa agregačnú funkciu, nie je možné zadať kritériá pre dané pole v klauzule WHERE. Namiesto toho použiť klauzulu HAVING zadajte kritériá pre súhrnné polia. Ďalšie informácie nájdete v časti Práca s súhrnné údaje: zoskupiť podľa a HAVING.

Syntax klauzuly WHERE

Klauzula WHERE má nasledovnú základnú syntax:

WHERE field = criterion

Predpokladajme napríklad, že chcete telefónne číslo zákazníka, ale pamätáte si iba, že priezvisko zákazníka je Bagel. Namiesto prezerania všetkých telefónnych čísiel v databáze môžete použiť klauzulu WHERE na zúženie výsledkov, čo vám uľahčí nájsť požadované telefónne číslo. Ak predpokladáme, že priezviská sú uložené v poli s názvom LastName, klauzula WHERE bude vyzerať nasledovne:

WHERE [LastName]='Bagel'

Poznámka : You do not have to base the criteria in your WHERE clause on the equivalence of values. You can use other comparison operators, such as greater than (>) or less than (<). For example, WHERE [Price]>100.

Používanie klauzuly WHERE na skombinovanie zdrojov údajov

Niekedy môžete chcieť skombinovať zdroje údajov n základe polí so zodpovedajúcimi údajmi, ale inými typmi údajov. Napríklad pole v jednej tabuľke môže mať typ údajov Number, pričom ho chcete porovnať s poľom v inej tabuľke, ktoré má typ údajov Text.

Nemôžete vytvoriť spojenie medzi poľami s rôznymi typmi údajov. Ak chcete skombinovať údaje z dvoch zdrojov na základe polí s rôznymi typmi údajov, vytvoríte klauzulu WHERE používajúcu jedno pole ako kritérium pre iné pole pomocou kľúčového slova LIKE.

Predpokladajme napríklad, že chcete použiť údaje z tabuliek table1 a table2, ale iba v prípade, že údaje v poli field1 (textové pole tabuľky table1) zodpovedajú údajom v poli field2 (číselné pole tabuľky table2). Vaša klauzula WHERE by vyzerala podobne ako táto:

WHERE field1 LIKE field2

Ďalšie informácie o vytváraní kritériá na použitie v klauzule WHERE, nájdete v článku príklady kritérií dotazu.

Na začiatok stránky

Poznámka : Vyhlásenie týkajúce sa strojového prekladu: Tento článok bol preložený počítačovým systémom bez zásahu človeka. Poskytovaním týchto strojových prekladov umožňuje spoločnosť Microsoft aj používateľom, ktorí nehovoria po anglicky, využívať obsah o produktoch, službách a technológiách spoločnosti Microsoft. Článok bol preložený strojovo, môže preto obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky.

Rozšírte svoje zručnosti
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.

×