1. Конструктор запросов
Окно конструктора разделено на две части (см. примеры ниже). Верхняя содержит списки полей таблиц или запросов, на основе которой содержится запрос. В нижней — бланк для создания запроса. Каждый бланк состоит из столбцов, каждый столбец — одно поле, использующееся в запросе.
Первая строка бланка предназначена для задания полей, вторая — имя таблицы, из которой берется поле. Третье — порядок сортировки поля, четвертая содержит флажок вывода на экран, пятая — условие отбора для данного поля.
Условие отбора
Для составления условий отбора используются логически операции: OR, AND, NOT
Например:
Профессор OR Доцент
Правила вычисления результатов логических операций:
0 OR 0 = 0 1 OR 0 = 1 0 OR 1 = 1 0 OR 1 = 1 |
0 And 0 = 0 0 And 1 = 0 1 And 0 = 0 1 And 1 = 1 |
Not 0 = 1 Not 1 = 0
|
Кроме того, в Access существуют следующие операторы:
Between — задает границы для значений
Between 10 And 20 аналогично выражению >= 10 And <= 20
In — используется для описания возможного множества значений
IN (“ПГС-21” OR “ЭУН-21” OR “АД-21”)
LIKE — для задания образца для поиска
Используются символы:
? — любой символ в данной позиции
* — любое количество символов (включая ноль символов)
# — любая цифра
! — исключение символа, указанного после данного знака
LIKE ?в
LIKE ПГС-1#
LIKE ЭУН-[!1]? (все группы ЭУН, кроме групп первого курса)
Например, для таблиц:
возможны следующие запросы и результаты их выполнения:
1) Выбрать всех студентов (фамилия, имя, группа), проживающих в г. Йошкар-Оле
Конструктор запросов:
|
Результат:
2) Выбрать студентов группы ЭУН-21, сдавших экзамены на 4 и 5
Конструктор запросов:
Результат:
2. Использование sql
Команда SELECT является ядром языка SQL. Эта команда используется для отбора строк и столбцов из таблиц баз данных и содержит пять основных предложений:
SELECT <список полей> (весь перечень полей можно заменить знаком *)
FROM <список таблиц>
[WHERE <условие>]
[GROUP BY <условие группировки>]
[HAVING <условие>]
[ORDER BY <принцип сортировки>]
[WITH OWNER ACCESS OPTION]
<список полей> — имена полей, используемых при наборе, могут указываться с именами таблиц.
FROM — определяются имена используемых таблиц.
WHERE — выполняется фильтрация строк объекта в соответствии с заданными условиями.
GROUP BY — образуют группы строк , имеющих одно и то же значение в указанном столбце.
HAVING — фильтруются группы строк объекта в соответствии с указанным условием.
ORDER BY — упорядочение результата выполнения запроса.
WITH OWNER ACCESS OPTION — используется при работе в сети, для ограничения доступа пользователям без прав.
Примеры запросов на языке SQL (соответствуют запросам, приведенным в п. 4.1.):
1) SELECT [Студент].[Фамилия], [Студент].[Имя], [Студент].[Группа]
FROM Студент
WHERE ((([Студент].[Населенный пункт])="Йошкар-Ола"));
2) SELECT Студент.Фамилия, Студент.Имя, Студент.Группа, [Оценки за сессию].Балл1,
[Оценки за сессию].Балл2, [Оценки за сессию].Балл3, [Оценки за сессию].Балл4
FROM Студент INNER JOIN [Оценки за сессию] ON Студент.[Зачетная книжка] = [Оценки за сессию].[Зачетная книжка]
WHERE (((Студент.Группа)="ЭУН-21") AND (([Оценки за сессию].Балл1)>3) AND (([Оценки за сессию].Балл2)>3) AND (([Оценки за сессию].Балл3)>3) AND (([Оценки за сессию].Балл4)>3));