что такое like в sql

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

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico 4

Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK 5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

Примеры SQL LIKE

Следующая инструкция SQL выбирает всех клиентов с именем клиента, начинающимся с «a»:

Пример

Следующая инструкция SQL выбирает всех клиентов с именем клиента, оканчивающимся на «a»:

Пример

Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют «or» в любой позиции:

Пример

Следующая инструкция SQL выбирает всех клиентов с именем клиента, которые имеют «r» во второй позиции:

Пример

Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое начинается с буквы «a» и имеет длину не менее 3 символов:

Пример

Следующая инструкция SQL выбирает всех клиентов с именем контакта, которое начинается с «a» и заканчивается на «o»

Пример

Следующая инструкция SQL выбирает всех клиентов с именем клиента, которое не начинается с «a»:

Источник

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 Google Lansing Michigan
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania
700 Qwant Paris France
800 Facebook 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

Источник

SQL Like: практическое руководство

Оператор SQL LIKE использует подстановочные знаки для поиска данных, похожих на определённый образец. Вы можете использовать подчёркивание для замены одного символа или знак процента для замены нуля, одного или нескольких символов.

Вы когда-нибудь хотели получить информацию из столбцов, которые содержат значение, похожее на другое? Например, предположим, что у вас есть таблица с именем «сотрудники». Может быть, вы хотите получить список сотрудников, название которых содержит «Продажи».

Вот где в игру вступает оператор SQL LIKE. В этой статье мы расскажем, как использовать оператор LIKE на сервере SQL для выполнения более конкретных запросов.

SQL LIKE

Оператор SQL LIKE находит записи в базе данных, значения столбцов которых соответствуют определённому шаблону. Шаблоны выражаются с помощью знаков процента, подчёркивания и текста, который вы ищете.

Например, мы можем использовать LIKE, чтобы получить всех сотрудников, чьи имена заканчиваются на S или чьё название включает Associate.

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

Вот структура запроса с использованием оператора LIKE:

SELECT column_name FROM table_name
WHERE column_name LIKE pattern;

В этом синтаксисе мы используем оператор LIKE в инструкции SQL SELECT. Вы можете использовать этот оператор в операторах INSERT, UPDATE и DELETE.

Давайте воспользуемся примером, чтобы проиллюстрировать, как работает SQL LIKE.

Пример SQL LIKE

Допустим, у нас есть таблица с информацией о сотрудниках, которые работают в компании. Мы хотим, чтобы получить имена и ветви каждого сотрудника, который работает в отрасли, чьё имя начинается с буквы S.

Для этого мы можем использовать следующий запрос:

SELECT name, branch FROM employees
WHERE branch LIKE ‘S%’;

База данных SQL-сервера возвращает:

имя ответвляться
Майк Стэмфорд
Джефф Сан-Франциско
Ханна Сан-Франциско

Знак процента после буквы S говорит наш код, который мы хотим получить все отрасли, чьё имя начинается с буквы S. Наш запрос возвращает каждое совпадение символьной строки.

Если бы мы хотели получить имена и должности каждого сотрудника, который является партнёром, включая старших сотрудников, мы могли бы использовать этот запрос:

SELECT name, title FROM employees
WHERE title LIKE ‘%Associate%’;

Наш запрос находит всех сотрудников, имена которых соответствуют шаблону «% Associate%». Запрос возвращает следующее:

имя заглавие
Люк Сотрудник по продажам
Майк Сотрудник по продажам
Алексис Сотрудник по продажам
Ханна Сотрудник по продажам
Джефф Старший специалист по продажам

Пример SQL NOT LIKE

Мы можем использовать оператор NOT LIKE, чтобы выбрать все записи, которые не соответствуют определённому условию. Оператор NOT LIKE представляет собой комбинацию операторов SQL NOT и LIKE. Оператор NOT находит записи, не соответствующие условию.

Например, мы могли бы использовать NOT LIKE, чтобы получить имена каждого сотрудника, имя которого не превышает четырёх символов. Вот SQL-запрос, который мы могли бы использовать для этой цели:

SELECT name FROM employees
WHERE name NOT LIKE ‘____’;

Наш запрос пропустит каждого сотрудника, имя которого не состоит из четырёх символов, и вернёт остальных.

Каждый подстановочный знак подчёркивания представляет один символ. Если имя состоит из более или менее четырёх символов, оно не будет отображаться в нашем наборе результатов.

Наша база данных возвращает все записи, соответствующие нашему шаблону поиска:

имя
Алексис
Ханна
Джона
Джефф

Вывод

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

В этой статье мы обсудили, как вы можете использовать оператор LIKE SQL, чтобы сделать ваши запросы более конкретными. Мы также обсудили, как вы можете использовать оператор NOT 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 для различных шаблонов:

Если ваша база данных имеет
соответствие, вы увидите

Если в базе данных нет
совпадений, вы увидите

Источник

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 с символом-шаблоном _

Источник

Читайте также:  что можно делать в дороге в машине когда скучно
Строительный портал