Редактирование инструкций SQL для уточнения результатов запроса
Applies ToAccess для Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Примечание:  Статья неприменима к веб-приложениям Access — новому типу баз данных, которые создаются в Access и публикуются в Интернете.

В этой статье

Создание инструкции Select

Инструкция sql select содержит от двух до трех предложений. Предложение SELECT сообщает базе данных, где искать данные, и просит вернуть определенный результат.

Примечание:  Инструкции SELECT всегда заканчиваются точкой с запятой (;) в конце последнего предложения или в строке в конце инструкции SQL.

Следующая инструкция select просит Access получить сведения из столбцов Адрес электронной почты и Компания из таблицы Контакты, в частности, где в столбце Город он находит "Seattle".

Вкладка объекта SQL с инструкцией SELECT

Приведенный выше запрос содержит три предложения SELECT, FROM и WHERE.

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

2. Предложение FROM определяет исходную таблицу. В этом примере у него есть оператор (FROM), за которым следует идентификатор (Контакты).

3. Предложение WHERE является необязательным предложением. В примере есть оператор (WHERE), за которым следует выражение (City="Seattle").

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

Ниже приведен список распространенных предложений SQL:

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

Описание

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

SELECT

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

Да

FROM

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

Да

WHERE

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

Нет

ORDER BY

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

Нет

GROUP BY

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

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

HAVING

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

Нет

Каждое предложение SQL состоит из терминов. Ниже приведен список некоторых распространенных терминов SQL.

Термин SQL

Определение

Пример

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

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

[Адрес электронной почты] и компания

оператор

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

AS

константа

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

42

выражение

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

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

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

Настройка предложения SELECT

Настройка

Пример

Для просмотра только отдельных значений.

Используйте ключевое слово DISTINCT в предложении SELECT.

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

SELECT DISTINCT [txtCustomerPhone] 

Изменение способа отображения идентификатора в представлении таблицы для повышения удобочитаемости.

Используйте оператор AS (ключевое слово, представляющее действие или изменяющее действие) с псевдонимом поля в предложении SELECT. Псевдоним поля — это имя, которое назначается полю, чтобы упростить чтение результатов.

SELECT [txtCustPhone] AS [Customer Phone]

Настройка предложения FROM

Настройка

Пример

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

Чтобы выбрать данные из двух полей с именем ID, одно из которых поступает из таблицы tblCustomer, а другое из таблицы tblOrder:

SELECT [tblCustomer].[ID],        [tblOrder].[ID]

Используйте оператор AS для определения псевдонимов таблиц в предложении FROM:

FROM [tblCustomer] AS [C],      [tblOrder] AS [O] 

Затем эти псевдонимы таблиц можно использовать в предложении SELECT следующим образом:

SELECT [C].[ID],        [O].[ID]

Используйте соединения, чтобы объединить пары записей из двух источников данных в один результат или указать, следует ли включать записи из любой таблицы, если в связанной таблице нет соответствующей записи.

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

Вот как может выглядеть предложение FROM:

FROM [tblCustomer] INNER JOIN [tblOrder]ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID] 

Сведения об использовании соединений

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

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

FROM table1 [ LEFT | RIGHT ] JOIN table2ON table1.field1 = table2.field2

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

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

Настройка предложения WHERE

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

Примером настройки базового предложения WHERE является ограничение результатов запроса. Предположим, что вы хотите найти номер телефона клиента и можете запомнить только его фамилию Как Бублик. В этом примере фамилии хранятся в поле LastName, поэтому синтаксис SQL будет следующим:

WHERE [LastName]='Bagel'

Предложение WHERE также используется для объединения источников данных для столбцов с соответствующими данными, но с разными типами данных. Это удобно, так как невозможно создать соединение между полями с разными типами данных. Используйте одно поле в качестве критерия для другого поля с ключевым словом LIKE . Например, если вы хотите использовать данные из таблиц Assets и Employees, только если тип ресурса в поле тип ресурса таблицы Assets содержит число 3 в поле Количество таблицы Employees, вот как будет выглядеть предложение WHERE:

WHERE field1 LIKE field2

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

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

Настройка с помощью оператора UNION

Используйте оператор UNION, если требуется просмотреть объединенное представление результатов из нескольких аналогичных запросов на выборку. Например, если в базе данных есть таблицы Products и Services, и у них есть три поля: эксклюзивное предложение, продукт или услуга, цена, гарантия или гарантия. Хотя в таблице "Продукты" содержатся сведения о гарантии, а в таблице "Службы" содержатся сведения о гарантиях, основные сведения совпадают. Запрос объединения можно использовать для объединения трех полей из двух таблиц следующим образом:

SELECT name, price, warranty, exclusive_offerFROM ProductsUNION ALLSELECT name, price, guarantee, exclusive_offer FROM Services;

При выполнении запроса данные из каждого набора соответствующих полей объединяются в одно поле вывода. Чтобы включить все повторяющиеся строки в результаты, используйте оператор ALL.

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

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

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

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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