- SQL-Урок 5. Символы подстановки и регулярные выражения (LIKE)
- 1. Метасимвол знак процента (%) или звездочка (*)
- 2. Метасимвол знак подчеркивания (_) или знак (?)
- 3. Метасимвол квадратные скобки ([ ])
- SQL — Подстановочные знаки
- Использование символа %
- Использование подстановочного знака
- Использование подстановочного знака [charlist]
- Использование подстановочного знака [! Charlist]
- SQL Подстановочный знак
- SQL Подстановочные знаки
- Подстановочные знаки в MS Access
- Подстановочные знаки в SQL Server
- Демо база данных
- Использование подстановочного знака %
- Пример
- Пример
- Использование подстановочного знака _
- Пример
- Пример
- Использование подстановочного знака [charlist]
- Пример
- Пример
- Использование подстановочного знака [!charlist]
- Русские Блоги
- Подстановочные знаки SQL и их использование
- SQL-Урок 5. Символы подстановки и регулярные выражения (LIKE)
- 1. Метасимвол знак процента (%) или звездочка (*)
- 2. Метасимвол знак подчеркивания (_) или знак (?)
- 3. Метасимвол квадратные скобки ([ ])
SQL-Урок 5. Символы подстановки и регулярные выражения (LIKE)
Часто, для фильтрации данных, нам нужно будет осуществить выборку не по точному совпадении условия, а по приближенному значению. То есть когда, например, мы ищем товар, название которого соответствует определенному шаблону или содержит определенные символы или слова. Для таких целей в SQL существует оператор LIKE, который ищет приближенные значения. Для конструирования такого шаблона используются метасимволы (специальные символы для поиска части значения), а именно: «знак процента» (%) или звездочка (*), «символ подчеркивания» (_) или «знак вопроса» (?), «квадратные скобки» ([ ]).
1. Метасимвол знак процента (%) или звездочка (*)
Давайте из нашей таблицы, например, отберем записи, относящиеся только к товарам, содержащих в своем названии слово Skis (лыжи). Для этого составим соответствующий шаблон:
SELECT * FROM Sumproduct WHERE Product LIKE ‘*Skis*’
Как видим, СУБД отобрала только те записи, где в колонке Product были товары, содержащие слово Skis. Также отметим, что в данном примере используется метасимвол «звездочка» (*), поскольку СУБД Access не поддерживает «знак процента» (% ) для оператора LIKE.
2. Метасимвол знак подчеркивания (_) или знак (?)
Знак подчеркивания или вопросительный знак применяется для того, чтобы заменить один символ в слове. Давайте в слове Bikes заменим все гласные буквы на «вопросительный знак» (?) и посмотрим на результат:
SELECT * FROM Sumproduct WHERE Product LIKE ‘B?k?s’
Мы использовали метасимвол «вопросительный знак» (?), поскольку СУБД Access не поддерживает «знак подчеркивания» (_) для оператора LIKE.
3. Метасимвол квадратные скобки ([ ])
Метасимвол «квадратные скобки» ([ ]) используется для одновременного указания набора символов, по которым нужно выполнить поиск.
SELECT * FROM Sumproduct WHERE City LIKE ‘[TN]*’
В примере выше, мы отобрали записи, где в поле City названия городов начинаются с буквы T или N. Также, в данном случае, мы можем использовать еще один метасимвол, который выполняет обратное действие. Добавим в наше регулярное выражение восклицательный знак (! ), что будет означать «не равно» (для СУБД Access) или знак степени (^) (для других СУБД).
SELECT * FROM Sumproduct WHERE City LIKE ‘[!TN]*’
То есть, последний созданный нами запрос будет читаться как: выбрать все колонки из таблицы Sumproduct и только те записи, где в поле City названия городов не начинаются на буквы T или N. Дополнительно отметим, что набор букв в метасимволе «квадратные скобки» отвечает только за одну позицию в тексте.
Мы можем получить аналогичный результат, если воспользоваться уже известным нам оператором NOT, однако с восклицательным знаком (! ) запись будет короче.
Источник
SQL — Подстановочные знаки
Символ подстановки используется для замены любого другого символа в строке. Подстановочные символы используются с оператором SQL LIKE . Оператор LIKE используется в предложении WHERE для поиска заданного шаблона в столбце. В сочетании с оператором LIKE используются две подстановочные знаки:
- % — Знак процента представляет нулевой, один или несколько символов
- _ — Подчеркнутый символ представляет собой один символ
Примеры, с разными LIKE-операторами с «%» и «_» подстановочными знаками:
Выражение | Описание |
WHERE name LIKE ‘text%’ | Находит любые значения, начинающиеся с «text» |
WHERE name LIKE ‘%text’ | Находит любые значения, заканчивающиеся на «text» |
WHERE name LIKE ‘%text%’ | Находит любые значения, которые имеют «text» в любой позиции |
WHERE name LIKE ‘_text%’ | Находит любые значения, которые имеют «text» во второй позиции |
WHERE name LIKE ‘text_%_%’ | Находит любые значения, начинающиеся с «text» и длиной не менее 3 символов |
WHERE name LIKE ‘text%data’ | Находит любые значения, начинающиеся с «text» и заканчивающиеся на «data» |
Использование символа %
Следующий оператор SQL выбирает всех пользователей с name, начинающимся с «Т»:
Пример:
Следующий оператор SQL выбирает всех пользователей с именем, содержащим шаблон «То»:
Пример:
Использование подстановочного знака
Следующий оператор SQL выбирает всех пользователей с name, начиная с любого символа, за которым следует «о»:
Пример:
Следующий оператор SQL выбирает всех пользователе с name начиная с «Т», за которым следует любой символ, за которым следует «м», за которым следует любой символ, а затем «с»:
Пример:
Использование подстановочного знака [charlist]
Следующий оператор SQL выбирает всех пользователей с name, начиная с «Т», «Р» или «Е»:
Пример:
Следующий оператор SQL выбирает всех пользователей с name, начиная с «Т», «Р» или «Е»:
Пример:
Использование подстановочного знака [! Charlist]
Два следующих оператора SQL выбирают всех пользователей с помощью name NOT, начинающегося с «Т», «Р» или «E»:
Источник
SQL Подстановочный знак
SQL Подстановочные знаки
Подстановочный знак используется для замены одного или нескольких символов в строке.
Подстановочные знаки используются с оператором SQL LIKE. Оператор LIKE используется в предложении WHERE для поиска указанного шаблона в столбце.
Подстановочные знаки в MS Access
Символ | Описание | Пример |
---|---|---|
* | Представляет ноль или более символов | bl* finds bl, black, blue, and blob |
? | Представляет собой один символ | h?t finds hot, hat, and hit |
[] | Представляет любой отдельный символ в квадратных скобках | h[oa]t finds hot and hat, but not hit |
! | Представляет собой любой символ, не заключенный в скобки | h[!oa]t finds hit, but not hot and hat |
— | Представляет собой набор символов | c[a-b]t finds cat and cbt |
# | Представляет собой любой отдельный числовой символ | 2#5 finds 205, 215, 225, 235, 245, 255, 265, 275, 285, and 295 |
Подстановочные знаки в SQL Server
Символ | Описание | Пример |
---|---|---|
% | Представляет ноль или более символов | bl% finds bl, black, blue, and blob |
_ | Представляет собой один символ | h_t finds hot, hat, and hit |
[] | Представляет любой отдельный символ в квадратных скобках | h[oa]t finds hot and hat, but not hit |
^ | Представляет собой любой символ, не заключенный в скобки | h[^oa]t finds hit, but not hot and hat |
— | Представляет собой набор символов | c[a-b]t finds cat and cbt |
Все подстановочные знаки также могут быть использованы в комбинациях!
Вот несколько примеров, показывающих различные операторы LIKE с подстановочными знаками ‘%’ и ‘_’:
Оператор LIKE | Описание |
---|---|
WHERE CustomerName LIKE ‘a%’ | Находит любые значения, которые начинаются с «a» |
WHERE CustomerName LIKE ‘%a’ | Находит любые значения, которые заканчиваются на «a» |
WHERE CustomerName LIKE ‘%or%’ | Находит любые значения, которые имеют «or» в любой позиции |
WHERE CustomerName LIKE ‘_r%’ | Находит любые значения, имеющие букву «r» во второй позиции |
WHERE CustomerName LIKE ‘a_%_%’ | Находит любые значения, начинающиеся с буквы «a» и имеющие длину не менее 3 символов |
WHERE ContactName LIKE ‘a%o’ | Находит любые значения, которые начинаются с «a» и заканчиваются на «o» |
Демо база данных
Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Использование подстановочного знака %
Следующая инструкция SQL выбирает всех клиентов с городом, начинающимся с «ber»:
Пример
Следующая инструкция SQL выбирает всех клиентов с городом, содержащим шаблон «es»:
Пример
Использование подстановочного знака _
Следующая инструкция SQL выбирает всех клиентов с городом, начинающимся с любого символа, за которым следует «ondon»:
Пример
Следующая инструкция SQL выбирает всех клиентов с городом, начинающимся с «L», за которым следует любой символ, за которым следует «n», за которым следует любой символ, а затем «on»:
Пример
Использование подстановочного знака [charlist]
Следующая инструкция SQL выбирает всех клиентов с городом, начинающимся с «b», «s» или «p»:
Пример
Следующая инструкция SQL выбирает всех клиентов с городом, начинающимся с «a», «b» или «c»:
Пример
Использование подстановочного знака [!charlist]
В двух следующих инструкциях SQL выбираются все клиенты с городом, не начинающимся с «b», «s» или «p»:
Источник
Русские Блоги
Подстановочные знаки SQL и их использование
Использование подстановочных знаков в SQL Server
Подстановочный знак _
Знак «_» означает любой отдельный символ, и этот символ может соответствовать только одному символу. «_» Может быть размещен в любом месте условия запроса и может представлять только один символ. Китайский символ представлен только знаком «_».
Wildcards%
Символ «%» — это символ сопоставления символов, который может соответствовать строкам любой длины от 0 и более символов. В операторе SQL можно поместить% в любую позицию условия запроса, чтобы представить строку любой длины. В условии запроса Вы также можете поместить два% для запроса, но лучше не иметь два% подряд в условии запроса
Подстановочный знак []
«[]» Может использоваться для запроса определенного диапазона данных в запросе шаблона. [] Используется для указания любого отдельного символа в пределах определенного диапазона, включая данные на обоих концах.
Подстановочный знак [^]
[^] Используется для запроса любого отдельного символа, который не принадлежит указанному диапазону ([a-f]) или множеству ([abcdef]).
Такие как: выберите * из alluser
where username like ‘M[^abc]%’
Указывает, что имя пользователя из таблицы alluser начинается с M, а второй символ не является a, b или c.
Сопоставление с образцом в предложении ESCAPE
Ищет строки, содержащие один или несколько специальных символов подстановки. Например, таблица скидок в базе данных клиентов может хранить значения скидок со знаком процента (%). Для поиска знака процента в виде символа вместо подстановочного знака необходимо указать ключевое слово ESCAPE и escape-символ. Например, пример базы данных содержит столбец с именем комментария с 30% текста. Чтобы найти любую строку, содержащую строку 30% в любом месте столбца комментариев, укажите предложение Where, состоящее из комментария Where LIKE ‘% 30! %%’ ESCAPE ‘!’. Если ESCAPE и escape-символы не указаны, SQL Server возвращает все строки со строкой 30.
В следующем примере показано, как найти строку «Скидка 50% при покупке 100 или более копий» в столбце примечаний таблицы заголовков в базе данных pubs:
Select notes FROM titles
Where notes LIKE ‘50%% off when 100 or more copies are purchased’
ESCAPE ‘%’
Основная цель побега
1. Используйте ключевое слово ESCAPE для определения escape-символов. В шаблоне, когда символ экранирования предшествует подстановочному знаку, подстановочный знак интерпретируется как обычный символ. Например, чтобы найти строку, содержащую строку 5%, используйте: Где ColumnA LIKE ‘% 5 / %%’ ESCAPE ‘/’
2.ESCAPE ‘escape_character’ позволяет искать подстановочные знаки в строке вместо использования их в качестве подстановочных знаков. escape_character — это символ, который помещается перед подстановочными знаками, чтобы указать эту специальную цель.
Select * FROM finances Where description LIKE ‘gs_’ ESCAPE ‘S’
Значение: например, если мы хотим найти строку «g_», если она прямо похожа на «g_», то роль «_» — это подстановочный знак, а не символ. В результате мы найдем, например, «ga», «gb», «gc», а не «g_», который нам нужен. Используйте LIKE ‘gs_’ ESCAPE ‘S’ ‘s’ для специальных флагов использования
# Регион «Подстановочный знак»
Источник
SQL-Урок 5. Символы подстановки и регулярные выражения (LIKE)
Часто, для фильтрации данных, нам нужно будет осуществить выборку не по точному совпадении условия, а по приближенному значению. То есть когда, например, мы ищем товар, название которого соответствует определенному шаблону или содержит определенные символы или слова. Для таких целей в SQL существует оператор LIKE, который ищет приближенные значения. Для конструирования такого шаблона используются метасимволы (специальные символы для поиска части значения), а именно: «знак процента» (%) или звездочка (*), «символ подчеркивания» (_) или «знак вопроса» (?), «квадратные скобки» ([ ]).
1. Метасимвол знак процента (%) или звездочка (*)
Давайте из нашей таблицы, например, отберем записи, относящиеся только к товарам, содержащих в своем названии слово Skis (лыжи). Для этого составим соответствующий шаблон:
SELECT * FROM Sumproduct WHERE Product LIKE ‘*Skis*’
Как видим, СУБД отобрала только те записи, где в колонке Product были товары, содержащие слово Skis. Также отметим, что в данном примере используется метасимвол «звездочка» (*), поскольку СУБД Access не поддерживает «знак процента» (% ) для оператора LIKE.
2. Метасимвол знак подчеркивания (_) или знак (?)
Знак подчеркивания или вопросительный знак применяется для того, чтобы заменить один символ в слове. Давайте в слове Bikes заменим все гласные буквы на «вопросительный знак» (?) и посмотрим на результат:
SELECT * FROM Sumproduct WHERE Product LIKE ‘B?k?s’
Мы использовали метасимвол «вопросительный знак» (?), поскольку СУБД Access не поддерживает «знак подчеркивания» (_) для оператора LIKE.
3. Метасимвол квадратные скобки ([ ])
Метасимвол «квадратные скобки» ([ ]) используется для одновременного указания набора символов, по которым нужно выполнить поиск.
SELECT * FROM Sumproduct WHERE City LIKE ‘[TN]*’
В примере выше, мы отобрали записи, где в поле City названия городов начинаются с буквы T или N. Также, в данном случае, мы можем использовать еще один метасимвол, который выполняет обратное действие. Добавим в наше регулярное выражение восклицательный знак (!), что будет означать «не равно» (для СУБД Access) или знак степени (^) (для других СУБД).
SELECT * FROM Sumproduct WHERE City LIKE ‘[!TN]*’
То есть, последний созданный нами запрос будет читаться как: выбрать все колонки из таблицы Sumproduct и только те записи, где в поле City названия городов не начинаются на буквы T или N. Дополнительно отметим, что набор букв в метасимволе «квадратные скобки» отвечает только за одну позицию в тексте.
Мы можем получить аналогичный результат, если воспользоваться уже известным нам оператором NOT, однако с восклицательным знаком (!) запись будет короче.
Источник