] Исключающий диапазон или последовательность символовПример 4
Примеры оператора SQL LIKE: Имеется следующая таблица Universities:
ID
UniversityName
Students
Faculties
Professores
Location
Site
1
Perm State National Research University
12400
12
1229
Perm
psu.ru
2
Saint Petersburg State University
21300
24
13126
Saint-Petersburg
spbu. ru
3
Novosibirsk State University
7200
13
1527
Novosibirsk
nsu.ru
4
Moscow State University
35100
39
14358
Moscow
msu.ru
5
Higher School of Economics
20335
12
1615
Moscow
hse.ru
6
Ural Federal University
57000
19
5640
Yekaterinburg
urfu.ru
7
National Research Nuclear University
8600
10
936
Moscow
mephi.ru
Пример 1. С помощью оператора SQL LIKE вывести записи университетов, имеющих в своем названии слово «State»:
SELECT * FROM Universities WHERE UniversityName LIKE '%State%'
Результат:
ID
UniversityName
Students
Faculties
Professores
Location
Site
1
Perm State National Research University
12400
12
1229
Perm
psu. ru
2
Saint Petersburg State University
21300
24
13126
Saint-Petersburg
spbu.ru
3
Novosibirsk State University
7200
13
1527
Novosibirsk
nsu.ru
4
Moscow State University
35100
39
14358
Moscow
msu.ru
В этом примере, в качестве шаблона оператора SQL LIKE послужил ‘%State%’. Исходя из условия задачи, слово State может стоять в названии где угодно, поэтому оно обрамлено символом «%», обозначающим строку любой длины перед и после слова.
Пример 2. С помощью оператора SQL LIKE вывести записи университетов, доменное имя сайта которых содержит 4 символа (за исключением домена .ru):
SELECT * FROM Universities WHERE Site LIKE '____.ru'
Результат:
ID
UniversityName
Students
Faculties
Professores
Location
Site
2
Saint Petersburg State University
21300
24
13126
Saint-Petersburg
spbu. ru
6
Ural Federal University
57000
19
5640
Yekaterinburg
urfu.ru
Пример 3. С помощью оператора SQL LIKE вывести записи университетов, первая буква доменного имени сайта которых содержит буквы из диапазона [k-o]:
SELECT * FROM Universities WHERE Site LIKE '[k-o]%'
Результат:
ID
UniversityName
Students
Faculties
Professores
Location
Site
3
Novosibirsk State University
7200
13
1527
Novosibirsk
nsu.ru
4
Moscow State University
35100
39
14358
Moscow
msu. e-o]%’
Результат:
ID
UniversityName
Students
Faculties
Professores
Location
Site
2
Saint Petersburg State University
21300
24
13126
Saint-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)