Úvod do zástupných znaků
Zástupný znak je znak nebo skupina znaků, které lze prohledat a nahradit v určitém daném řetězci. Zástupné znaky se používají s dotazy MySQL s operátorem LIKE. Tento operátor LIKE se používá v klauzuli where dotazu MySQL. Pomocí klauzule where můžeme vyhledat konkrétní vzorec pro konkrétní sloupec tabulky.
Příklad:
% zástupný znak se používá jako% ab najde všechny ab v dané sadě dat (záznamů) produkujících výstup jako asi, nad, hojnost, absorbent atd.…
Proč používáme karty WildCards?
Jak jste obeznámeni s MySQL, máme různé dotazy jako INSERT, UPDATE, SELECT, DELETE atd. Jelikož zástupné znaky provádějí hledání konkrétního vzoru, do obrázku se objeví příkaz SELECT spolu s klauzulí WHERE, nikoli jiné MySQL dotazy. Abychom usnadnili vyhledávání pomocí zástupných znaků, podívejme se na jednoduchý příklad umělců a jeho obrazů. Řekněme, že existují různé obrazy vytvořené různými umělci v různých částech světa za různé ceny. Nechte název databáze podle vašeho výběru říkat „search_artist“
Název tabulky je umělec
Zde je vytvoření dotazu pro vytvoření tabulky „umělec“
CREATE TABLE `artist` (
`artist_id` int(11) NOT NULL,
`artist_name` varchar(255) NOT NULL,
`artist_painting` varchar(255) NOT NULL,
`artist_country_name` varchar(255) NOT NULL,
`artist_country_code` varchar(255) NOT NULL,
`artist_painting_price` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Po vytvoření tabulky vložíme data do tabulky
Výpis dat pro tabulku „umělec“
INSERT INTO `artist` (`artist_id`, `artist_name`, `artist_painting`, `artist_country_name`, `artist_country_code`, `artist_painting_price`) VALUES
(1, 'Leonardo Da Vinci', 'Mona Lisa', 'Angola', 'AO', '$500'),
(2, 'Edvard Munch', 'The Scream', 'Bahrain', 'BH', '$600'),
(3, 'Sistine Chapel by Michelangelo', 'The Creation of Adam', 'Bangladesh', 'BD', '$700'),
(4, 'Vincent Van Gogh', 'Sun Flowers', 'Malaysia', 'MY', '$550'),
(5, 'Rene Magritte', 'Ceci N'est pas une Pipe', 'Madagascar', 'MG', '$850'),
(6, 'Edvard Munch', 'The Scream', 'Portugal', 'PT', '$750'),
(7, 'Leonardo Da Vinci', 'Mona Lisa', 'Poland', 'PL', '$500'),
(8, 'Claude Monet', 'Poppies in a Field', 'Vietnam', 'VN', '$650');
Po provedení výše uvedeného dotazu se vytvoří následující tabulka
Procento
Příklad 1: Nyní chceme vědět, který umělec má svůj obraz v zemích, kde název země začíná „BA“
Dotaz SEARCH vypadá takto
SELECT * FROM artist WHERE artist_country_name LIKE 'Ba%'
The result is country names starting with Ba are “Bahrain” and “Bangladesh”
Spuštění výše uvedeného dotazu v MySQL
Výstup dotazu
Příklad 2: Chceme vědět, který umělec má svůj obraz v zemích obsahujících „al“
Řešením je
SELECT * FROM artist WHERE artist_country_name LIKE '%al%'
The result is country names starting with Ba are “Malaysia” and “Portugal”
Spuštění výše uvedeného dotazu v MySQL
Výstup dotazu
Ve výše uvedených dvou příkladech máme jednu zástupnou kartu, která je '%'
Nyní zkontrolujeme související zástupné znaky, jako je zástupný znak _ (zástupný znak podtržítka), klíčové slovo escape, klíčové slovo NOT LIKE atd.
Podívejme se na druhý zástupný znak, kterým je _ podtržítko
_ zástupný znak podtržítka
Příklad 1: Používá se také s příkazem SELECT spolu s příkazem where, kde v _ znamená libovolný jediný znak, což by mohlo být cokoli
Řešením jeSELECT * FROM artist WHERE `artist_painting_price` LIKE '$5_0'
The result is painting price names with this pattern will give output as
$500, $550, $500 in the painting price column
Spuštění výše uvedeného dotazu v MySQL
Výstup dotazu
Příklad 2:
Řešením jeSELECT * FROM artist WHERE `artist_country_code` LIKE 'A_'
Spuštění výše uvedeného dotazu v MySQL
Výstup výše uvedeného dotazu
Před potápěním ve třetí zástupné kartě uvidíme kombinaci výše uvedených dvou zástupných znaků, kombinaci zástupných znaků „_“ a „%“
Zástupná kombinace | Význam |
WHERE artist_painiting LIKE 'Mo%' | Vrací všechny hodnoty, které začínají na „Mo“ |
WHERE artist_country_name LIKE '% n' | Vrací všechny hodnoty, které končí „n“ |
WHERE artist_country_name LIKE '% da%' | Vrátí všechny hodnoty, které mají „da“ v libovolné poloze |
WHERE artist_country_name LIKE '_o%' | Vrátí všechny hodnoty, které mají na druhé pozici „o“ |
WHERE artist_name LIKE 'L% i' | Vrátí všechny hodnoty, které začínají na „L“ a končí na „i“ |
Podívejme se na třetí zástupný znak, který NENÍ TAKOVÝ zástupný znak
NOT LIKE wildcard
Tento operátor NOT LIKE se stejně jako ostatní používá s klauzulí select příkazu a podtržítka a zástupného procenta. Vrací řádky z tabulky, kde se daný vzor neshoduje.
Příklad 1: Nechceme záznamy, kde malba umělce má cenu 600 a 650 $
Řešením je:
SELECT * FROM artist WHERE `artist_painting_price` NOT LIKE '$5%'
Spuštění výše uvedeného dotazu v MySQL s výstupem
Čtvrtá zástupná karta je (seznam znaků) s REGEXP
Příklad 1: Chceme záznamy, které obsahují všechny znaky, které odpovídají vzoru přítomnému v závorce.
Řešením je:SELECT * FROM artist WHERE `artist_country_name` REGEXP '^(po)'
Zde jméno umělce, které obsahuje skupinu znaků jako po, je výsledkem dvou záznamů, které obsahují pouze Portugalsko a Polsko.
Spuštění výše uvedeného dotazu v MySQL s výstupem
Pátá zástupná karta je NE s klíčovým slovem REGEXP
Příklad: Chceme záznamy, které obsahují všechny znaky kromě těch znaků, které jsou přítomny v závorce.
Řešením je:
SELECT * FROM artist WHERE artist_country_name REGEXP '^(^po)'
Spuštění výše uvedeného dotazu v MySQL s výstupem
Klíčové slovo Sixth Wildcard escape
Příklad 1: V tomto příkladu je jméno umělce vstupem, který je v tabulce vyhledán pro daný vzorec pomocí klíčového slova escape. V následujícím příkladu bude jasnější.
Řešením je:
SELECT * FROM artist WHERE `artist_name` LIKE '%$ Da %' ESCAPE '$'
Spuštění výše uvedeného dotazu v MySQL s výstupem
Sedmá zástupná karta '|' klíčové slovo pro vyhledávání na základě zadaných abeced.
Příklad 2: Chceme záznamy, jejichž křestní jména začínají znakem L nebo S
Řešením je:
SELECT * FROM artist WHERE `artist_painting` REGEXP '^(L|S)'
Spuštění výše uvedeného dotazu v MySQL s výstupem
Závěr - zástupné znaky
Doufáme, že s tímto tématem jste se naučili% a _ zástupné znaky s příklady. Dozvíte se také Operátor NOT LIKE, vyhledávací dotaz s klíčovým slovem escape, (znakový seznam) a další. To vše bylo objasněno provedením SELECT dotazu s klauzulí where v tabulce „artist“. Doufejme, že každé téma bylo snazší pochopit a pochopit.
Doporučené články
Toto byl průvodce zástupnými znaky. Zde diskutujeme o tom, co jsou zástupné znaky, jak používat zástupné znaky a jak vytvořit tabulku atd. Další informace naleznete také v našich dalších navrhovaných článcích -
- Zástupný znak v SQL
- Filtry v Tableau
- Použití SQL
- Funkce řetězce T-SQL
- Funkce Regex v Pythonu (příklad)