Редактирование инструкций SQL для уточнения результатов запроса

Редактирование инструкций SQL для уточнения результатов запроса

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

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

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

В этой статье

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

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

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

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

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

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

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

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

Указанная ниже инструкция SELECT подает программе Access запрос на получение информации из столбцов "Адрес электронной почты" и "Компания" таблицы "Контакты", где в столбце "Город" указано "Ростов".

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

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

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

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

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

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

Вот список самых распространенных предложений SQL.

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

Описание

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

SELECT

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

Да

FROM

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

Да

WHERE

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

Нет

ORDER BY

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

Нет

GROUP BY

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

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

HAVING

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

Нет

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

Термин SQL

Определение

Пример

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

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

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

оператор

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

AS

константа

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

42

выражение

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

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

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

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

Настройка

Пример

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

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

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

SELECT DISTINCT [txtCustomerPhone] 

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

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

SELECT [txtCustPhone] AS [Customer Phone]

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

Настройка

Пример

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

Выбор данных из двух полей с именем "Код", одно из которых содержится в таблице "таблЗаказчик", а другое — в таблице "таблЗаказ":

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 table2
ON table1.field1 = table2.field2

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

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

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

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

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

WHERE [LastName]='Bagel'

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

WHERE field1 LIKE field2

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

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

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

Используйте оператор UNION, чтобы одновременно просматривать результаты нескольких запросов на выборку. Например, если в базе данных содержатся таблицы "Товары" и "Услуги" и обе таблицы содержат три поля: "Эксклюзивное предложение товара или услуги", "Цена" и "Гарантия". Несмотря на то что в таблицах "Товары" и "Услуги" предусмотрены разные типы гарантий, основная информация одна и та же. С помощью запрос-объединения можно объединить три поля из двух таблиц:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

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

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

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

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

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×