Оператор like в access: Условия запросов. Часть 2: оператор LIKE

Содержание

Условия запросов. Часть 2: оператор LIKE

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

В первой части серии мы рассмотрели пример использования условий, позволяющих создавать точные запросы. Это очень удобно, когда вы знаете, что именно нужно искать. Но что если вам нужно просмотреть неполные совпадения, допустим просмотреть всех пользователей, фамилии которых начинаются с Ма? Вам повезло! В Access есть мощные средства, которыми вы можете пользоваться при создании условий запросов для неполных совпадений: подстановочные знаки и оператор LIKE.

Подстановочные знаки

Если вам доводилось играть в покер, то, возможно, вы замечали, для чего используются подстановочные знаки: их могут заменять другие символы. Используется десять подстановочных знаков, но только пять из них задействованы в базе данных. Пять соответствуют стандарту, который известен под названием ANSI-89, а другие пять — стандарту ANSI-92. Каждая база данных не может поддерживать два стандарта одновременно. В настройках вы можете задать, какой стандарт ANSI нужно использовать.

Символы ANSI-89

Символ  

Описание

Пример

*

Соответствует любому количеству символов.
Вы можете использовать звездочку в любом месте строки символов.

что такое * обнаружит, что, белым и почему, но не некоторое время или Контрольное значение.

?

Соответствует любому одиночному знаку алфавита.

По запросу ст?л будут найдены слова «стол», «стал» и «стул».

[ ]

Используется с другими символами (заключенными в квадратные скобки).

Соответствует любому одиночному символу, заключенному в квадратные скобки.

B [ оу ] л будут найдены слова мяч и «стул», но не счета

!

Используется внутри скобок на ряду с другими символами.
Соответствует любому символу, заключенному в скобки.

b [! оу ] л будут найдены слова счета и «стыл», но не мяч или «стул»

Используется внутри скобок на ряду с другими символами.
Соответствует любому диапазону символов.
Символы следует указывать в алфавитном порядке (от А до Я, а не от Я до А).

По запросу с[а-ы]н будут найдены слова «сан», «сон» и «сын».

#

Соответствует любому цифровому символу.

По запросу 1#3 будут найдены числа 103, 113 и 123.

Символы ANSI-92

Символ  

Описание

Пример

%

Соответствует любому количеству символов.
Может использоваться в качестве первого или последнего символа в строке символов.

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

_

Соответствует любому одиночному символу алфавита.

По запросу ст_л будут найдены слова «стол», «стал» и «стул».

[ ]

Используются на ряду с другими символами.
Соответствуют любому одиночному символу, заключенному в квадратные скобки.

B [ оу ] л будут найдены слова мяч и «стул», но не счета

^

Используется внутри скобок на ряду с другими символами.
Соответствует любому символу, заключенному в скобки.

b [^ оу ] л будут найдены слова счета и «стыл», но не шар или звонка

Используется внутри скобок на ряду с другими символами.
Соответствует любому диапазону символов.
Символы следует указывать в алфавитном порядке (от А до Я, а не от Я до А).

По запросу с[а-ы]н будут найдены слова «сан», «сон» и «сын».

Оператор LIKE

В Access для любых условий с использованием подстановочных знаков требуется использовать оператор LIKE. Его можно ставить перед строкой, в которой содержатся подстановочные знаки, заключая ее в кавычки. Например, чтобы найти слова, содержащие букву С, нужно использовать такое выражение:

LIKE «*С*»

В более поздних версиях Access добавляет оператор LIKE и кавычки, если вы пропустили их. Если вы используете выражение *С*, Access изменит его на LIKE «*С*», когда вы запустите запрос или уберете курсор с условия.

Использование оператора LIKE и подстановочных знаков

Если вы хотите посмотреть демонстрацию из этих инструментов, попробуйте этом видеоролике в Like и подстановочных знаков в условиях запроса Access.

Далее: в третьей части серии вы узнаете о запросах на ввод данных с помощью параметра.

Таблица операторов — Access

Оператором называется знак или символ, указывающий на тип вычислений, которые выполняются в выражении. Существуют математические, логические операторы, а также операторы сравнения и ссылок. Access поддерживает различные операторы, включая арифметические операторы, такие как +, , умножение (*) и деление (/), а также операторы для сравнения значений, текстовые операторы для сцепления текста и логические операторы для определения значений «Истина» и «Ложь». Эта статья содержит сведения об использовании таких операторов.

Примечание: В Access 2010 и более поздних версий построитель выражений включает функцию IntelliSense, которая указывает требуемые аргументы.

В этой статье

Арифметические операторы

Операторы сравнения

Логические операторы

Операторы объединения 

Специальные операторы

Арифметические операторы

Арифметические операторы используется для вычисления значения на основе нескольких чисел или изменения знака числа из положительного в отрицательный и наоборот.

Оператор

Назначение

Пример

+

Сложение двух чисел.

[ПромежуточныеИтоги] + [НалогСПродаж]

Вычисление разницы между двумя числами или вывод отрицательного значения числа.

[Цена]-[Скидка]

*

Перемножение двух чисел.

[Количество]*[Цена]

/

Деление первого числа на второе.

[Итого]/[КоличествоЕдиниц]

\

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

[Зарегистрировано]\[Комнаты]

Mod

Возврат остатка от деления первого числа на второе.

[Зарегистрировано] Mod [Комнаты]

^

Возведение числа в указанную степень.

Число ^ Степень

К началу страницы

Операторы сравнения

Операторы сравнения позволяют сравнивать значения. Они возвращают результат «Истина», «Ложь» или Null.

Оператор

Назначение

Пример

<

Возвращает значение «Истина», если первое значение меньше второго.

значение1 < значение2

<=

Возвращает значение «Истина», если первое значение не больше второго.

значение1 <= значение2

>

Возвращает значение «Истина», если первое значение больше второго.

значение1 > значение2

>=

Возвращает значение «Истина», если первое значение не меньше второго.

значение1 >= значение2

=

Возвращает значение «Истина», если первое значение равно второму.

значение1 = значение2

<>

Возвращает значение «Истина», если первое значение не равно второму.

значение1 <> значение2

Примечание: Если первое или второе значение в любом из случаев равно Null, результатом также является Null. Так как Null представляет собой неизвестное значение, результат сравнения со значением Null также неизвестен.

К началу страницы

Логические операторы

Используйте логические операторы для объединения двух логических значений и возврата результата «Истина», «Ложь» или Null. Логические операторы также называются булевыми.

Оператор

Назначение

Пример

And

Возвращает значение «Истина», если выражения 1 и 2 имеют значение «Истина».

Выраж1 And Выраж2

Or

Возвращает значение «Истина», если хотя бы одно из выражений 1 и 2 имеет значение «Истина».

Выраж1 Or Выраж2

Eqv

Возвращает значение «Истина», если оба выражения 1 и 2 имеют значение «Истина» или оба выражения 1 и 2 равны «Ложь».

Выраж1 Eqv Выраж2

Not

Возвращает «Истина», если выражение не имеет значения «Истина».

Not Выраж

Xor

Возвращает значение «Истина», если одно и только одно из выражений 1 и 2 имеет значение «Истина».

Выраж1 Xor Выраж2

К началу страницы

Операторы объединения

Операторы объединения позволяют объединить два текстовых значения в одно.

Оператор

Назначение

Пример

&

Объединение двух строк в одну.

строка1 & строка2

+

Объединение двух строк в одну и распространение значений Null (если одно из значений равно Null, все выражение дает Null).

строка1 + строка2

К началу страницы

Специальные операторы

Специальные операторы возвращают результат «Истина» или «Ложь», как описано в таблице ниже.

Оператор

Назначение

Пример

Is Null или Is Not Null

Определение того, равно ли значение Null или Not Null.

Поле1 Is Not Null

Like «шаблон»

Поиск строковых значений с помощью подстановочных операторов

? и *.

Поле1 Like «инструк*»

Between значение1 And значение2

Определение того, находится ли число или дата в пределах диапазона.

Поле1 Between 1 And 10
— или —
Поле1 Between #01.07.07# And #31.12.07#

In(значение1,значение2…)

Определение того, входит ли значение в множество.

Поле1 In («красный»,»зеленый»,»синий»)
— или —
Поле1 In (1,5,7,9)

Access SQL. Основные понятия, лексика и синтаксис

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

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

Понимание принципов работы SQL помогает создавать более точные запросы и упрощает исправление запросов, которые возвращают неправильные результаты.

Это статья из цикла статей о языке SQL для Access. В ней описаны основы использования SQL для выборки данных и приведены примеры синтаксиса SQL.

В этой статье

Что такое SQL?

Основные предложения SQL: SELECT, FROM и WHERE

Сортировка результатов: предложение ORDER BY

Работа со сводными данными: предложения GROUP BY и HAVING

Объединение результатов запроса: оператор UNION

Что такое SQL?

SQL — это язык программирования, предназначенный для работы с наборами фактов и отношениями между ними. В программах управления реляционными базами данных, таких как Microsoft Office Access, язык SQL используется для работы с данными. В отличие от многих языков программирования, SQL удобочитаем и понятен даже новичкам. Как и многие языки программирования, SQL является международным стандартом, признанным такими комитетами по стандартизации, как ISO и ANSI.

На языке SQL описываются наборы данных, помогающие получать ответы на вопросы. При использовании SQL необходимо применять правильный синтаксис. Синтаксис — это набор правил, позволяющих правильно сочетать элементы языка. Синтаксис SQL основан на синтаксисе английского языка и имеет много общих элементов с синтаксисом языка Visual Basic для приложений (VBA).

Например, простая инструкция SQL, извлекающая список фамилий контактов с именем Mary, может выглядеть следующим образом:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Примечание: Язык SQL используется не только для выполнения операций над данными, но еще и для создания и изменения структуры объектов базы данных, например таблиц. Та часть SQL, которая используется для создания и изменения объектов базы данных, называется языком описания данных DDL. Язык DDL не рассматривается в этой статье. Дополнительные сведения см. в статье Создание и изменение таблиц или индексов с помощью запроса определения данных.

Инструкции SELECT

Инструкция SELECT служит для описания набора данных на языке SQL. Она содержит полное описание набора данных, которые необходимо получить из базы данных, включая следующее:

  • таблицы, в которых содержатся данные;

  • связи между данными из разных источников;

  • поля или вычисления, на основе которых отбираются данные;

  • условия отбора, которым должны соответствовать данные, включаемые в результат запроса;

  • необходимость и способ сортировки.

Предложения SQL

Инструкция SQL состоит из нескольких частей, называемых предложениями. Каждое предложение в инструкции SQL имеет свое назначение. Некоторые предложения являются обязательными. В приведенной ниже таблице указаны предложения SQL, используемые чаще всего.

Предложение SQL

Описание

Обязательное

SELECT

Определяет поля, которые содержат нужные данные.

Да

FROM

Определяет таблицы, которые содержат поля, указанные в предложении SELECT.

Да

WHERE

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

Нет

ORDER BY

Определяет порядок сортировки результатов.

Нет

GROUP BY

В инструкции SQL, которая содержит статистические функции, определяет поля, для которых в предложении SELECT не вычисляется сводное значение.

Только при наличии таких полей

HAVING

В инструкции SQL, которая содержит статистические функции, определяет условия, применяемые к полям, для которых в предложении SELECT вычисляется сводное значение.

Нет

Термины SQL

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

Термин SQL

Сопоставимая часть речи

Определение

Пример

идентификатор

существительное

Имя, используемое для идентификации объекта базы данных, например имя поля.

Клиенты.[НомерТелефона]

оператор

глагол или наречие

Ключевое слово, которое представляет действие или изменяет его.

AS

константа

существительное

Значение, которое не изменяется, например число или NULL.

42

выражение

прилагательное

Сочетание идентификаторов, операторов, констант и функций, предназначенное для вычисления одного значения.

>= Товары.[Цена]

К началу страницы

Основные предложения SQL: SELECT, FROM и WHERE

Общий формат инструкций SQL:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Примечания: 

  • Access не учитывает разрывы строк в инструкции SQL. Несмотря на это, каждое предложение рекомендуется начинать с новой строки, чтобы инструкцию SQL было удобно читать как тому, кто ее написал, так и всем остальным.

  • Каждая инструкция SELECT заканчивается точкой с запятой (;). Точка с запятой может стоять как в конце последнего предложения, так и на отдельной строке в конце инструкции SQL.

Пример в Access

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

1. Предложение SELECT

2. Предложение FROM

3. Предложение WHERE

Эту инструкцию SQL следует читать так: «Выбрать данные из полей «Адрес электронной почты» и «Компания» таблицы «Контакты», а именно те записи, в которых поле «Город» имеет значение «Ростов».

Разберем пример по предложениям, чтобы понять, как работает синтаксис SQL.

Предложение SELECT

SELECT [E-mail Address], Company

Это предложение SELECT. Оно содержит оператор (SELECT), за которым следуют два идентификатора («[Адрес электронной почты]» и «Компания»).

Если идентификатор содержит пробелы или специальные знаки (например, «Адрес электронной почты»), он должен быть заключен в прямоугольные скобки.

В предложении SELECT не нужно указывать таблицы, в которых содержатся поля, и нельзя задать условия отбора, которым должны соответствовать данные, включаемые в результаты.

В инструкции SELECT предложение SELECT всегда стоит перед предложением FROM.

Предложение FROM

FROM Contacts

Это предложение FROM. Оно содержит оператор (FROM), за которым следует идентификатор (Контакты).

В предложении FROM не указываются поля для выборки.

Предложение WHERE

WHERE City=»Seattle»

Это предложение WHERE. Оно содержит оператор (WHERE), за которым следует выражение (Город=»Ростов»).

Примечание: В отличие от предложений SELECT и FROM, предложение WHERE является необязательным элементом инструкции SELECT.

С помощью предложений SELECT, FROM и WHERE можно выполнять множество действий. Дополнительные сведения об использовании этих предложений см. в следующих статьях:

К началу страницы

Сортировка результатов: ORDER BY

Как и в Microsoft Excel, в Access можно сортировать результаты запроса в таблице. Используя предложение ORDER BY, вы также можете указать способ сортировки результатов при выполнении запроса. Если используется предложение ORDER BY, оно должно находиться в конце инструкции SQL.

Предложение ORDER BY содержит список полей, для которых нужно выполнить сортировку, в том же порядке, в котором будут применена сортировка.

Предположим, например, что результаты сначала нужно отсортировать по полю «Компания» в порядке убывания, а затем, если присутствуют записи с одинаковым значением поля «Компания», — отсортировать их по полю «Адрес электронной почты» в порядке возрастания. Предложение ORDER BY будет выглядеть следующим образом:

ORDER BY Company DESC, [E-mail Address]

Примечание: По умолчанию Access сортирует значения по возрастанию (от А до Я, от наименьшего к наибольшему). Чтобы вместо этого выполнить сортировку значений по убыванию, необходимо указать ключевое слово DESC.

Дополнительные сведения о предложении ORDER BY см. в статье Предложение ORDER BY.

К началу страницы

Работа со сводными данными: предложения GROUP BY и HAVING

Иногда возникает необходимость работы со сводными данными, такими как итоговые продажи за месяц или самые дорогие товары на складе. Для этого в предложении SELECT к полю применяется агрегатная функция. Например, если в результате выполнения запроса нужно получить количество адресов электронной почты каждой компании, предложение SELECT может выглядеть следующим образом:

SELECT COUNT([E-mail Address]), Company

Возможность использования той или иной агрегатной функции зависит от типа данных в поле и нужного выражения. Дополнительные сведения о доступных агрегатных функциях см. в статье Статистические функции SQL.

Задание полей, которые не используются в агрегатной функции: предложение GROUP BY

При использовании агрегатных функций обычно необходимо создать предложение GROUP BY. В предложении GROUP BY указываются все поля, к которым не применяется агрегатная функция. Если агрегатные функции применяются ко всем полям в запросе, предложение GROUP BY создавать не нужно.

Предложение GROUP BY должно следовать сразу же за предложением WHERE или FROM, если предложение WHERE отсутствует. В предложении GROUP BY поля указываются в том же порядке, что и в предложении SELECT.

Продолжим предыдущий пример. Пусть в предложении SELECT агрегатная функция применяется только к полю [Адрес электронной почты], тогда предложение GROUP BY будет выглядеть следующим образом:

GROUP BY Company

Дополнительные сведения о предложении GROUP BY см. в статье Предложение GROUP BY.

Ограничение агрегированных значений с помощью условий группировки: предложение HAVING

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

Предположим, например, что к первому полю в предложении SELECT применяется функция AVG (которая вычисляет среднее значение):

SELECT COUNT([E-mail Address]), Company

Если вы хотите ограничить результаты запроса на основе значения функции COUNT, к этому полю нельзя применить условие отбора в предложении WHERE. Вместо него условие следует поместить в предложение HAVING. Например, если нужно, чтобы запрос возвращал строки только в том случае, если у компании есть несколько адресов электронной почты, можно использовать следующее предложение HAVING:

HAVING COUNT([E-mail Address])>1

Примечание: Запрос может включать и предложение WHERE, и предложение HAVING, при этом условия отбора для полей, которые не используются в статистических функциях, указываются в предложении WHERE, а условия для полей, которые используются в статистических функциях, — в предложении HAVING.

Дополнительные сведения о предложении HAVING см. в статье Предложение HAVING.

К началу страницы

Объединение результатов запроса: оператор UNION

Оператор UNION используется для одновременного просмотра всех данных, возвращаемых несколькими сходными запросами на выборку, в виде объединенного набора.

Оператор UNION позволяет объединить две инструкции SELECT в одну. Объединяемые инструкции SELECT должны иметь одинаковое число и порядок выходных полей с такими же или совместимыми типами данных. При выполнении запроса данные из каждого набора соответствующих полей объединяются в одно выходное поле, поэтому выходные данные запроса имеют столько же полей, сколько и каждая инструкция SELECT по отдельности.

Примечание: В запросах на объединение числовой и текстовый типы данных являются совместимыми.

Используя оператор UNION, можно указать, должны ли в результаты запроса включаться повторяющиеся строки, если таковые имеются. Для этого следует использовать ключевое слово ALL.

Запрос на объединение двух инструкций SELECT имеет следующий базовый синтаксис:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Предположим, например, что имеется две таблицы, которые называются «Товары» и «Услуги». Обе таблицы содержат поля с названием товара или услуги, ценой и сведениями о гарантии, а также поле, в котором указывается эксклюзивность предлагаемого товара или услуги. Несмотря на то, что в таблицах «Продукты» и «Услуги» предусмотрены разные типы гарантий, основная информация одна и та же (предоставляется ли на отдельные продукты или услуги гарантия качества). Для объединения четырех полей из двух таблиц можно использовать следующий запрос на объединение:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

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

К началу страницы

Использование подстановочных знаков в запросах и параметрах в Access

Эквивалент любого количества символов в любом месте строки данных

  1. Откройте запрос в конструкторе. Для этого щелкните его правой кнопкой мыши в области навигации в разделе Запросы и выберите пункт Конструктор.

  2. В ячейке Условие отбора необходимого вам поля добавьте звездочку с одной или обеих сторон условия. Например:

    «*владелец*».

    «владелец*».

    «*владелец».

  3. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить  .

Эквивалент одного символа внутри шаблона

  1. Откройте запрос в конструкторе.

  2. В ячейке Условие отбора необходимого вам поля введите перед условием отбора оператор Like.

  3. Замените один или несколько символов в условии подстановочным знаком. Например, запрос Like R?308021 возвращает результаты RA308021, RB308021 и т. д.

  4. На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить.

Получение списка компаний от А до Н

  1. Откройте запрос в конструкторе.

  2. В ячейке Условие отбора необходимого вам поля введите оператор Like, а затем пару двойных кавычек. Например: Like «».

  3. В двойных кавычках введите пару квадратных скобок и диапазон символов, которые вы хотите найти, например:

    Like «[а-н]»

  4. За скобками можно использовать подстановочные знаки. Например:

    Like «[а-н]*»

Таблица подстановочных знаков

В этой таблице перечислены и описаны подстановочные знаки, которые можно использовать в запросе Access.

Символ

*

Соответствует любому количеству (от нуля и более) символов.Может использоваться в качестве первого или последнего символа в строке символов.

По запросу «чт*» будут найдены слова «чт», «что», «чтение» и «чтиво»

?

Соответствует любому одиночному символу алфавита.

По запросу «ст?л» будут найдены слова «стол», «стал» и «стул»

[ ]

Соответствует любому одиночному символу, указанному в квадратных скобках.

По запросу «ст[оу]л» будут найдены слова «стол», «стул», но не «стал»

!

Соответствует любому символу, не указанному в квадратных скобках.

По запросу «ст[!оу]л» будут найдены слова «стал» и «стыл», но не «стол» или «стул»

Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).

По запросу «с[а-ы]н» будут найдены слова «сан», «сон» и «сын»

#

Соответствует любому цифровому символу.

По запросу «1#3» будут найдены числа 103, 113 и 123.

Примеры использования подстановочных знаков

Ситуация

Пример

В данных одни пользователи обозначены словом «владелец», а другие — словами «владелец/оператор».

Like «владелец*» или
Like «*владелец*»

Необходимо использовать подстановочные знаки в запросе с параметрами.

Like «*» & [параметр] & «*»

Например:

Like «*» & [рыба] & «*»

Этот запрос возвращает все рецепты, содержащие слово «рыба», например «свежая рыба», «красная рыба» и т. д.

При вводе данных кто-то допустил ошибку, например вместо «Элина» написал «Элиза».

Like «Эли?а»

Необходимо найти клиентов, фамилии которых начинаются с букв в диапазоне от А до Н (например, для массовой рассылки).

Like «[а-н]*»

Необходимо найти инвентарные номера, у которых все цифры, кроме второй и третьей, одинаковые.

Like «R??083930»

Необходимо отправить приглашения на уличную вечеринку жителям городского квартала по улице Парковой, в котором номера домов начинаются с 1000.

Like «ул. Парковая, 1###»

Синтаксис для извлечения подстановочных знаков из данных

Знак

Требуемый синтаксис

Звездочка (*)

[*]

Вопросительный знак (?)

[?]

Знак номера (#)

[#]

Дефис (-)

[-]

Открывающая и закрывающая квадратные скобки вместе ([])

[[]]

Открывающая квадратная скобка ([)

[[]

Закрывающая квадратная скобка (])

Специальная обработка не требуется

Восклицательный знак (!)

Специальная обработка не требуется

Выбор набора подстановочных знаков

СУБД Access (ANSI-89) и SQL Server (ANSI-92)

Стандарт ANSI-89 описывает традиционный синтаксис Access SQL, который по умолчанию используется в базах данных Access. Подстановочные знаки соответствует спецификации Microsoft Visual Basic® для приложений (VBA), а не SQL.

Стандарт ANSI-92 используется в тех случаях, когда необходимо обеспечить совместимость синтаксиса с базой данных Microsoft SQL Server™.

Рекомендуется не смешивать два типа подстановочных знаков в одной базе данных.

Подстановочные знаки для СУБД Access (ANSI-89)

Эти подстановочные знаки следует использовать в запросах, созданных для базы данных Access.

Символ

*

Соответствует любому количеству символов. Может использоваться в качестве первого или последнего символа в строке символов.

По запросу «чт*» будут найдены слова «что», «чтение» и «чтиво»

?

Соответствует любому одиночному знаку алфавита.

По запросу «ст?л» будут найдены слова «стол», «стал» и «стул»

[ ]

Соответствует любому одиночному символу, указанному в квадратных скобках.

По запросу «ст[оу]л» будут найдены слова «стол», «стул», но не «стал».

!

Соответствует любому символу, не указанному в квадратных скобках.

По запросу «ст[!оу]л» будут найдены слова «стал» и «стыл», но не «стол» или «стул»

Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).

По запросу «с[а-ы]н» будут найдены слова «сан», «сон» и «сын»

#

Соответствует любому цифровому символу.

По запросу «1#3» будут найдены числа 103, 113 и 123.

Подстановочные знаки для SQL Server (ANSI-92)

Эти подстановочные знаки следует использовать в запросах, созданных для базы данных Microsoft SQL Server™.

Символ

%

Соответствует любому количеству символов. Может использоваться в качестве первого или последнего символа в строке символов.

По запросу «чт*» будут найдены слова «что», «чтение» и «чтиво»

_

Соответствует любому одиночному символу алфавита.

По запросу «ст?л» будут найдены слова «стол», «стал» и «стул»

[ ]

Соответствует любому одиночному символу, указанному в квадратных скобках.

По запросу «ст[оу]л» будут найдены слова «стол», «стул», но не «стал».

^

Соответствует любому символу, не указанному в квадратных скобках.

По запросу «ст[!оу]л» будут найдены слова «стал» и «стыл», но не «стол» или «стул»

Соответствует любому символу из диапазона. Диапазон следует указывать в алфавитном порядке (от А до Я, а не от Я до А).

По запросу «с[а-ы]н» будут найдены слова «сан», «сон» и «сын»

См. также

Функция like в access

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

Синтаксис

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

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

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

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

Замечания

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

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

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

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

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

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

Область применения: Access 2013 | Access 2016 Applies to: Access 2013 | Access 2016

Сравнивает строковое выражение с шаблоном в выражении SQL. Compares a string expression to a pattern in an SQL expression.

Синтаксис Syntax

Expression (выражение ) Например «шаблон» expression Like «pattern«

Синтаксис оператора Like состоит из следующих частей: The Like operator syntax has these parts:

Часть Part Описание Description
выражение expression Выражение SQL, используемое в предложении WHERE. SQL expression used in a WHERE clause.
pattern pattern Строка или символьная строковый литерал, относительно которого сравнивается выражение . String or character string literal against which expression is compared.

Примечания Remarks

Оператор Like можно использовать для поиска значений в поле, которое отвечает заданному шаблону. You can use the Like operator to find values in a field that match the pattern you specify. Для _шаблона_можно указать полное значение (например, Like «Smith» ) или использовать подстановочные знаки для поиска диапазона значений (например,) или можно использовать подстановочные знаки для поиска диапазона значений (например,. Like «Sm*») For pattern, you can specify the complete value (for example, Like «Smith» ), or you can use wildcard characters to find a range of values (for example, ), or you can use wildcard characters to find a range of values (for example, Like «Sm*») .

В выражении можно использовать оператор Like для сравнения значения поля с строковым выражением. In an expression, you can use the Like operator to compare a field value to a string expression. Например, если ввести Like «C*» запрос SQL, запрос возвращает все значения полей, начинающиеся с буквы «C». В запросе с параметрами можно запросить у пользователя шаблон для поиска. For example, if you enter Like «C*» in an SQL query, the query returns all field values beginning with the letter C. In a parameter query, you can prompt the user for a pattern to search for.

В следующем примере возвращаются данные, начинающиеся с буквы P, за которыми следует любая буква между A и F и тремя цифрами: The following example returns data that begins with the letter P followed by any letter between A and F and three digits:

В следующей таблице показано, как можно использовать **** для тестирования выражений для различных шаблонов. The following table shows how you can use Like to test expressions for different patterns.

Вид сравнения Kind of match Pattern Pattern ПОИСКПОЗ (Возвращает значение true) Match (returns True) Нет совпадения (Возвращает значение false) No match (returns False)
Несколько символов Multiple characters a * a a*a AA, код банка ABA, Аббба aa, aBa, aBBBa aBC aBC
поисков ab ABC, ААББ, Ксаб abc, AABB, Xab АЗБ, БПЗ aZb, bac
Специальный символ Special character a [*] a a[*]a a * a a*a AAA aaa
Несколько символов Multiple characters поисков ab* абкдефг, ABC abcdefg, abc CAB-файл, ААБ cab, aab
Одиночный символ Single character a? a a?a AAA, A3A, код банка ABA aaa, a3a, aBa Аббба aBBBa
Одна цифра Single digit a # a a#a a0a, a1a, a2a a0a, a1a, a2a AAA, a10a aaa, a10a
Диапазон символов Range of characters [a – z] [a-z] f, p, j f, p, j 2 & 2, &
За пределами диапазона Outside a range [! a – z] 9, &,% 9, &, % б, a b, a
Не цифра Not a digit [! 0-9] A, a, &,
0, 1, 9 0, 1, 9 Смешан Combined [! b – m] # a[!b-m]# An9, az0, a99 An9, az0, a99 ABC, aj0 abc, aj0

Пример Example

В этом примере возвращается список сотрудников, имена которых начинаются с букв A до D. Он вызывает процедуру EnumFields, которую можно найти в примере инструкции SELECT. This example returns a list of employees whose names begin with the letters A through D. It calls the EnumFields procedure, which you can find in the SELECT statement example.

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Оператор LIKE используется в предложении WHERE для поиска заданного шаблона в столбце.

В сочетании с оператором 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 LIKE

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

Пример:

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

Пример:

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

Пример:

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

Пример:

Следующий оператор SQL выбирает всех пользователей с именем name, начинающимся с «Т» и длиной не менее 3 символов:

Пример:

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

Пример:

Следующий оператор SQL выбирает всех пользователей с именем name, которое НЕ начинается с «Т»:

2.7. Оператор Like и символы подстановки в запросах

Очень часто при выполнении запроса известна только часть содержимого поля Для этой цели Access предлагает воспользоваться оператором «Like» и символами подстановки (п.2.3.1.1.).

Для выполнения отбора данных с использование оператора «Like» вы должны указать в ячейке «Условия отбора» того поля по содержимому, которого будет вестись отбор записей. Таким образом, Access будет выполнять поиск в заданном поле по «Маске».

Задание. Вы решили дать премию только Агентам.

Откройте в режиме Конструктора запрос «Расчет премии Запрос».

Щелкните на строке «Условия отбора» поля «Должность»

Введите в эту строку «Like А*»

Выполните запрос

Уберите из запроса оператор «Like А*».

Закройте запрос.

2.8. Запросы с Итоговыми значениями

Очень часто мы хотим получить информацию из базы данных не о конкретной записи (или их наборе по какому-то критерию), а итоговые значения по группам данных. Для этого можно использовать процедуру — Итоговый Запрос.

Задание. Вы захотели узнать, какую величину премии получили отделы фирмы и сколько сотрудников каждого подразделения получили премию?

Откройте в режиме Конструктора запросов «Расчет премии Запрос».

Удалите поля «Имя», «Должность», «Дата приема», «Премия».

Для получения итоговых значений по группе:

Щелкните на кнопке «Итоги» панели инструментов Конструктора запросов. В результате в бланке запросов добавится строка «Групповые операции».

После первого щелчка на кнопке «Групповые операции» Access по умолчанию использует установку Группировка в строке «Групповая операция». Если вы сейчас щелкните на кнопке кнопку «Запуск», то в итоге получите набор записей, содержащий по одной строке для уникального значения полей запроса, – но без итогов.

Для того, чтобы получить итоги, необходимо в строке «Групповая операция» заменить установку по умолчанию Группировка на определенные Групповые функции.

2.8.1. Групповые функции

Access предоставляет в наше распоряжение для выполнения девять функций. Вы можете набрать эту функцию в строке «Групповая операция», или выбрать ее из раскрывающегося списка функций.

Функция

Выполняемая операция

Sum

Вычисление суммы всех значений заданного поля для каждой группы. Функция используется только для числовых и денежных полей.

Avg

Вычисление среднего значение в каждой из групп заданного поля. Функция используется только для числовых и денежных полей.

Min

Находится наименьшее значение в каждой группе заданного поля. Для числовых полей возвращается наименьшее значение, а для текстовых – наименьшее из символьных значений не зависимо от регистра (нулевые значения исключаются).

Max

Находится наибольшее значение в каждой группе заданного поля. Для числовых полей возвращается наибольшее значение, а для текстовых – наибольшее из символьных значений не зависимо от регистра. (нулевые значения исключаются).

Count

Возвращается число записей, значение которых отличны от нуля, в каждой группе заданного поля. Для подсчета числа записей с учетом нулевых значений в строку «Поле№» необходимо ввести выражение «Count(*)».

StDev

Рассчитывает стандартное отклонение для всех значений заданного поля в каждой группе. Используется только для числовых полей или полей денежного типа.

Var

Рассчитывает величину дисперсии для всех значений заданного поля в каждой группе. Используется только для числовых полей или полей денежного типа.

First

Возвращает первое значение поля в каждой группе.

Last

Возвращает последнее значение поля в каждой группе.

Вновь возвращаемся к нашему примеру.

Щелкните правой кнопкой в колонке «Фамилия» и в открывшемся контекстном меню выберите команду «Свойства».

В поле «Подпись» окна «Свойства» введите новое название поля таблицы, например, «Кол. Сотрудники»

Щелкните в строке «Групповая операция» и в открывшемся списке функций выберите «Count» для подсчета количества человек в отделе, получивших премию.

В строке «Групповая операция» колонки «Подразделение» оставьте «Группировка», так как мы намерены получить итоговые значения по каждому подразделению.

В строке «Групповая операция» колонки «Зарплата» в списке функций выберите «Sum» для подсчета суммы начисленных премий по группе.

После выполнения всех операций окно Конструктора запросов и набор записей.

Обратите внимание, что в списке строки «Групповая операция» имеется установка «Выражение». Используя эту установку, в строку «Поле» можно ввести выражение, в котором используется несколько групповых функций. Например, если вы хотите вычислить размах значений заработной платы (размах значений поля), вы можете ввести следующее выражение:

Access — Like-запросы, подчинённые формы.

Для построения более сложных условий отбора используется построитель выражений.

Если использовать вместо знака равенства слово Like (англ. похожий), то появляется возможность использовать * вместо неизвестных параметров.

В построителе запросов также есть много встроенных функций, в т.ч. для работы со временем, и логические операторы для объединения нескольких условий (And – и, Or – или).

 

Подчиненные формы

Подчиненная форма выглядит как часть другой формы. Фактически же, если большая главная форма обеспечивает связь с одной таблицей, то подчиненная форма — с другой таблицей (таблицы должны быть связаны). Пользователь может вводить данные в одну форму и просматривать связанные с ней данные из другой таблицы, не зная, что они хранятся раздельно.

Для вставки подчинённых форм (а также заголовков, комментариев и т.д.) используется Панель элементов в режиме конструктора формы.

 

 

Задания:

1.В базе “Компьютерный магазин” в форму сотрудники добавить подчинённую форму Заказы

2.

a)Добавить к базе Ученики таблицу Школы с полями: Номер школы (тип данных числовой, ключевое), Адрес школы, ФИО директора, телефон директора:

b)Связать таблицы Ученики и Школы

c)Создать форму на основе таблицы Школы, добавить заголовок Академия

d)С помощью конструктора добавить подчиненную форму на основе таблицы Ученики

3.

a)Создать запрос Поиск по фамилии (использовать Like-запрос)

b)Создать форму на основе этого запроса

Access – Отчеты

Источник: microsoft.ru

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

Отчеты могут обобщать и группировать данные для предоставления обзора.

Данные при просмотре или в распечатанном отчете являются статичными. Однако при каждом просмотре или печати отчета выводятся самые последние данные из таблицы отчета или источника данных запроса.

Отчет формируется из элементов управления. В некоторых элементах управления, таких как текстовые блоки, отображаются данные. Другие элементы управления являются частями оформления, например, разделительные линии или эмблема компании.

Эмблема (элемент оформления)

Разделительная линия (элемент оформления) и название отчета (текстовый блок)

Данные (текст и графика) из базы данных, сгруппированные по заголовкам

Разделительная линия

Чтобы создать отчет, используются данные из одного или нескольких источников в виде таблиц или запросов. Для использования нескольких таблиц, требуется сначала создать запрос для извлечения данных из этих таблиц.

Как и запросы отчеты удобнее сначала создавать с помощью мастера и затем дорабатывать в конструкторе.

 

Верхний колонтитул отчета с названием отчета

Верхний колонтитул страницы с заголовками

Раздел данных с данными

Нижний колонтитул с разделительной линией и номерами страниц

 

 

Задания:

1.В базе данных Ученики создать отчет, отображающий учеников, сгруппированных по школам, и отсортированным по полям Класс и Фамилия

2.Добавьте заголовок и эмблему

3.Для базы данных Ученики_школы_90 создать отчет, который будет отображать учеников, сгруппированных по классам, фамилии упорядочены по алфавиту, отображаются поля: Фамилия, Имя, Дата рождения, Телефон

4.Добавить заголовок и эмблему




Like Operator — Доступ

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

Синтаксис

выражение Как образец

Синтаксис оператора Like состоит из следующих частей:

Часть

Описание

выражение

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

узор

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

Замечания

Оператор Like можно использовать для поиска значений в поле, соответствующих указанному вами шаблону.Для шаблона вы можете указать полное значение (например, Like «Smith») или использовать символы подстановки для поиска диапазона значений (например, Like «Sm *»).

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

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

Как «P [A-F] ###»

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


Вид матча


Выкройка

Матч
(возвращает True)

Нет совпадений
(возвращает ложь)

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

а * а

AA, ABA, ABBBA

aBC

* ab *

abc, AABB, Xab

AZB, BAC

Специальный символ

a [*] a

а * а

AAA

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

ab *

abcdefg, abc

кабина, ааб

Одиночный символ

а? А

AAA, A3A, ABA

ABBBa

Однозначное число

a # a

a0a, a1a, a2a

ааа, а10а

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

[а-я]

ф, п, ж

2 и

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

[! A-z]

9, &,%

б, а

Не цифра

[! 0-9]

А, А, &, ~

0, 1, 9

Комбинированный

a [! B-m] #

Ан9, аз0, а99

abc, aj0

.

Like Operator — Доступ

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

Синтаксис

выражение Как образец

Синтаксис оператора Like состоит из следующих частей:

Часть

Описание

выражение

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

узор

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

Замечания

Оператор Like можно использовать для поиска значений в поле, соответствующих указанному вами шаблону.Для шаблона вы можете указать полное значение (например, Like «Smith») или использовать символы подстановки для поиска диапазона значений (например, Like «Sm *»).

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

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

Как «P [A-F] ###»

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


Вид матча


Выкройка

Матч
(возвращает True)

Нет совпадений
(возвращает ложь)

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

а * а

AA, ABA, ABBBA

aBC

* ab *

abc, AABB, Xab

AZB, BAC

Специальный символ

a [*] a

а * а

AAA

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

ab *

abcdefg, abc

кабина, ааб

Одиночный символ

а? А

AAA, A3A, ABA

ABBBa

Однозначное число

a # a

a0a, a1a, a2a

ааа, а10а

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

[а-я]

ф, п, ж

2 и

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

[! A-z]

9, &,%

б, а

Не цифра

[! 0-9]

А, А, &, ~

0, 1, 9

Комбинированный

a [! B-m] #

Ан9, аз0, а99

abc, aj0

.

MS Access 2003: условие LIKE (с использованием подстановочных знаков)


В этом учебном курсе MSAccess объясняется, как создать запрос с использованием условия LIKE с подстановочными знаками в Access 2003 (со снимками экрана и пошаговыми инструкциями).

Посмотреть решение в других версиях Access:

Условие LIKE позволяет использовать подстановочные знаки в предложении where оператора SQL в Access 2003 / XP / 2000/97. Это позволяет выполнять сопоставление с образцом. Условие LIKE можно использовать в любом допустимом операторе SQL — выборе, вставке, обновлении или удалении.

Вы можете выбрать один из следующих паттернов:

Подстановочный знак Пояснение
* Позволяет сопоставить любую строку любой длины (включая нулевую длину)
? Позволяет сопоставить один символ
# Позволяет сопоставить одну цифровую цифру

Пример

 Как 'b *'
  Результат:  всех значений, которые  начинаются с  с b

Как '* б *'
  Результат:  всех значений, которые содержат   b

Как '* b'
  Результат:  всех значений, которые  заканчиваются  на b

Как "б?"
  Результат:  всех значений, которые начинаются с b и имеют длину 2 символа

Как 'b #'
  Результат:  все значения, начинающиеся с b и имеющие длину 2 символа, где второй символ - это число 

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

В этом примере мы ищем все названия компаний, начинающиеся с буквы «b».

Объединение условия LIKE с оператором NOT

Вы также можете комбинировать условие LIKE с оператором NOT.

Пример

 Not Like "b *"
  Результат:  все значения, которые  не начинаются с  с b

Не похоже на '* b *'
  Результат:  всех значений, которые не содержат   b

Не похоже на '* b'
  Результат:  все значения, которые  не заканчиваются  на b

Не нравится 'b?'
  Результат:  всех значений длиной не два символа, начиная с b

Не как 'b #'
  Результат:  всех значений длиной не два символа, которые начинаются с b и где вторым символом является число 

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

В этом примере мы ищем все названия компаний, которые не начинаются с буквы «b».

Часто задаваемые вопросы


Вопрос. В Microsoft Access я пытаюсь создать запрос, который возвращает номера телефонов, но исключает все номера телефонов, начинающиеся с 713612, 713312 или 281999. Как это сделать?

Ответ: Вы можете сделать это, используя условие NOT LIKE.

Например, у нас есть таблица с названием Sample , которая содержит номера телефонов в поле с именем PhNo . Мы можем написать запрос с условием NOT LIKE следующим образом:

SQL для запроса выше:

 SELECT Sample.PhNo ИЗ образца
WHERE (Sample.PhNo) Не похоже на "713612 *"
И (Sample.PhNo) не похож на "713312 *"
И (Sample.PhNo) не похоже на '281999 *'; 

Разделив условия NOT LIKE с помощью оператора AND, мы можем исключить все три типа телефонных номеров из наших результатов.

Дополнительная информация

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

.

sql — смущает оператор «Like» в Access 2007

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

.

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

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