Как сделать запрос на выборку

SQL SELECT и запросы на выборку данных

SELECT для выбора столбцов таблицы

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

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

Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке .

Этот запрос вернёт следующее (для увеличения картинки щёлкнуть по ней левой кнопкой мыши):

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Этот запрос вернёт следующее:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

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

SELECT и WHERE для выбора строк таблицы

Этот запрос вернёт следующие данные:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Этот запрос вернёт следующие данные:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Этот запрос вернёт следующие данные:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

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

Запрос вернёт следующие строки:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Использование SELECT и предикатов IN, OR, BETWEEN, LIKE

Запросы с предикатом LIKE имеют следующий синтаксис:

Результат выполнения запроса:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

На сайте есть подробный урок об использовании предиката IN.

Результат выполнения запроса:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

На сайте есть подробный урок об использовании предиката BETWEEN.

Предикат LIKE используется для выборки тех строк, в значениях которых встречаются символы, указанные после предиката между апострофами (‘).

Символ подчёркивания (_) означает любой символ. Результат выполнения запроса:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Символ процентов (%) означает любое количество символов. Результат выполнения запроса:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

На сайте есть подробный урок об использовании предиката LIKE.

Значения, указанные с использованием предикатов IN, OR, BETWEEN, LIKE можно инвертировать при помощи слова NOT. Тогда запрашиваемые данные будут иметь противоположный смысл. Если мы используем NOT IN (20, 84), то будут выведены данные сотрудников, которые работают во всех отделах, кроме имеющих номера 20 и 84. С использованием NOT BETWEEN 15000 AND 17000 можно получить данные сотрудников, зарплата которых не входит в интервал от 15000 до 17000. Запрос с NOT LIKE выведет данные сотрудников, чьи имена не начинаются или не содержат символов, указанных с NOT LIKE.

Написать SQL запросы с SELECT и предикатами IN, NOT IN, BETWEEN самостоятельно, а затем посмотреть решения

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Пример 13. Вывести список актеров, которые играли во всех спектаклях WilliamShakespeare. Данные об авторах содержается в таблице play в столбце author.

Пример 14. Вывести спектакли, в которых средний возраст актеров от 20 до 30 (использовать BETWEEN, Group by, Having, AVG, перекрестное соединение таблиц (CROSS JOIN), удобнее без слова JOIN, а с перечислением таблиц через запятую).

Разобранные до сих пор запросы SQL SELECT возвращали строки, которые могли быть расположены в любой последовательности. Однако часто требуется отсортировать строки по порядку номеров, алфавиту и другим признакам. Для этого служит ключевое словосочетание ORDER BY. Такие запросы имеют следующий синтаксис:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

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

Результат выполнения запроса:

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Оператор SELECT в подзапросах SQL

Пример 19. Пусть теперь требуетcя узнать, в каких подразделениях (без дублирования) работают сотрудники с заработной платой менее 13000. Для этого в секции WHERE внешнего SELECT (запрос к таблице Org) задаётся условие, принимающее диапазон значений (IN), а внутренний SELECT (к таблице Staff) как раз возвращает требуемый диапазон значений:

Источник

Запросы на выборку

Запрос на выборку — это такая инструкция по отбору данных, в соответствии с которой программа отбирает данные из одной или более таблиц по заданным условиям, а затем отображает их в нужном порядке.

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

• Номер заказа отношения Продажи;

• Наименование отношения Комплектующие;

• Цена отношения Цены.

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.15. Многотабличный запрос в режиме конструктора

По этому запросу пользователю будут представлены соответствующие данные (рис. 8.16).

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

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

Как уже отмечалось, при создании запросов в строке «Условие отбора» можно записать не только сами значения признаков, но и выражения, содержащие эти значения. При этом СУБД MS Access предоставляет в распоряжение пользователя инструмент, облегчающий процесс создания выражений — Построитель. Этот инструмент включается либо кнопкой Построить на панели инструментов (обозначена «волшебной палочкой»), либо командой Построить, которую можно выбрать из контекстного меню, вызываемого правой клавишей мыши, когда курсор находится в строке «Условие отбора». Рассмотрим пример запроса, который позволит выбрать из нашей БД записи, содержащие сведения о комплектующих, стоимость которых находится в пределах 110—170 евро.

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.17. Макет запроса

Условие отбора в этом запросе сформулировано в форме выражения Between ПО And 170. Для его записи был использован построитель выражений, представляющий собой диалоговое окно. Это окно, внешний вид которого представлен на рис. 8.18, состоит из трех разделов, располагающихся сверху вниз [1]:

[1] поле выражения. В верхней части окна построителя расположено поле, в котором создается выражение. Ниже находится раздел, предназначенный для создания элементов выражения и их последующей вставки в поле выражения.

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.18. Построитель выражений

Допускается непосредственный ввод части выражения в поле выражения;

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

• элементы выражения. В нижней части окна построителя находятся три поля. В левом поле выводятся папки, содержащие таблицы, запросы, формы, объекты базы данных, встроенные и определенные пользователем функции, константы, операторы и общие выражения. В среднем — задаются определенные элементы или типы элементов для папки, заданной в левом поле. Например, если выбрать в левом поле Встроенные функции, то в среднем поле появится список всех типов функций Microsoft Access. В правом поле выводится список значений (если они существуют) для элементов, заданных в левом и среднем полях. Например, если выбрать в левом поле Встроенные функции и тип функции в среднем, то в правом поле будет выведен список всех встроенных функций выбранного типа.

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

В результате исполнения запроса будут получены необходимые сведения (рис. 8.19).

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.19. Результат выполнения запроса

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

Групповые запросы. Групповые запросы предназначены для вычисления сумм, средних значений, числа значений или выполнения других статистических расчетов. При этом результаты группируются в виде таблицы. Запросы этого типа позволяют получать итоговую информацию для заданного набора записей таблицы. Статистические функции, применяемые для выполнения итоговых расчетов по полям таблиц, перечислены в табл. 8.7.

Таблица 8.7. Статистические функции MS Access

ФункцияОписаниеТипы полей
Avg ( )Вычисляет среднее арифметическое значение набора чисел, содержащихся в указанном поле запросаВсе типы, кроме типов Текстовый (Text), Поле MEMO (Memo) и Поле объекта OLE (OLE Object)
Count ( )Вычисляет количество записей, не содержащих в данном поле значения NullВсе типы полей
First ( )Возвращает значение поля из первой записи результирующего набора данных запросаТо же
Last ( )Возвращает значение поля из последней записи результирующего набора данных запроса» »

Рассмотрим макет и результат выполнения группового запроса на конкретном примере.

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.20. Макет группового запроса

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

• нажать кнопку Групповые операции на панели инструментов (обозначена символом Σ) или

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

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

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.21. Результат выполнения группового запроса

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

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.22. Макет перекрестного запроса

Для получения возможности создания перекрестного запроса необходимо в режиме конструктора запросов выбрать команду Запрос/Перекрестный. В результате ее выполнения в бланк запроса вводятся строки Групповая операция и Перекрестная таблица. Далее необходимо:

1) для поля Наименование отношения Комплектующие, значения которого должно быть представлено в виде заголовков строк, выбрать значение Заголовки строк в строке Перекрестная таблица и в строке Групповая операция оставить значение Группировка;

2) затем для поля Номер заказа отношения Продажи, значения которого должны быть представлены в виде заголовков столбцов, следует выбрать значение Заголовки столбцов строки Перекрестная таблица. Следует иметь в виду, что значение Заголовки столбцов можно задать только для одного поля. Для этого поля нужно оставить в ячейке строки Групповая операция значение Группировка;

3) на завершающем этапе создания перекрестного запроса для поля Цена отношения Цены, значения которого используются при создании перекрестной таблицы, надлежит выбрать значение Значение строки Перекрестная таблица. Для перекрестных запросов обязательным является требование, чтобы значение Значение было установлено только в одном поле. Для этого поля в строке Групповая операция выбирается статистическая функция, использующаяся для заполнения перекрестной таблицы (например, Sum, Avg или Count).

Результат выполнения такого запроса демонстрируется на рис. 8.23.

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.23. Результат выполнения перекрестного запроса

Запросы с вычисляемым полем. СУБД MS Access позволяет выполнять в запросе вычисления двух типов.

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

2. Пользовательские вычисления для выполнения расчетов с числовыми и строковыми значениями или значениями дат для каждой записи с использованием данных из одного или нескольких полей. Для ввода таких выражений необходимо создать новое вычисляемое поле непосредственно в бланке запроса.

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

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

Пользовательские вычисления позволяют выполнять расчеты с числовыми и строковыми значениями или значениями дат для каждой записи с использованием данных из одного или нескольких полей. Например, выражение позволяет умножить значения одного поля на итоговое значение, найти разность значений двух полей типа «Дата, время», соединить несколько строковых значений в текстовом поле или создать подчиненные запросы. Примеры выражений приведены в приложении 2.

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

Стоимость: [цены]! [Цена] * [Количество_комплектующих]!

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

Для записи выражения использован построитель (рис. 8.25).

В результате выполнения запроса будут получены необходимые сведения о стоимости закупленных комплектующих, которые можно будет использовать для создания счетов-фактур (рис. 8.26). Таким образом, запросы с вычисляемым полем позволяют получить новые данные на основе тех, которые уже имеются в БД.

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

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.24. Макет запроса с вычисляемым полем

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

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

Как сделать запрос на выборку. Смотреть фото Как сделать запрос на выборку. Смотреть картинку Как сделать запрос на выборку. Картинка про Как сделать запрос на выборку. Фото Как сделать запрос на выборку

Рис. 8.26. Результат выполнения запроса с вычисляемым полем

Источник

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

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

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

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

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

В этой статье

Что такое SQL?

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

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

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

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

Инструкции SELECT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Термины SQL

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

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

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

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

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

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

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

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

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

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. Оно содержит оператор (FROM), за которым следует идентификатор (Контакты).

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

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

Это предложение 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 см. в статье Предложение 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 с помощью оператора UNION см. в статье Просмотр объединенных результатов нескольких запросов с помощью запроса на объединение.

Источник

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

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