] Исключающий диапазон или
последовательность символовПример 4

Примеры оператора SQL LIKE: Имеется следующая таблица Universities:

IDUniversityNameStudentsFacultiesProfessoresLocationSite
1Perm State National Research University12400121229Permpsu.ru
2Saint Petersburg State University213002413126Saint-Petersburg spbu. ru
3Novosibirsk State University7200131527Novosibirsknsu.ru
4Moscow State University351003914358Moscowmsu.ru
5Higher School of Economics20335121615Moscowhse.ru
6Ural Federal University57000195640Yekaterinburgurfu.ru
7National Research Nuclear University860010936Moscowmephi.ru

Пример 1. С помощью оператора SQL LIKE вывести записи университетов, имеющих в своем названии слово «State»:

SELECT * FROM Universities WHERE UniversityName LIKE '%State%'

Результат:

IDUniversityNameStudentsFacultiesProfessoresLocationSite
1Perm State National Research University12400121229
Perm
psu. ru
2Saint Petersburg State University213002413126Saint-Petersburg spbu.ru
3Novosibirsk State University7200131527Novosibirsknsu.ru
4Moscow State University351003914358Moscowmsu.ru

В этом примере, в качестве шаблона оператора SQL LIKE послужил ‘%State%’. Исходя из условия задачи, слово State может стоять в названии где угодно, поэтому оно обрамлено символом «%», обозначающим строку любой длины перед и после слова.

Пример 2. С помощью оператора SQL LIKE вывести записи университетов, доменное имя сайта которых содержит 4 символа (за исключением домена .ru):

SELECT * FROM Universities WHERE Site LIKE '____.ru'

Результат:

IDUniversityNameStudentsFacultiesProfessoresLocationSite
2Saint Petersburg State University213002413126Saint-Petersburg spbu. ru
6Ural Federal University57000195640Yekaterinburgurfu.ru

Пример 3. С помощью оператора SQL LIKE вывести записи университетов, первая буква доменного имени сайта которых содержит буквы из диапазона [k-o]:

SELECT * FROM Universities WHERE Site LIKE '[k-o]%'

Результат:

IDUniversityNameStudentsFacultiesProfessoresLocationSite
3Novosibirsk State University7200131527Novosibirsknsu.ru
4Moscow State University351003914358Moscowmsu. e-o]%’

Результат:

IDUniversityNameStudentsFacultiesProfessoresLocationSite
2Saint Petersburg State University213002413126Saint-Petersburg spbu.ru

Оператор Like — Служба поддержки Майкрософт

Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше

Сравнивает строковое выражение с шаблоном в выражении SQL.

Синтаксис

выражение Like «шаблон«

Синтаксис оператора Like включает в себя следующие компоненты:

Часть

Описание

выражение

Выражение SQL, используемое в предложении WHERE.

шаблон

Строка или строковый литерал, с которыми сравнивается выражение.

Замечания

Оператор Like можно использовать для поиска значений полей, соответствующих указанному шаблону. В качестве

шаблона можно задать полное значение (например, Like “Smith”) или использовать подстановочные знаки, чтобы получить диапазон значений (например, Like “Sm*”)).

Оператор Like можно использовать в выражении для сравнения значений полей с строками. Например, если ввести Like “C*” запросе SQL, запрос возвратит все значения полей, начиная с буквы C. В запрос с параметрами запрос на поиск шаблона.

Следующий пример возвращает данные, которые начинаются с буквы P, за которой идут любая буква от A до F и три цифры:

Like “P[A-F]###”

В следующей таблице показано, как использовать оператор Like для проверки на соответствие различным шаблонам:


Тип совпадения


Шаблон

Соответствие
(возвращает значение «Истина»)

Нет соответствия
(возвращает значение «Истина»)

Несколько символов

а*а

аа, aБa, aБББa

aБВ

*aб*

aбв, AAББ, Цaб

aШб, бaв

Особые символы

а[*]а

а*а

ааа

Несколько символов

aб*

aбвгдеё, aбв

вaб, aaб

Один символ

а?а

ааа, а3а, aБa

aБББa

Одна цифра

а#а

а0а, а1а, а2а

ааа, а10а

Диапазон символов

[a-я]

д, о, и

2, &

Вне диапазона

[!a-я]

9, &, %

б, a

Не цифра

[!0-9]

А, а, &, ~

0, 1, 9

Смешанный

a[!б-л]#

Aм9, aя0, a99

aбв, aи0

Оператор SQL LIKE

Оператор LIKE используется в условии WHERE для фильтрации данных на основе определенного шаблона. Его можно использовать с числами, строками или значениями даты. Однако рекомендуется использовать строковые значения.

Оператор LIKE в базе данных MS SQL Server, SQLite, MySQL не чувствителен к регистру, тогда как он чувствителен к регистру в базе данных Oracle и PostgreSQL.

Синтаксис:
 SELECT * FROM имя_таблицы
ГДЕ имя_столбца НРАВИТСЯ «шаблон»
 

Оператор LIKE использует следующие подстановочные знаки для указания шаблона:

Узор Описание
% % соответствует нулю, одному или нескольким символам (заглавным или строчным) или числам.
Напр. «A%» будет соответствовать всей строке, начинающейся с «A», за которой следует любое количество символов или цифр.
_ Знак подчеркивания _ соответствует любому одиночному символу или числу.
Напр. «A_» будет соответствовать всем строкам с двумя символами, где первый символ должен быть «A», а второй символ может быть любым.
[] 9e,l,p]» будет соответствовать всему, что начинается с «A», но не «Apple», «Aelp», «Alep», «Aple» и т. д.

Эти подстановочные знаки можно использовать по отдельности или в сочетании друг с другом в операторе LIKE.

Для демонстрационных целей мы будем использовать следующие таблицы Employee во всех примерах.

Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
1 ‘Джон’ ‘Король’ ‘[электронная почта защищена]’ 33000 25. 07.2018
2 ‘Джеймс’ ‘Бонд’ 2018-07-29
3 ‘Нина’ ‘Кочхар’ ‘[электронная почта защищена]’ 17000 22.08.2018
4 ‘Лекс’ ‘Де Хаан’ ‘[электронная почта защищена]’ 15000 2018-09-8
5 ‘Амит’ ‘Патель’ 18000 25.01.2019
6 ‘Абдул’ ‘Калам’ ‘[электронная почта защищена]’ 25000 14. 07.2020

Рассмотрим следующий запрос с оператором LIKE.

 ВЫБЕРИТЕ *
ОТ Сотрудника
ГДЕ Имя НРАВИТСЯ "Джон";
 

выше, WHERE FirstName LIKE 'john' извлекает все записи, содержащие значение в FirstName 9Столбец 0064 — это «Джон» или «Джон» в базе данных MS SQL Server, SQLite и MySQL. Однако оператор LIKE чувствителен к регистру в базах данных Oracle и PostgreSQL, поэтому он извлекает только те записи, где значение равно 'john', а не 'John'. Ниже приведен результат в базе данных MS SQL Server, SQLite и MySQL.

Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
1 'Джон' 'Король' '[электронная почта защищена]' 33000 25. 07.2018

Подстановочный знак % указывает любое количество символов.

 ВЫБЕРИТЕ *
ОТ сотрудников
ГДЕ Имя НРАВИТСЯ 'j%';
 

Приведенный выше запрос извлекает все записи, в которых значение столбца FirstName начинается с «j» или «J», за которым следует любое количество символов в базе данных MS SQL Server, SQLite и MySQL. В Oracle или PostgreSQL он будет извлекать записи, начинающиеся с «j», но не с «J». Ниже приведен результат в базе данных MS SQL Server, SQLite и MySQL.

Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
1 'Джон' 'Король' '[электронная почта защищена]' 33000 25. 07.2018
2 'Джеймс' 'Бонд' 2018-07-29

Следующий запрос извлекает данные, где Имя имеет значение '%a%'. Это означает, что значение должно содержать «а» в любой позиции.

 ВЫБЕРИТЕ *
ОТ Сотрудника
ГДЕ Имя НРАВИТСЯ '%a%';
 

Приведенный выше запрос отобразит следующий результат.

Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
2 'Джеймс' 'Бонд' 2018-07-29
3 'Нина' 'Кочхар' '[электронная почта защищена]' 17000 22. 08.2018
5 'Амит' 'Патель' 18000 25.01.2019
6 'Абдул' 'Калам' '[электронная почта защищена]' 25000 14.07.2020

Приведенный ниже запрос вернет записи, значение которых FirstName содержит три буквы и 'e' во второй позиции. '_' указывает на один любой символ.

 ВЫБЕРИТЕ *
ОТ Сотрудника
ГДЕ Имя НРАВИТСЯ '_e_';
 

Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
4 'Лекс' 'Де Хаан' '[электронная почта защищена]' 15000 2018-09-8

В приведенном ниже запросе используется шаблон подстановки [].

 ВЫБЕРИТЕ *
ОТ Сотрудника
ГДЕ Имя КАК 'A[i,m,t,y,s]';
 

9я, м, т, у, с]';

Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
6 'Абдул' 'Калам' '[электронная почта защищена]' 25000 14.07.2020

В следующей таблице перечислены шаблоны команд, используемые с оператором LIKE:

Узор Описание
Имя НРАВИТСЯ 'Джон' Возвращает записи, значение FirstName которых равно 'john' или 'JOHN', или 'John', или 'jOhN', или 'JoHn'.
Имя НРАВИТСЯ 'j%' Возвращает записи, значение FirstName которых начинается с «j» или «J», за которым следует любое количество символов или цифр.
Имя НРАВИТСЯ '%a%' Возвращает записи, значение FirstName которых содержит «a» или «A» в любой позиции.
Имя НРАВИТСЯ 'a%b' Возвращает записи, в которых значение FirstName должно начинаться с «a» или «A», а последний символ должен быть «b» или «B».
Имя LIKE '_a' Возвращает записи, значение FirstName которых содержит два символа, а второй символ должен быть "a" или "A".
Имя НРАВИТСЯ '_a%' Возвращает записи, значение FirstName которых содержит вторые символы «a» или «A».
Имя НРАВИТСЯ '%a_' Возвращает записи, в которых значение FirstName имеет предпоследний символ «a» или «A».
Имя НРАВИТСЯ '___' Возвращает записи, значение FirstName которых должно состоять из трех символов.
Имя НРАВИТСЯ '___%' Возвращает записи, значение FirstName которых должно содержать не менее трех символов.
Имя LIKE 'A[i,m,t]' Возвращает записи, значение FirstName которых начинается с 'A' и сопровождается любыми символами, указанными в []. 9я, м, т]' Возвращает записи, значение FirstName которых начинается с 'A' и не должно сопровождаться какими-либо символами, указанными в [].

Используйте оператор NOT с оператором LIKE для фильтрации записей, не соответствующих указанной строке.

 ВЫБЕРИТЕ *
ОТ Сотрудника
ГДЕ Имя НЕ НРАВИТСЯ 'j%';
 

Выше, Имя НЕ КАК 'j%' извлекает записи, где Имя 9Значения 0064 не начинаются с «j».

Эмпид Имя Фамилия Электронная почта Зарплата Дата найма
3 'Нина' 'Кочхар' '[электронная почта защищена]' 17000 22.08.2018
4 'Лекс' 'Де Хаан' '[электронная почта защищена]' 15000 2018-09-8
5 'Амит' 'Патель' 18000 25. 01.2019
6 'Абдул' 'Калам' '[электронная почта защищена]' 25000 14.07.2020

SQL LIKE

Резюме : в этом руководстве вы узнаете, как использовать оператор SQL LIKE для проверки соответствия значения шаблону.

Знакомство с оператором SQL LIKE

Оператор LIKE является одним из логических операторов SQL. Оператор LIKE возвращает значение true, если значение соответствует шаблону, или false в противном случае.

Синтаксис оператора LIKE следующий:

 

выражение LIKE шаблон

Язык кода: SQL (язык структурированных запросов) (sql)

В этом синтаксисе LIKE 90 064 оператор проверяет, является ли выражение соответствует шаблону. Стандарт SQL предоставляет вам два подстановочных знака для создания шаблона:

  •   % процент подстановочного знака соответствует нулю, одному или более символам
  •   _ подстановочный знак соответствует одному символу.

Ниже показан пример использования подстановочных знаков % и _:

Выражение Значение
'Kim%' соответствует строке, начинающейся с Kim
НРАВИТСЯ  '%er' соответствует строке, которая заканчивается на er
LIKE '%ch%' соответствует строке, содержащей ch
LIKE  'Le_' соответствует строке, начинающейся с Le  и за которым следует один символ, например, Les, Len…
LIKE '_uy' соответствует строке, которая заканчивается на uy и которой предшествует один символ e. г., парень
LIKE '%are_' соответствует строке, содержащей are и заканчивающейся одним символом , начинается с одного символа и заканчивается с любым количеством символов

Обратите внимание, что помимо подстановочных знаков % и _ в некоторых системах баз данных могут быть другие подстановочные знаки, характерные для этих баз данных.

НЕ КАК

Чтобы отрицать LIKE , вы используете оператор NOT :

 

выражение NOT LIKE pattern

Оператор NOT LIKE возвращает true, если выражение не соответствует шаблону, или false в противном случае.

Управляющий символ

Чтобы сопоставить строку, содержащую подстановочный знак, например 10% , необходимо указать оператору LIKE обрабатывать % в 10% как обычный символ.

Для этого необходимо явно указать escape-символ после предложения ESCAPE :

 

выражение LIKE pattern ESCAPE escape_character

Язык кода: SQL (язык структурированных запросов) (sql)

Например :

 

значение LIKE '%10!%%' ESCAPE '!'

Язык кода: JavaScript (javascript)

В этом примере ! является escape-символом. Он указывает оператору LIKE рассматривать % в 10% как обычный символ.

На практике вы часто используете оператор LIKE в предложении WHERE операторов SELECT , UPDATE и DELETE .

Примеры операторов SQL LIKE

Для демонстрации мы будем использовать таблицу сотрудников в образце базы данных.

В следующем примере оператор LIKE используется для поиска всех сотрудников, чьи имена начинаются с Da :

 

SELECT идентификатор_сотрудника, имя, фамилия ОТ сотрудники ГДЕ first_name LIKE 'Да%';

Язык кода: SQL (язык структурированных запросов) (sql)

Попробуйте

 

+-------------+------------ -+-----------+ | идентификатор_сотрудника | имя_имя | фамилия | +-------------+-------------+-----------+ | 105 | Дэвид | Остин | | 109 | Даниэль | Фавиет | +-------------+------------+-----------+

Кодовый язык: открытый текст (открытый текст)

В следующем примере оператор LIKE используется для поиска всех сотрудников, чьи имена заканчиваются на 9.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *