Sql что значит like
Использование критерия Like для поиска данных
Условия или оператор Like используются в запросе для поиска данных, которые соответствуют определенному шаблону. Например, в нашей базе данных есть таблица «Клиенты», как по примеру ниже, и нам нужно найти только клиентов, живущих в городах, названия которых начинаются с «B». Вот как мы создадим запрос и будем использовать условия Like:
«Клиенты»:
На вкладке Создание нажмите кнопку Конструктор запросов.
Нажмите кнопку «Добавить», и таблица «Клиенты» будет добавлена в конструктор запросов.
Дважды щелкните поля «Фамилия» и «Город», чтобы добавить их в сетку конструктора запросов.
В поле «Город» добавьте условия «Нравится B*» и нажмите кнопку «Выполнить».
В результатах запроса будут отбираться только клиенты из названий городов, названия которых начинаются с буквы «B».
Дополнительные информацию об использовании критериев см. в этой теме.
Использование оператора Like в SQL в синтаксис
Если вы предпочитаете синтаксис SQL (язык SQL), вот как это сделать:
Откройте таблицу «Клиенты» и на вкладке «Создание» нажмите кнопку «Конструктор запросов».
На вкладке «Главная» нажмите кнопку «> SQL», а затем введите следующий синтаксис:
SELECT [Last Name], City FROM Customers WHERE City Like “B*”;
Щелкните вкладку запроса правой кнопкой мыши и выберите > «Закрыть».
Дополнительные сведения см. в SQL Access: основные понятия, лексика и синтаксис, а также о том, как изменять SQL для более четкого получения результатов запроса.
Примеры шаблонов условий Like и результатов
Условия или оператор Like удобны при сравнении значения поля с строкным выражением. Следующий пример возвращает данные, которые начинаются с буквы P, за которой идут любая буква от A до F и три цифры:
Вот несколько способов использования like для различных шаблонов:
Если ваша база данных имеет
соответствие, вы увидите
Если в базе данных нет
совпадений, вы увидите
Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Базы данных
SQL условие LIKE
В этом учебном материале вы узнаете, как использовать SQL условие LIKE (для сопоставления с шаблоном) с синтаксисом и примерами.
Описание
SQL условие LIKE позволяет использовать подстановочные символы для сопоставления с шаблоном в запросе. Условие LIKE используется в предложении WHERE оператора SELECT, INSERT, UPDATE или DELETE.
Синтаксис
Синтаксис для условия LIKE в SQL.
Параметры или аргумент
customer_id | first_name | last_name | favorite_website |
---|---|---|---|
4000 | Justin | Bieber | google.com |
5000 | Selena | Gomez | bing.com |
6000 | Mila | Kunis | yahoo.com |
7000 | Tom | Cruise | oracle.com |
8000 | Johnny | Depp | NULL |
9000 | Russell | Crowe | google.com |
Введите следующий SQL оператор.
Будет выбрано 2 записи. Вот результаты, которые вы должны получить.
customer_id | first_name | last_name | favorite_website |
---|---|---|---|
7000 | Tom | Cruise | oracle.com |
9000 | Russell | Crowe | google.com |
Использование нескольких подстановочных символов % в условии LIKE
Вы также можете использовать подстановочный символ % несколько раз с условием LIKE.
Используя ту же таблицу customers со следующими данными:
customer_id | first_name | last_name | favorite_website |
---|---|---|---|
4000 | Justin | Bieber | google.com |
5000 | Selena | Gomez | bing.com |
6000 | Mila | Kunis | yahoo.com |
7000 | Tom | Cruise | oracle.com |
8000 | Johnny | Depp | NULL |
9000 | Russell | Crowe | google.com |
Будет выбрано 3 записей. Вот результаты, которые вы должны получить.
last_name |
---|
Bieber |
Gomez |
Depp |
В этом примере фамилии Bieber, Gomez и Depp содержат букву ‘е’.
category_id | category_name |
---|---|
25 | Deli |
50 | Produce |
75 | Bakery |
100 | General Merchandise |
125 | Technology |
Будет выбрано 2 записи. Вот результаты, которые вы должны получить.
category_id | category_name |
---|---|
25 | Deli |
75 | Bakery |
Использование нескольких подстановочных символов _ в условии LIKE
Если вы хотите сопоставить трехзначное значение, заканчивающееся на «5», вам нужно будет использовать подстановочный символ _ два раза. Вы можете изменить свой запрос следующим образом.
Теперь вы вернете значение category_id равное 125.
category_id | category_name |
---|---|
125 | Technology |
Далее давайте рассмотрим пример использования оператора NOT с условием LIKE.
В этом примере у нас есть таблица suppliers со следующими данными:
supplier_id | supplier_name | city | state |
---|---|---|---|
100 | Yandex | Moscow | Russian |
200 | Lansing | Michigan | |
300 | Oracle | Redwood City | California |
400 | Bing | Redmond | Washington |
500 | Yahoo | Sunnyvale | Washington |
600 | DuckDuckGo | Paoli | Pennsylvania |
700 | Qwant | Paris | France |
800 | Menlo Park | California | |
900 | Electronic Arts | San Francisco | California |
Будут выбраны 4 записи. Вот результаты, которые вы должны получить.
supplier_id | supplier_name | city | state |
---|---|---|---|
100 | Yandex | Moscow | Russian |
300 | Oracle | Redwood City | California |
400 | Bing | Redmond | Washington |
700 | Qwant | Paris | France |
В этом примере в таблице suppliers есть четыре записи, в которых supplier_name не содержит литеру ‘o’.
test_id | test_value |
---|---|
1 | 10% |
2 | 25% |
3 | 100 |
4 | 99 |
LIKE (Transact-SQL)
Синтаксические обозначения в Transact-SQL
Синтаксис
ESCAPE и STRING_ESCAPE сейчас не поддерживаются в Azure Synapse Analytics и Система платформы аналитики (PDW).
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
match_expression
Любое допустимое выражение expression символьного типа данных.
pattern
Конкретная строка символов для поиска в match_expression может содержать следующие допустимые символы-шаблоны. Длина значения pattern не может превышать 8000 байт.
Символ-шаблон | Описание | Пример |
---|---|---|
% | Любая строка, содержащая ноль или более символов. | Инструкция WHERE Название LIKE ‘%компьютер%’ выполняет поиск и выдает все названия книг, содержащие слово «компьютер». |
_ (подчеркивание) | Любой одиночный символ. | Инструкция WHERE фамилия_автора LIKE ‘_етров’ выполняет поиск и выдает все имена, состоящие из шести букв и заканчивающиеся сочетанием «етров» (Петров, Ветров и т.п.). |
[ ] | Любой одиночный символ, содержащийся в диапазоне ([a-f]) или наборе ([abcdef]). | Инструкция WHERE Фамилия_автора LIKE ‘[Л-С]омов’ выполняет поиск и выдает все фамилии авторов, заканчивающиеся на «омов» и начинающиеся на любую букву в промежутке от «Л» до «С», например Ломов, Ромов, Сомов и т.п. При выполнении операции поиска в диапазоне символы, включенные в диапазон, могут изменяться в зависимости от правил сортировки параметров сортировки. |
[^] | Любой одиночный символ, не содержащийся в диапазоне ([^a-f]) или наборе ([^abcdef]). | Инструкция WHERE Фамилия_автора LIKE ‘ив[^а]%’ выполняет поиск и выдает все фамилии, начинающиеся на «ив», в которых третья буква отличается от «а». |
escape_character
Символ, помещаемый перед символом-шаблоном для того, чтобы символ-шаблон рассматривался как обычный символ, а не как шаблон. Аргумент escape_character является символьным выражением, не имеющим значения по умолчанию и возвращающим результат в виде одного символа.
Типы результата
Boolean
Значение результата
Оператор LIKE возвращает значение TRUE, если аргумент match_expression совпадает с указанным аргументом pattern.
Комментарии
При использовании оператора LIKE для сравнения строк во внимание принимаются все символы строки-шаблона. К значимым символам также относятся начальные и конечные пробелы. Если операция сравнения в запросе должна вернуть все строки, содержащие строки LIKE ‘абв ‘ (с символом пробела на конце), то строка, содержащая «абв» (без пробела), не будет возвращена. Однако завершающие пробелы в выражении, с которым сравнивается шаблон, не учитываются. Если операция сравнения в запросе должна вернуть все строки, содержащие строки LIKE ‘абв’ (без знака пробела на конце), то будут возвращены все строки, содержащие «абв», как с завершающими пробелами, так и без них.
При сравнении строк с помощью оператора LIKE с использованием шаблона, содержащего тип данных char и varchar, могут возникнуть проблемы из-за методов хранения каждого типа данных. В ходе выполнения следующего примера локальная переменная char передается хранимой процедуре, а затем с помощью сравнения с шаблоном выполняется поиск всех сотрудников, чьи фамилии начинаются с указанной последовательности букв.
Процедура из следующего примера выполняется успешно, так как завершающие пробелы к переменной типа varchar не добавляются.
Совпадение с шаблоном с использованием оператора LIKE
Оператор LIKE поддерживает шаблоны в ASCII и Юникоде. Если все аргументы (match_expression, pattern и escape_character, если он указан) имеют символьный тип ASCII, то применяется шаблон ASCII. В случае, когда какой-либо из аргументов имеет тип данных Юникод, выполняется преобразование всех аргументов в Юникод и применяется шаблон Юникод. Если вы используете оператор LIKE с типом данных Юникода (nchar или nvarchar), завершающие пробелы учитываются в отличие от других типов данных (не Юникода). Работа оператора LIKE с данными в Юникоде совместима со стандартом ISO. Принцип работы оператора LIKE с данными ASCII совместим с более ранними версиями SQL Server.
Приведенные ниже примеры поясняют различия между результатами сравнения данных с шаблонами оператора LIKE, представленными в Юникоде и ASCII.
Операции сравнения с помощью оператора LIKE зависят от параметров сортировки. Дополнительные сведения см. в разделе COLLATE (Transact-SQL).
Использование символа-шаблона «%»
Если в операторе LIKE указать символ ‘5%’, то компонент Компонент Database Engine будет искать число «5», за которым следует любая строка с числом символов от нуля и больше.
Использование символов-шаблонов в качестве литералов
Символы-шаблоны могут быть использованы в качестве литералов. Чтобы использовать символ-шаблон в качестве литерала, его необходимо заключать в скобки. В следующей таблице представлены несколько примеров применения ключевого слова LIKE вместе с символами-шаблонами [ ].
Символ | Значение |
---|---|
LIKE ‘5[%]’ | 5 % |
LIKE ‘[_]n’ | _n |
LIKE ‘[a-cdf]’ | a, b, c, d или f |
LIKE ‘[-acdf]’ | -, a, b, c, d или f |
LIKE ‘[ [ ]’ | [ |
LIKE ‘]’ | ] |
LIKE ‘abc[_]d%’ | abc_d и abc_de |
LIKE ‘abc[def]’ | abcd, abce и abcf |
Совпадение с шаблоном с помощью предложения ESCAPE
Если в шаблоне LIKE после escape-символа нет никакого символа, то шаблон является недопустимым и оператор LIKE возвращает значение FALSE. Если символ после escape-символа не является символом-шаблоном, то escape-символ игнорируется, а следующий символ рассматривается как обычный символ в шаблоне. К этим символам-шаблонам относятся: подчеркивание (_), процент (%) и левая квадратная скобка ([), в том случае, если они заключены в квадратные скобки. Escape-символы могут использоваться в квадратных скобках ([ ]), включая: знак вставки (^), дефис (-) и правую квадратную скобку (]).
Символ 0x0000 (char(0)) не определен в параметрах сортировки Windows, и его нельзя включать в LIKE.
Примеры
A. Применение оператора LIKE с символом-шаблоном %
Б. Применение оператора NOT LIKE с символом-шаблоном %
В. Применение предложения ESCAPE
Г. Использование символов-шаблонов [ ]
Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
Д. Применение оператора LIKE с символом-шаблоном %
Е. Применение оператора NOT LIKE с символом-шаблоном %
Ж. Применение оператора LIKE с символом-шаблоном _
SQL Оператор LIKE
SQL LIKE
Оператор LIKE используется в предложении WHERE для поиска указанного шаблона в столбце.
Есть два подстановочных знака, часто используемых в сочетании с оператором LIKE:
Примечание: MS Access использует звездочку (*) вместо знака процента (%) и вопросительный знак (?) вместо подчеркивания (_).
Знак процента и подчеркивание также могут использоваться в комбинациях!
Синтаксис LIKE
Совет: Вы также можете комбинировать любое количество условий с помощью операторов AND или OR.
Вот несколько примеров, показывающих различные операторы 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» и заканчиваются «о» |
Демо база данных
Ниже приведен выбор из таблицы «Customers» в образце базы данных Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Примеры SQL LIKE
Следующая инструкция SQL выбирает всех клиентов с именем клиента, начинающимся с «a»:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, оканчивающимся на «a»:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют «or» в любой позиции:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют «r» во второй позиции:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое начинается с буквы «a» и имеет длину не менее 3 символов:
Пример
Следующая инструкция SQL выбирает всех клиентов с именем контакта, которое начинается с «a» и заканчивается на «o»
Пример
Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое не начинается с «a»:
Оператор SQL LIKE
Как оператор
Оператор SQL LIKE применяется только к полю типов CHAR или VARCHAR, чтобы соответствовать шаблону.
Чтобы соответствовать шаблону из слова, специальные операторы и символы подстановки могли использоваться с оператором LIKE.
Синтаксис:
Параметры:
название | Описание |
---|---|
column_list | Список столбцов таблицы. |
table_name | Наименование таблицы. |
column_name | Имя столбца, который будет участвовать в акции с оператором LIKE. |
ГДЕ | Проверяет, соответствует ли выражение шаблону. И выражение, и шаблон могут быть любыми допустимыми выражениями и оцениваются как строки. Используйте NOT LIKE, чтобы проверить, не соответствует ли строка шаблону. Шаблоны могут использовать следующие подстановочные знаки SQL: |
Подстановочные знаки SQL :
Подстановочные знаки SQL можно использовать для поиска данных в таблице.
Подстановочные знаки SQL используются с оператором SQL LIKE.
Логический оператор NOT в операторе select можно использовать в качестве подстановочного оператора NOT LIKE.
В SQL подстановочные знаки:
Wildcards | Описание |
---|---|
% | Знак процента (%) представляет собой последовательность из 0 (ноль) или более символов. |
Нижнее подчеркивание ( _ ) | Символ подчеркивания (_) представляет один символ. |
[Charlist] | Он представляет любой отдельный символ в списке |
[^ charlist] или [! charlist] | Он представляет любой отдельный символ, кроме charlist |
Иллюстрированная презентация: оператор SQL LIKE
Примеры: оператор SQL LIKE
Содержание:
Процент подстановочных знаков SQL (%)
Образец таблицы: клиент
1. cust_name должно начинаться с буквы S,
можно использовать следующий оператор SQL:
Процент подстановочных знаков SQL (%) с логическим значением NOT
Пример таблицы: агенты
1. ‘agent_name’ не инициируется буквой ‘M’,
можно использовать следующий оператор SQL:
Равно (=) против LIKE
Оператор equals to (=) является оператором сравнения и используется для проверки равенства в двух числах или выражениях. Например :
Оператор LIKE проверяет, соответствует ли конкретная символьная строка указанному шаблону. Например:
LIKE обычно используется только со строками, а equals (=) используется для точного сопоставления, и это кажется быстрее.
Пример: символ подстановки SQL подчеркивается (_)
Символ подчеркивания (_) представляет один символ, соответствующий шаблону из слова или строки. Можно использовать более одного (_) символа подчеркивания для соответствия шаблону из нескольких символов.
Образец таблицы: клиент
1. имя cust_name должно начинаться с буквы «R»,
2. третья буква «cust_name» должна быть «m»,
3. и вторая буква ‘cust_name’ может быть любой,
можно использовать следующий оператор SQL:
Подстановочные знаки SQL подчеркивают (_) несколько символов
Образец таблицы: клиент
1. первые три буквы ‘cust_name’ могут быть любыми буквами
2. четвертая буква «cust_name» должна быть «l»
3. а остальное может быть любым
можно использовать следующий оператор SQL:
Подстановочные знаки SQL подчеркивания (_) для определенной длины
Образец таблицы: клиент
1. первые три буквы ‘cust_name’ могут быть любыми буквами
2. четвертая буква «cust_name» должна быть «l»
3. и строка должна быть длиной 4 буквы
можно использовать следующий оператор SQL:
Пример: подстановочные знаки SQL [charlist]
[Charlist] WILDCARDS используются для представления любого отдельного символа в списке символов.
[^ Charlist] и [! Charlist] WILDCARDS используются для обозначения любого отдельного символа, отсутствующего в списке символов.
Пример таблицы: агенты
1. ‘agent_name’ должно начинаться с буквы ‘a’ или ‘b’ или ‘i’
можно использовать следующий оператор SQL:
Пример: подстановочные знаки SQL [^ charlist]
Пример таблицы: агенты
1. имя агента не должно начинаться с буквы «а», «b» или «i»,
можно использовать следующий оператор SQL:
Пример: подстановочные знаки SQL [! Charlist]
Пример таблицы: агенты
1. имя агента не должно начинаться с буквы «а», «b» или «i»,
можно использовать следующий оператор SQL:
Упражнения по SQL
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: СУЩЕСТВУЕТ
Далее: Подчеркнуть (_)