Prehľad zástupných znakov v SQL
Zástupný znak v SQL slúži na nahradenie reťazca nulovým počtom znakov. Zvyčajne sa zistí, že tieto zástupné znaky sa používajú s operátorom SQL LIKE. Toto je operátor, ktorý sa bežne používa v klauzule WHERE SQL, na hľadanie konkrétneho usporiadania znakov.
Zástupné znaky majú podobný cieľ ako regulárne výrazy. Zástupný znak je náhradný znak, ktorý sa používa na nahradenie konkrétnych ďalších znakov alebo znakov v danom reťazci. Tieto zástupné znaky sú užitočné, keď chceme vykonať rýchle vyhľadávanie v databáze.
V SQL máme dva bežné zástupné znaky. Symbol percenta znamená nulu, jeden alebo ľubovoľný počet znakov. Symbol podčiarknutia označuje jeden znak, buď písmeno alebo číslo. Tieto znaky možno kombinovať v niekoľkých usporiadaniach. Máme tiež (charlist), (charlist) a (! Charlist), ktoré môžu byť použité v SQL aj MS Access.
Tieto zástupné znaky sa podrobne pozrieme spolu s niekoľkými užitočnými zástupnými znakmi.
Divoká karta | popis | príklad |
Znak percenta:% | Tento zástupný znak zodpovedá nule alebo viac znakov | ha% nájde ha, klobúk, šťastný a stane sa |
Podčiarknutie: _ | Tento zástupný znak zodpovedá iba určitému jedinému znaku | p_t nájsť pot, pit a dať |
Hranaté zátvorky: () | Tento zástupný znak zodpovedá samostatnému znaku uvedenému v zátvorkách | p (oi) t nájsť pot a jamu, ale nie dať |
Posun: ^ | Tento zástupný znak zodpovedá znakom, ktoré nie sú v zátvorke za týmto symbolom | p (oi) t nájde put, ale nie pot a jamu |
Upozorňujeme, že program MS Access používa znak zástupnej hviezdičky (*) pre zástupný znak namiesto zástupného znaku percentuálneho podielu (%), aby sa zhodoval s nulou alebo viac znakov, a namiesto zástupného znaku použije znak otáznika (?) znak podčiarknutia, ktorý predstavuje jeden znak.
Syntax SQL zástupných znakov
Pozrime sa na počet spôsobov, ako je možné napísať zástupný znak „%“ a „_“:
SELECT FROM table_name
WHERE column LIKE 'AAAA%'
alebo
SELECT FROM table_name
WHERE column LIKE '%AAAA%'
alebo
SELECT FROM table_name
WHERE column LIKE '_AAAA'
alebo
SELECT FROM table_name
WHERE column LIKE 'AAAA_'
alebo
SELECT FROM table_name
WHERE column LIKE '_ AAAA _'
AAAA% nám pomáha hľadať akékoľvek reťazce začínajúce AAAA a končiace tam alebo končiace iným jedným znakom alebo viac ako jedným znakom.
% AAAA% nám pomáha hľadať akékoľvek reťazce začínajúce ľubovoľným počtom znakov, ale obsahujúce reťazec AAAA medzi a končiaci ľubovoľným počtom znakov od 0 do nekonečna.
_AAAA nám pomáha hľadať akékoľvek reťazce začínajúce jediným odlišným znakom a končiace reťazcom AAAA.
AAAA_ nám pomáha hľadať akékoľvek reťazce začínajúce AAAA vzorom a končiace jediným odlišným znakom.
_AAAA_ nám pomáha vyhľadať akékoľvek reťazce začínajúce odlišným znakom, ktorý obsahuje vzor AAAA medzi a končiaci jediným odlišným znakom.
Príklady pre každý zástupný znak v SQL
Tu je niekoľko príkladov zástupných znakov uvedených nižšie
1) Práca s% zástupnou kartou
V tomto príklade si môžeme vybrať všetkých zamestnancov mesta počnúc „the“:
SELECT * FROM Employees
WHERE City LIKE 'the%';
2) Práca s _ zástupnou kartou
V tomto príklade si môžeme vybrať všetkých zamestnancov mesta, ktorí začínajú jedným odlišným znakom, ale končia „elhi“:
SELECT * FROM Employees
WHERE City LIKE '_elhi';
Pozrime sa na ďalší príklad, v ktorom môžeme vybrať Zamestnancov mesta, ktorých meno začína na „B“, za ktorým nasleduje jediný zreteľný znak, za ktorým nasleduje „r“, za ktorým nasleduje jeden samostatný znak a za ním „in“:
SELECT * FROM Employees
WHERE City LIKE 'B_r_in';
3) Kombinácia% a _ zástupných znakov
Kombináciou oboch zástupných znakov môžeme optimalizovať náš proces vyhľadávania.
V tomto príklade nájdeme ľubovoľný reťazec, ktorý má na druhej pozícii znak „a“.
WHERE StringName LIKE '_a%'
V tomto príklade nájdeme ľubovoľný reťazec začínajúci na „x“, ktorý má dĺžku minimálne troch znakov.
WHERE StringName LIKE 'x_%_%'
V tomto príklade nájdeme ľubovoľný reťazec začínajúci na 'x' a končiaci na 'y', medzi ktorými musí byť minimálne jeden znak.
WHERE StringName LIKE 'x%_y'
4) Práca s () zástupnou kartou
V tomto príklade môžeme vybrať všetkých zamestnancov mesta, ktorých meno začína na „a“, „b“ alebo „c“.
SELECT * FROM Employees
WHERE City LIKE '(abc)%';
Rovnaký príklad môžeme napísať iným spôsobom pomocou symbolu spojovníka (-). Toto vyhlásenie tiež vyberie všetkých zamestnancov mesta, ktorých meno začína na „a“, „b“ alebo „c“. Môže to byť napísané nasledovne:
>SELECT * FROM Employees
WHERE City LIKE '(ac)%';
5) Práca s (!) Zástupnou kartou
V tomto príklade si môžeme vybrať všetkých zamestnancov mesta, ktorých meno NESMIE začínať buď „a“, „b“ alebo „c“.
SELECT * FROM Employees
WHERE City LIKE '(!abc)%';
Toto vyhlásenie možno písať aj takto:
SELECT * FROM Employees
WHERE City NOT LIKE '(abc)%';
záver
V tomto článku SQL Wildcard sme sa zaoberali všetkými zástupnými znakmi v SQL. Ďalej sme sa zaoberali rôznymi príkladmi znakov SQL zástupných znakov, aby nám poskytli väčšie porozumenie a jasnosť.
Záverom je, že zástupné znaky robia podobnú prácu ako regulárne výrazy. Kombináciou viacerých zástupných znakov do samostatného reťazca môžeme dosiahnuť lepšie výsledky a výsledky vyhľadávania. Existuje niekoľko databáz, ako je MS Access, ktoré by mohli používať samostatnú zástupnú značku SQL pre podobnú funkciu.
Odporúčané články
Toto je sprievodca Wildcard v SQL. Tu diskutujeme Syntax SQL zástupných znakov s príkladmi pre každý zástupný znak. Viac informácií nájdete aj v nasledujúcom článku -
- Zobrazenia SQL
- SQL Management Tools
- Čo je MySQL?
- Úvod do MySQL