Чтобы создать запрос необходимо сделать активной БД для которой создается запрос, затем в рабочей области редактора запросов создать запрос с помощью команды SELECT, имеющей следующий синтаксис:
SELECT [ALL|DISTINCT]
[TOP|PERCENT n] <Список полей>
[INTO <Имя новой таблицы>]
[FROM <Имя таблицы >]
[WHERE <Условие>] [GROUP BY <Поле>]
[ORDER BY <Поле > [ASC|DESC]]
[COMPUTE AVG|COUNT|MAX|MIN|SUM(<Выражение>)]
Здесь параметры ALL|DISTINCT показывают, какие записи обрабатываются: ALL обрабатывает все записи, DISTINCT только уникальные, удаляются повторения записей.
TOP n определяет какое количество записей обрабатывают, если указан PERCENT, то n указывает процент от общего числа записей.
<Список полей> - здесь указываются отображаемые поля из таблиц через запятую.
Замечания: 1) Если имена отображаемых полей в разных таблицах не повторяются, то мы можем указывать только имена столбцов или полей без указания самих полей ( ФИО, Должность). Если отображаются поля из разных таблиц с одинаковыми именами нужно указывать и имя таблицы <Имя поля>.<Имя таблицы>;
2) Здесь же можно присваивать псевдонимы полям, следующим образом <Имя поля> AS <Псевдоним>
3) Если необходимо вывести все поля из таблицы, то их можно заменить значком «*»
Раздел INTO. Если присутствует этот раздел, то на основе результатов запроса создается новая таблица. Параметр INTO это имя новой таблицы. Раздел FROM. Здесь указываются таблицы и запросы, через запятую, которые участвуют в новом запросе.
Замечание: В разделе FROM так же можно задавать сложные связи, связь поля одной таблицы, с несколькими полями другой таблицы. В этом случае раздел FROM будет иметь следующий вид:
FROM <Таблица1> INNER JOIN <Таблица2> ON <Таблица1>.<поле1> = <Таблица2>.<поле2> …
Здесь устанавливается взаимосвязь Таблицы 1 и Таблицы2 по Полю1 и Полю2. Таких разделов INNER JOIN может быть сколько угодно.
Раздел WHERE. Данный раздел используют для создания простых запросов, в этом случае в качестве условия указываем связываемые поля, либо этот раздел используют для создания фильтров, здесь указывают условия отбора. В условиях отбора мы можем использовать стандартные логические операторы NOT, OR, AND.
Замечание: В своем стандартном виде запросы могут реализовывать только статичные фильтры, но не динамические. Для реализации динамических фильтров используются хранимые процедуры.
Раздел GROUP BY – определяет поле для группировки записей в запросе. Раздел ORDER BY – определяет поле для сортировки записей в запросе. Если указан параметр ASC, то будет производиться сортировка по возрастанию, если DESC – по убыванию. По умолчанию используется сортировка по возрастанию.
Раздел COMPUTEпозволяет в конце результатов выполнения запроса вывести некоторые итоговые вычисления по запросу. Возможны следующие виды вычислений: AVG – средняя параметра; COUNT – количество значений параметра не равных NULL; MAX и MIN – максимальные и минимальные значения параметра; SUM – сумма всех значений параметра, где <Выражение> – сам параметр. В качестве параметра обычно выступают какие либо поля таблиц, участвующих в запросе.
Пример
1. Создайте базу данных, позволяющую вести учет сотрудников, работающих на предприятии, а также хранить все выданные заработные платы с их расшифровкой по доходным и расходным статьям (например, оклад, подоходный налог и т.д.).