Úvod do jazyka SQL aplikace Access

Důležité :  Tento článek je strojově přeložený – přečtěte si toto upozornění. Anglickou verzi tohoto článku pro referenci najdete tady.

Když budete chtít načtení dat z databáze, můžete se zeptají data pomocí Structured Query Language nebo SQL. SQL je počítač jazyk, který podobá angličtina, který databázových programů. Že SQL je důležité, protože každé dotazu v aplikaci Microsoft Access používá SQL. Principy fungování SQL můžete pomáhaly vytvářet lepší dotazů a můžete snadněji můžete opravit dotazu, když je se nevrací žádné výsledky, které chcete.

Poznámka : Kód jazyka SQL nelze upravovat u webového dotazu.

V tomto článku

Co je jazyk SQL?

Základní klauzule SQL: SELECT, FROM a WHERE

Řazení výsledků: ORDER BY

Práce se souhrnnými daty: GROUP BY a HAVING

Sloučení výsledků dotazů: UNION

Další informace o klauzuli SELECT

Další informace o klauzuli FROM

Další informace o klauzuli WHERE

Co je jazyk SQL?

SQL je počítač jazyk pro práci s sady fakt a vztahů mezi nimi. Relační databáze programů, například při přístupu pomocí jazyka SQL pro práci s daty. Jako spousty jazyků počítače je SQL mezinárodní standard rozpoznaný standardy orgány například ISO a ANSI.

Pomocí jazyka SQL pro popis sady dat, která mohou vám pomoci zodpovědět. Pokud používáte SQL, je nutné použít správné syntaxe. Syntaxe je sada pravidel, kterými prvky jazykem zkombinují správně. Syntaxe jazyka SQL se podle anglické syntaxe a používá spoustu jeden prvek jako Visual Basic syntaxi Applications (VBA).

Jednoduchý příkaz SQL, který načte seznam příjmení kontaktů, jejichž jméno je Mary, může vypadat například takto:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Poznámka : Jazyk SQL není využíván pouze k manipulaci s daty, ale také k vytváření a změnám návrhu databázových objektů, například tabulek. Část jazyka SQL, která slouží k vytváření a změnám databázových objektů, se nazývá jazyk DDL (Data Definition Language). Toto téma nezahrnuje jazyk DDL. Další informace naleznete v článku Vytváření nebo změny tabulek nebo indexů pomocí definičního dotazu.

Příkazy SELECT

Chcete-li popsat sadu dat pomocí jazyka SQL, napíšete příkaz SELECT. Příkaz SELECT obsahuje úplný popis sady dat, kterou chcete z databáze získat. Patří sem následující informace:

  • Ve kterých tabulkách jsou data obsažena.

  • Jak spolu data z různých zdrojů souvisejí.

  • Která pole nebo výpočty vytvoří data.

  • Kritéria, která data se musí shodovat být zahrnout.

  • Zda a jak mají být řazeny výsledky.

Klauzule SQL

Příkaz SQL obsahuje klauzule. Každá klauzule vykonává v příkazu SQL určitou funkci. Některé klauzule jsou v příkazu SELECT povinné. V následující tabulce jsou uvedeny nejběžnější klauzule SQL.

Klauzule SQL

Akce

Povinné

SELECT

Uvádí seznam polí obsahujících požadovaná data.

Ano

FROM

Uvádí seznam tabulek obsahujících pole uvedená v klauzuli SELECT.

Ano

WHERE

Slouží k zadání kritérií pole, která musí každý záznam splnit, aby byl zahrnut do výsledků.

Ne

ORDER BY

Určuje způsob řazení výsledků.

Ne

GROUP BY

V příkazu SQL obsahujícím agregační funkce uvádí seznam polí, která nejsou sumarizována v klauzuli SELECT.

Pouze pokud taková pole existují.

HAVING

V příkazu SQL obsahujícím agregační funkce určuje podmínky, které platí pro pole sumarizovaná příkazem SELECT.

Ne

Lexikální jednotky SQL

Každá klauzule SQL se skládá z lexikálních jednotek, které se dají přirovnat ke slovním druhům. V následující tabulce jsou uvedeny typy lexikálních jednotek SQL.

Lexikální jednotka SQL

Srovnatelný slovní druh

Definice

Příklad

identifikátor

podstatné jméno

Název použitý k identifikaci databázového objektu, například název pole

Zákazníci.[Telefonní číslo]

operátor

sloveso nebo příslovce

Klíčové slovo, které představuje nebo mění akci

AS

konstanta

podstatné jméno

Hodnota, která se nemění, například číslo nebo hodnota Null

42

výraz

přídavné jméno

Kombinace identifikátorů, operátorů, konstant a funkcí, která je vyhodnocena jako jediná hodnota

>= Produkty.[Jednotková cena]

Začátek stránky

Základní klauzule SQL: SELECT, FROM a WHERE

Příkaz SQL má následující obecnou formu:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Poznámky : 

  • Aplikace Access ignoruje konce řádků v příkazu SQL. Zvažte nicméně použití samostatného řádku pro každou klauzuli, protože tím zajistíte lepší čitelnost příkazů SQL pro vás i pro ostatní uživatele.

  • Každý příkaz SELECT je zakončen středníkem (;). Středník může být zobrazen na konci poslední klauzule nebo na samostatném řádku na konci příkazu SQL.

Příklad v aplikaci Access

Následující příkaz znázorňuje, jak může v aplikaci Access vypadat příkaz SQL pro jednoduchý výběrový dotaz:

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

1. Klauzule SELECT

2. Klauzule FROM

3. Klauzule WHERE

Tento příklad příkazu SQL můžeme přečíst jako: Vybrat z tabulky Contacts data uložená v polích s názvem E-mail Address a Company, konkrétně ty záznamy, které mají v poli pro město hodnotu Seattle.

Podívejme se na následující příklad postupně po jednotlivých klauzulích, abychom zjistili, jak syntaxe SQL funguje.

Klauzule SELECT

SELECT [E-mail Address], Company

Takto vypadá klauzule SELECT. Skládá se z operátoru (SELECT) následovaného dvěma identifikátory ([E-mail Address] a Company).

Pokud identifikátor obsahuje mezery nebo speciální znaky (například E-mail Address), musí být uzavřen v hranatých závorkách.

Klauzule SELECT nemusí uvádět, které tabulky obsahují pole, a nemůže určovat žádné podmínky, které data musí splnit, aby mohla být zahrnuta.

V příkazu SELECT je klauzule SELECT vždy zobrazena před klauzulí FROM.

Klauzule FROM

FROM Contacts

Takto vypadá klauzule FROM. Skládá se z operátoru (FROM) následovaného identifikátorem (Contacts).

Klauzule FROM neuvádí seznam polí, která mají být vybrána.

Klauzule WHERE

WHERE City="Seattle"

Takto vypadá klauzule WHERE. Skládá se z operátoru (WHERE) následovaného výrazem (City="Seattle").

Poznámka : Na rozdíl od klauzulí SELECT a FROM není klauzule WHERE povinným prvkem příkazu SELECT.

Je možné provádět spoustu akce, které SQL umožňuje s použitím SELECT, FROM a WHERE klauzulí. Další informace o tom Pomocí těchto klauzule jsou uvedeny v těchto oddílech na konci tohoto článku:

Další informace o klauzuli SELECT

Další informace o klauzuli FROM

Další informace o klauzuli WHERE

Řazení výsledků: ORDER BY

Podobně jako aplikace Microsoft Office Excel umožňuje aplikace Access řadit výsledky dotazu v datovém listu. V dotazu můžete také pomocí klauzule ORDER BY určit, jakým způsobem chcete řadit výsledky při spuštění dotazu. Použijete-li klauzuli ORDER BY, bude to poslední klauzule v příkazu SQL.

Klauzule ORDER BY obsahuje seznam polí, která chcete použít pro řazení. Tato pole jsou ve stejném pořadí, jaké chcete použít při operacích řazení.

Předpokládejme například, že chcete, aby výsledky byly seřazeny nejprve podle hodnoty pole Company sestupně a – pokud existují záznamy se stejnou hodnotu pro Company – poté seřazeny podle hodnot v poli E-mail Address vzestupně. Klauzule ORDER BY může vypadat následovně:

ORDER BY Company DESC, [E-mail Address]

Poznámka : Ve výchozím nastavení řadí aplikace Access hodnoty vzestupně (A-Z, od nejmenších po největší). Chcete-li hodnoty seřadit sestupně, použijte klíčové slovo DESC.

Další informace o klauzuli ORDER BY naleznete v tématu Klauzule ORDER BY.

Začátek stránky

Práce se souhrnnými daty: GROUP BY a HAVING

Někdy budete chtít práce se souhrnnými daty, například celkové prodeje za měsíc nebo nejčastěji drahé položek v inventární. K tomuto účelu použijete Agregační funkce pole v klauzuli SELECT. Například pokud má váš dotaz zobrazíte počet hodnot v e-mailové adresy uvedený pro každou společnost klauzuli SELECT může vypadat takto:

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

Agregační funkce, které lze použít, závisí na datovém typu v poli nebo na výrazu, který chcete použít. Další informace o dostupných agregačních funkcích naleznete v článku Agregační funkce SQL.

Určení polí, která nebudou použita v agregační funkci: klauzule GROUP BY

Používáte-li agregační funkce, je obvykle také třeba vytvořit klauzuli GROUP BY. Klauzule GROUP BY obsahuje seznam všech polí, pro která nechcete použít agregační funkci. Použijte-li agregační funkce pro všechna pole v dotazu, klauzuli GROUP BY není třeba vytvářet.

Klauzule GROUP BY následuje bezprostředně za klauzulí WHERE nebo za klauzulí FROM, pokud není obsažena klauzule WHERE. Klauzule GROUP BY uvádí seznam polí tak, jak jsou zobrazena v klauzuli SELECT.

Navážeme-li na předchozí příklad, pokud tedy například klauzule SELECT použije agregační funkci pro pole [E-mail Address], ale nepoužije ji pro pole Company, klauzule GROUP BY může vypadat následovně:

GROUP BY Company

Další informace o klauzuli GROUP BY naleznete v tématu Klauzule GROUP BY.

Omezení souhrnné hodnoty pomocí kritéria seskupit: Klauzule HAVING

Chcete-li omezit výsledky pomocí kritérií, ale pole, pro které chcete kritéria použít, je použito v agregační funkci, nelze použít klauzuli WHERE. Namísto toho můžete použít klauzuli HAVING. Klauzule HAVING funguje stejně jako klauzule WHERE, ale používá se pro agregovaná data.

Předpokládejme například, že použijete funkci COUNT (která zjišťuje celkový počet) s prvním polem v klauzuli SELECT:

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

Chcete-li, aby dotaz omezil výsledky na základě hodnoty funkce COUNT, nemůžete použít kritéria pro dané pole v klauzuli WHERE. Namísto toho použijete kritéria v klauzuli HAVING. Chcete-li například, aby dotaz vrátil řádky, pokud existuje více než jedna e-mailová adresa přidružená ke společnosti, klauzule HAVING může vypadat následovně:

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

Poznámka : Dotaz může mít klauzuli WHERE a klauzuli HAVING – kritéria pro pole, která nejsou použita v agregační funkci, budou uvedena v klauzuli WHERE a kritéria pro pole, která jsou použita s agregačními funkcemi, budou uvedena v klauzuli HAVING.

Další informace o klauzuli HAVING naleznete v tématu Klauzule HAVING.

Začátek stránky

Sloučení výsledků dotazů: UNION

Chcete-li zobrazit veškerá data vrácená několika podobnými výběrovými dotazy dohromady jako sloučenou sadu, použijte operátor UNION.

Operátor UNION umožňuje sloučit dva příkazy SELECT do jednoho. Příkazy SELECT, které slučujete, 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. Po spuštění dotazu jsou data z každé sady odpovídajících polí sloučena do jednoho výstupního pole, výstup dotazu má tedy stejný počet polí jako každý z příkazů SELECT.

Poznámka : Pro účely sjednocovacího dotazu jsou datové typy Číslo a Text kompatibilní.

Použijete-li operátor UNION, můžete také pomocí klíčového slova ALL zadat, zda mají výsledky dotazu obsahovat duplicitní řádky, pokud nějaké existují.

Základní syntaxe SQL pro sjednocovací dotaz slučující dva příkazy SELECT vypadá následovně:

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

Předpokládejme například, že máte tabulku s názvem Products a jinou tabulku s názvem Services. V obou tabulkách jsou pole, která obsahují název produktu nebo služby, cenu, dostupnost záruky na produkty nebo služby a informace o tom, zda nabízíte produkt nebo službu výhradně. Přestože tabulka Products obsahuje informace o záruce na produkty a tabulka Services informace o záruce na služby, základní informace jsou stejné (zda je u určitého produktu nebo služby zaručena kvalita). Můžete použít sjednocovací dotaz, například následující, a sloučit čtyři pole ze dvou tabulek:

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

Další informace o způsobu sloučení příkazů SELECT pomocí operátoru UNION naleznete v článku Sloučení výsledků několika výběrových dotazů pomocí sjednocovacího dotazu.

Začátek stránky

Další informace o klauzuli SELECT

V příkazu SELECT klauzule SELECT obsahuje pole, které obsahují data jestli chcete použít.

Uzavření identifikátorů do hranatých závorek

V klauzuli SELECT můžete název pole uzavřít do hranatých závorek. Pokud název neobsahuje mezery nebo speciální znaky (například interpunkční znaménka), je použití hranatých závorek nepovinné. Pokud ovšem název mezery nebo speciální znaky obsahuje, je nutné hranaté závorky použít.

Tip : Název, který obsahuje mezery, je snadněji číst a ušetřit čas při návrhu formulářů a sestav ale může skončily provádění zadejte informace při psaní příkazy SQL. Tuto skutečnost byste měli zvážit při zadávání názvu objektů v databázi.

Pokud příkaz SQL obsahuje dvě nebo více polí se stejným názvem, je třeba přidat název zdroje dat každého pole do názvu pole v klauzuli SELECT. Pro zdroj dat můžete použít stejný název, jaký jste použili v klauzuli FROM.

Výběr všech polí

Chcete-li zahrnout všechna pole ze zdroje dat, můžete buď uvést každé pole samostatně v klauzuli SELECT, nebo můžete použít jako zástupný znak hvězdičku (*). Pokud použijete hvězdičku, aplikace Access při spuštění dotazu zjistí, která pole zdroj dat obsahuje a zahrne všechna tato pole do dotazu. Tímto způsobem lze zajistit, aby dotaz zůstal aktuální v případě, že budou do zdroje dat přidána nová pole.

V příkazu SQL můžete hvězdičku použít s jedním nebo více zdroji dat. Pokud použijete hvězdičku a existuje více zdrojů dat, je nutné název zdroje dat uvést spolu s hvězdičkou, aby aplikace Access mohla určit, ze kterého zdroje dat zahrnout všechna pole.

Předpokládejme například, že chcete vybrat všechna pole z tabulky Orders, ale pouze e-mailovou adresu z tabulky Contacts. Klauzule SELECT může vypadat následovně:

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

Poznámka : Použití hvězdičky si zaznamenávejte. Pokud totiž budou do datového zdroje později přidána pole, se kterými jste nepočítali, výsledky dotazu nemusí být takové, jaké jste očekávali.

Výběr různých hodnot

Pokud víte, že příkaz vybere nadbytečná data, a chcete zobrazit pouze různé hodnoty, můžete v klauzuli SELECT použít klíčové slovo DISTINCT. Předpokládejme například, že každý z vašich zákazníků působí v několika různých oborech, pro které ovšem používá stejné telefonní číslo. Chcete-li, aby se každé telefonní číslo zobrazilo pouze jednou, klauzule SELECT může vypadat následovně:

SELECT DISTINCT [txtCustomerPhone]

Použití náhradních názvů pro pole nebo výrazy: klíčové slovo AS

Pomocí klíčového slova AS a aliasu pole v klauzuli SELECT lze pro každé pole v zobrazení Datový list změnit zobrazený popisek. Alias pole je název, který přiřadíte poli v dotazu, aby výsledky byly snadněji čitelné. Chcete-li například vybrat data z pole s názvem txtCustPhone a pole obsahuje telefonní čísla zákazníků, můžete zlepšit čitelnost výsledků pomocí aliasu pole v příkazu SELECT následujícím způsobem:

SELECT [txtCustPhone] AS [Customer Phone]

Poznámka : Alias pole je nutné použít v případě, že v klauzuli SELECT použijete výraz.

Výběr pomocí výrazu

V některých případech chtít prohlédnout výpočty založené na datech nebo načíst jenom část datové pole. Předpokládejme například, chcete se vrátit rok, který zákazníkům narození, na základě dat v poli Datum narození v databázi. Může klauzule SELECT vypadat takto:

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

Tento výraz tvořeno DatePart (funkce) a dva argumenty – "yyyy" (konstanta) a [DatumNarození] (identifikátor).

Jako pole můžete použít libovolný platný výraz, pokud bude při jediné vstupní hodnotě výstupem výrazu také jediná hodnota.

Začátek stránky

Další informace o klauzuli FROM

V příkazu SELECT klauzule FROM určuje tabulky nebo dotazy obsahující data, která použije klauzule SELECT.

Předpokládejme, že chcete zjistit telefonní číslo určitého zákazníka. Pokud je tabulka obsahující pole, ve kterém jsou uložena tato data, nazvána tblCustomer, klauzule FROM může vypadat následovně:

FROM tblCustomer

Uzavření identifikátorů do hranatých závorek

Název můžete uzavřít do hranatých závorek. Pokud název neobsahuje mezery nebo speciální znaky (například interpunkční znaménka), je použití hranatých závorek nepovinné. Pokud ovšem název mezery nebo speciální znaky obsahuje, je nutné hranaté závorky použít.

Tip : Název, který obsahuje mezery, je snadněji číst a ušetřit čas při návrhu formulářů a sestav ale může skončily provádění zadejte informace při psaní příkazy SQL. Tuto skutečnost byste měli zvážit při zadávání názvu objektů v databázi.

Použití náhradních názvů pro zdroje dat

Chcete-li v příkazu SELECT jako odkaz na zdroj dat použít jiný název, lze to provést pomocí aliasu tabulky v klauzuli FROM. Alias tabulky je název, který v dotazu přiřadíte zdroji dat, pokud použijete jako zdroj dat výraz, nebo který použijete, pokud chcete, aby bylo možné příkaz SQL snadněji zadat a aby byl lépe čitelný. To může být užitečné zvláště v případě, že je název zdroje dat dlouhý a obtížně se zadává, zejména pokud v různých tabulkách existuje více polí se stejným názvem.

Chcete-li například vybrat data ze dvou polí, která mají stejný název – ID, z nichž jedno pochází z tabulky tblCustomer a druhé z tabulky tblOrder, klauzule SELECT může vypadat následovně:

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

Použijete-li v klauzuli FROM aliasy tabulky, můžete tím usnadnit zadávání dotazu. Klauzule FROM s aliasy tabulky může vypadat následovně:

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

Poté můžete tyto aliasy tabulky použít v klauzuli SELECT následujícím způsobem:

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

Poznámka : Při použití aliasu tabulky můžete na zdroj dat v příkazu SQL odkazovat pomocí aliasu nebo pomocí úplného názvu zdroje dat.

Spojení souvisejících dat

Potřebujete-li sloučit dvojice záznamů ze dvou zdrojů dat do jednoho záznamu ve výsledku dotazu, můžete provést spojení. Spojení je operace SQL, která určuje, jakým způsobem jsou dva zdroje dat propojeny a zda data z jednoho zdroje mají být zahrnuta, pokud neexistují odpovídající data z druhého zdroje dat.

Chcete-li sloučit informace ze dvou zdrojů dat, můžete provést operaci spojení pro pole, které mají společné. Pokud se hodnoty uložené v tomto poli shodují, budou data ze záznamů ve výsledcích sloučena.

Kromě sloučení dat můžete pomocí spojení také určit, zda zahrnout záznamy z tabulky, pokud v související tabulce neexistuje odpovídající záznam.

Předpokládejme například, který chcete použít data ze dvou tabulek v dotazu: tblCustomer a tblOrder. Dvě tabulky obě obsahují pole CustomerID, který identifikuje zákazníka. Každý záznam v tabulce tblCustomer může mít jeden nebo více odpovídající záznamy v tabulce tblOrder a odpovídající hodnoty můžete určený podle hodnot uložených v poli CustomerID.

Chcete-li spojit tabulky, aby dotaz sloučil záznamy z tabulek a aby byly vyloučeny záznamy z kterékoli tabulky, které nemají odpovídající záznam ve druhé tabulce, klauzule FROM může vypadat následovně (konec řádku byl přidán, aby byla zajištěna lepší čitelnost):

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

V aplikaci Microsoft Office Access se spojení vyskytují v klauzuli FROM příkazu SELECT. Existují dva typy spojení: vnitřní spojení a vnější spojení. Tyto dva typy spojení jsou popsány v následujících částech.

Vnitřní spojení

Nejčastějším typem spojení je vnitřní spojení. Při spuštění dotazu s vnitřním spojením mohou být do výsledků dotazu zahrnuty pouze záznamy se společnou hodnotou v obou spojených tabulkách.

Vnitřní spojení má následující syntaxi (konec řádku byl přidán, aby byla zajištěna lepší čitelnost):

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

V následující tabulce jsou popsány různé části operace INNER JOIN.

Část

Popis

tabulka1, tabulka2

Názvy tabulek, ze kterých jsou kombinovány záznamy.

pole1, pole2

Názvy polí, která jsou spojována. Nejedná-li se o číselná pole, musí mít obě pole stejný Datový typ a obsahovat stejný druh dat, názvy polí se však nemusejí shodovat.

operátor_porovnání

Libovolný relační operátor: =, <, >, <=, >= nebo <>.

Vnější spojení

Vnější spojení jsou podobná vnitřním spojením, protože poskytují dotazu informace o tom, jak sloučit informace ze dvou zdrojů. Vnitřní spojení se liší tím, že také určují, zda mají být zahrnuta data, pokud neexistuje společná hodnota. Vnější spojení jsou směrová: můžete určit, zda zahrnout všechny záznamy z prvního zdroje dat ve spojení (nazývá se levé spojení) nebo zda zahrnout všechny záznamy z druhého zdroje dat ve spojení (nazývá se pravé spojení).

Vnější spojení má následující syntaxi:

FROM tabulka1 [vlevo | RIGHT] JOIN tabulka2
ON tabulka1.pole1operátor_porovnání Tabulka2.pole2

V následující tabulce jsou popsány různé části operací LEFT JOIN a RIGHT JOIN.

Část

Popis

tabulka1, tabulka2

Názvy tabulek, ze kterých jsou kombinovány záznamy.

pole1, pole2

Názvy polí, kteří se připojili. Pole musí mít stejný Datový typ a obsahují stejný druh dat, ale není nutné mít stejný název.

operátor_porovnání

Libovolný relační operátor porovnání: =, <, >, <=, >= nebo <>.

Další informace o spojeních naleznete v článku Spojení tabulek a dotazů.

Začátek stránky

Další informace o klauzuli WHERE

Když budete chtít použít dat k omezení počtu zobrazených záznamů, které se vracejí v dotazu, použijte v klauzuli WHERE příkazu SELECT query Kritéria. Kritérium dotazu je podobný vzorec – jedná se o řetězec, který může obsahovat odkazy, operátory a konstanty. Kritéria dotazu jsou typ Výraz.

Následující tabulka obsahuje několik ukázkových kritérií a vysvětluje, jak fungují.

Kritéria

Popis

>25 and <50

Toto kritérium lze použít u pole typu Číslo, jako je například Cena nebo JednotkyNaSkladě. Toto kritérium zahrnuje pouze záznamy, ve kterých pole obsahuje hodnotu větší než 25 a menší než 50.

DateDiff ("rrrr", [DatumNarození], Date()) > 30

Toto kritérium lze použít u pole typu Datum a čas, jako je například pole DatumNarození. Do výsledku dotazu jsou zahrnuty pouze záznamy, ve kterých je počet roků mezi datem narození dané osoby a aktuálním datem větší než 30.

Is Null

Toto kritérium lze použít u všech typů polí k zobrazení záznamů s hodnotou pole Null.

Jak je znázorněno v předchozí tabulce, kritéria mohou v závislosti na datovém typu pole, u kterého budou použita, a na konkrétních požadavcích vypadat různě. Některá kritéria jsou jednoduchá a používají základní operátory a konstanty. Jiná jsou složitá, používají funkce a speciální operátory a obsahují odkazy na pole.

Důležité : Pokud je pole použito s agregační funkcí, nelze v klauzuli WHERE určit kritéria pro toto pole. Namísto toho lze pomocí klauzule HAVING určit kritéria pro agregovaná pole. Další informace naleznete v části Práce se souhrnnými daty: GROUP BY a HAVING.

Syntaxe klauzule WHERE

Klauzule WHERE má následující základní syntaxi:

WHERE field = criterion

Předpokládejme například, že chcete zjistit telefonní číslo zákazníka, ale pamatujete si jenom jeho příjmení – Bagel. Namísto vyhledávání telefonních čísel v databázi můžete pomocí klauzule WHERE omezit výsledky a usnadnit tak nalezení požadovaného telefonního čísla. Za předpokladu, že příjmení jsou uložena v poli LastName, může klauzule WHERE vypadat následovně:

WHERE [LastName]='Bagel'

Poznámka : Nemáte kritéria uvedená v klauzuli WHERE založit srovnávací hodnoty. Můžete použít jiné relační operátory, jako je větší než (>) nebo menší než (<). Například kde [cena] > 100.

Sloučení zdrojů dat pomocí klauzule WHERE

Někdy může být třeba sloučit zdroje dat na základě polí, která mají odpovídající data, ale rozdílný datový typ. Pole v jedné tabulce může mít například datový typ Číslo, přičemž budete chtít porovnat toto pole s polem v jiné tabulce, které má datový typ Text.

Mezi poli s rozdílnými datovými typy nelze vytvořit spojení. Chcete-li sloučit data ze dvou zdrojů dat na základě hodnot v polích s rozdílným datovým typem, můžete vytvořit klauzuli WHERE, která používá jedno pole jako kritérium pro druhé pole pomocí klíčového slova LIKE.

Předpokládejme například, že chcete použít data z tabulky1 a tabulky2, ale pouze v případě, že data v poli field1 (textové pole v tabulce1) odpovídají datům v poli field2 (číselné pole v tabulce2). Klauzule WHERE může vypadat následovně:

WHERE field1 LIKE field2

Další informace o vytváření kritérií, která lze použít v klauzuli WHERE, naleznete v článku Příklady kritérií dotazů.

Začátek stránky

Poznámka : Upozornění ke strojovému překladu: Tento článek přeložil počítačový systém bez zásahu člověka. Společnost Microsoft nabízí tyto strojové překlady proto, aby umožnila uživatelům, kteří nemluví anglicky, získat informace o produktech, službách a technologiích této společnosti. Protože je tento článek strojově přeložený, může obsahovat slovní, syntaktické nebo gramatické chyby.

Sdílení Facebook Facebook Twitter Twitter E-mail E-mail

Byly tyto informace užitečné?

Výborně! Je ještě něco dalšího, co byste nám chtěli dát vědět?

Jak bychom ho mohli vylepšit?

Děkujeme vám za zpětnou vazbu.

×