SQL запросы в MS Access

Структура SQL запроса

SELECT [DISTINCT/ALL] <имена полей возвращаемых запросом>

FROM <имена таблиц используемых в запросе>

WHERE <условия отбора записей>

GROUP BY <имена группируемых полей>

HAVING <условия отбора>

ORDER BY <список полей сортировки>;

SELECT (наличие обязательно!)

  1. поля, которые необходимо вывести в результате выполнения запроса;

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


DISTINCT (в переводе с английского ОТЛИЧИЕ) — аргумент, который устраняет двойные значения


Примеры:

SELECT * - выведет все поля таблицы или таблиц

SELECT Поле1, Поле2 - выведет два поля, наименования полей не подержат пробелов

SELECT [Поле номер 1], [Поле номер 2] - выведет два поля, наименования полей подержат пробелы

SELECT Таблица.Поле1, Таблица.[Поле 2]

SELECT Count(Поле1), Поле2 - использование статистической функции Count

SELECT DISTINCT Поле1 - выведет все записи исключив повторяющиеся

FROM (наличие обязательно!)

Указываются таблицы используемые в запросе (поля которых использованы в предложении Select

Не указываются поля для выборки.

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

Примеры:

FROM Таблица1, Таблица2

FROM Таблица1 INNER JOIN Таблица2 ON Таблица1.[Поле номер 1] = Таблица2.[Поле номер 5] - таблица 1 связана с таблицей 2 с помощью полей "Поле номер 1" в первой таблице и "Поле номер 5"

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

WHERE

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


Примеры:

WHERE Поле1 = 100 - выведет записи, в которых значение поля "Поле1" равно 100

WHERE Поле1>=2 AND Поле1<=4 - выведет записи, в которых значение поля1 находится в приведенном интервале


Примеры создания запросов можно посмотреть в Л.р. № 5 Создание запросов

ORDER BY

ASC – по возрастанию

DESC – по убыванию

  1. указание способа сортировки результатов при выполнении запроса.

  2. находится в конце инструкции SQL

  3. содержит список полей, для которых нужно выполнить сортировку

Пример:

ORDER BY Поле2 DESC, [Поле 1] - отсортирует значения поле2 по убыванию, поле 1 останется с сортировкой по умолчанию

GROUP BY

  1. Используется при наличии агрегатных функций

  2. Необходимо для задания полей, которые не используются в агрегатной функции

  3. Следует после предложения WHERE или FROM

Пример:

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

****

GROUP BY Company - запрос, в котором будет представлено количество электронных адресов по каждой компании

HAVING

Ограничение статистических значений с помощью условий группировки

Указывать условие для ограничения полю со статистической функцией с помощью WHERE нельзя, но можно с помощью HAVING

Пример:

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

****

HAVING COUNT ([E-mail Address]) > 1 запрос, в котором будет представлено количество электронных адресов по каждой компании, но количество адрес должно быть больше 1

Обязательно указывать в HAVING именно поле с функцией, а не просто поле

Виды ограничений соответствуют приложению WHERE

Задание 1

Создать 3-4 запроса с условием с помощью SQL (использовать только Select, From, Where). В названии запроса указать, что он выполнен с помощью SQL

Задание 2

Создать запрос, который выведет личные данные (ФИО) всех студентов, которые получили по информатике оценку "отлично" или "хорошо". Название запроса "SQL отличники и хорошисты по информатике".

Создать запрос, который выведет количество студентов в каждой группе. Отсортировать по убыванию количества студентов. Название запроса "SQL Кол-во студентов, по убыванию".

Создать запрос, который выведет количество зачетов у каждого педагога, если зачетов у педагога не было, то их выводить не нужно. Название запроса "SQL Кол-во зачетов у педагогов".