
- •Лабораторная работа №1
- •1. Постановка задачи
- •2. Пример решения
- •2.1. Создание проекта базы данных stud.
- •2.2. Создание таблиц в режиме конструктора.
- •2.3. Установка свойств полей таблицы "Преподаватели".
- •2.4. Создание таблиц в режиме мастера таблиц.
- •2.5. Создание ограничений на значения для полей.
- •2.6. Создание первичных ключей для таблиц.
- •2.7. Установление связей между таблицами.
- •2.8. Создание индексов.
- •Результаты работы
- •Лабораторная работа №2
- •1. Постановка задачи
- •2. Пример решения
- •2.1. Модификация таблиц базы данных.
- •2.1.1. Добавление нового поля в таблицу.
- •2.1.2. Копирование полей в таблице.
- •2.5. Создание масок ввода значений.
- •2.1.3. Удаление описания поля.
- •2.1.4. Модификация свойств данных.
- •2.2. Модификация структуры базы данных.
- •2.2.1. Изменение первичных ключей базы данных.
- •2.2.2. Модификация структуры связей базы данных.
- •2.2.3. Расщепление таблиц.
- •2.2.4. Объединение таблиц.
- •3. Результат выполнения работы
- •Лабораторная работа №3
- •1. Постановка задачи
- •2. Пример решения
- •2.1. Импорт данных.
- •2.1.1. Импорт таблиц баз данных.
- •2.1.2. Импорт данных из электронной таблицы Excel.
- •2.1.3. Импорт текстовых файлов.
- •2.2. Экспорт данных.
- •2.3. Присоединение внешних данных.
- •2.3.1. Присоединение таблицы Результаты из бд филиала.
- •3. Результаты работы
- •Предмет
- •2.1.2. Создание итогового запроса.
- •2.1.3. Создание запроса с параметром.
- •2.1.4. Создание перекрестного запроса.
- •2.1.5. Создание запроса типа "внешнее объединение".
- •2.2. Использование мастера запросов.
- •3. Результаты работы
- •Лабораторная работа № 5
- •1. Постановка задачи
- •2. Пример решения
- •2.1. Вставка данных в таблицу.
- •2.2. Создание новой таблицы при помощи запроса.
- •2.3. Запросы на обновление групп записей.
- •2.4. Запрос на удаление группы записей.
- •2.5. Ошибки, возникающие при выполнении запросов.
- •3. Результаты работы
- •Лабораторная работа №6
- •2. Пример решения
- •2.1. Создание простых запросов.
- •2.2. Создание многотабличного запроса.
- •2.3. Запросы с параметрами.
- •2.4. Создание многотабличного запроса с параметрически заданным условием отбора.
- •2.5. Групповые запросы.
- •2.6. Создание запроса на объединение таблиц.
- •2.7. Запросы, использующие таблицы удаленной бд.
- •Приложение 3
- •2.8. Запросы объединения инструкций select.
- •2.9. Перекрестные запросы на sql.
- •2.10. Запросы − действия на sql.
- •2.10.1. Запрос на создание таблицы.
- •2.10.2 Запросы на модификацию данных с использованием sql.
- •2.10.3 Запросы на удаление данных на sql.
- •2.10.4 Запрос на добавление данных в таблицу.
- •3. Результаты работы
- •Лабораторная работа №7
- •1. Краткие теоретические сведения
- •2.Постановка задачи
- •3.Пример решения
- •4. Результаты работы
- •1.2. Стандартная панель инструментов окна предварительного просмотра (слева направо):
- •2. Постановка задачи
- •3. Пример решения
- •3.1 Построение отчета "Сведения по зарплате":
- •3.2 Создание отчетов с помощью мастера:
- •3.2.1. Рассмотрим создание отчетов с помощью мастера на примерах отчетов "Отчет о оценках" и "Почтовые наклейки".
- •3.4Создание отчета с внедрением объектов:
- •4. Результаты работы
- •Лабораторная работа №9
- •Цель: Обработка событий для форм и отчетов приложения и выполнение различных действий в зависимости от значений данных.
- •1. Краткие теоретические сведения
- •1.6 Макросы могут включать в себя несколько макрокоманд.
- •2. Постановка задачи
- •3. Пример решения.
- •3.3. Организация работы с отчетами.
- •4. Результаты работы
- •Лабораторная работа №10
- •1.Краткие теоретические сведения
- •1.6. Microsoft Access Basic поддерживает следующие типы данных:
- •1.7. Инструкции:
- •1.8.Семейства, объекты, свойства и методы.
- •Чтобы создать с помощью переменной ссылку на поле "Фамилия" в таблице "Преподаватели", используя только что созданную переменную tblMyTable, введите:
- •1.12 Функции и подпрограммы.
- •2. Постановка задачи
- •3. Решение задачи
- •Лабораторная работа №11
- •1. Постановка задачи
- •2. Пример решения
- •3. Результаты работы
- •Лабораторная работа №12
- •1.Постановка задачи
- •2. Пример решении
- •3. Результаты работы
2.5. Групповые запросы.
В инструкции SELECT могут быть заданы столбцы, используемые для формирования групп из выбранных строк. Строки в каждой группе будут содержать одно и тоже значение заданного столбца (столбцов). В SQL для формирования групповых запросов предназначено предложение GROUP BY.
Имя столбца в предложении GROUP BY может быть именем произвольного столбца или любой таблицы, описанной в предложении FROM.
Если GROUP BY стоит после предложения WHERE, создаются группы из
строк, выбранных после применения предложения WHERE (производится селекция подходящих по условию строк, и уже из отобранных записей формируются группы).
При включении предложения GROUP BY в инструкцию SELECT, список выбора должен состоять из итоговых функций SQL: AVG, SUM,MAX,MIN, COUNT, STDEV, VAR и VARP, или же из имен столбцов, указанных в предложении GROUP BY.
Создадим запрос, выводящий средний бал по предметам и количество задолженностей за определенный период времени, введя команду:
SELECT Студенты.Номер_С,
AVG(Результаты.Оценка_Т) AS Теория,
AVG(Результаты.Оценка_П) AS Практика,
AVG(Результаты.Оценка_Л) AS Лабы
FROM Студенты
INNER JOIN Результаты
ON Студенты.Номер_С = Результаты.Номер_С
WHERE ([Результаты,Дата_сдачи<=[Введите дату])
OR ([Результаты.Задолженность=0))
GROUP BY Студенты.Номер_С;
Сохраним запрос под именем "Средний бал сдавших сессию".
При необходимости произвести селекцию групп, включаемых в выходную таблицу, применяется предложение HAVING,. Это условие применяется к столбцам, указанным в предложении GROUP BY, столбцам итоговых функций и к столбцам, которые образованы выражениями, содержащими итоговые функции. Если некоторая группа не удовлетворяет условиям отбора, то она не включается в выходную логическую таблицу.
Разница между предложениями HAVING и WHERE в том, что условие выбора в WHERE применяется к отдельным записям перед, тем как они будут объединены в группы, а условие в HAVING используется в отношении уже сформированных групп строк.
2.6. Создание запроса на объединение таблиц.
ACCESS поддерживает любые типы объединения информации из нескольких таблиц, которые затем будут формировать выходную логическую таблицу. ACCESS также позволяет обновлять набор записей запроса на обновление объединения, как если бы это была отдельная базовая таблица.
Обновление набора записей возможно только при наличии (явно или по умолчанию) ключевого слова DISTINCTROW.
Существуют два основных типа объединения таблиц: внутреннее (INNER) и внешнее (OUTER).
− Внутреннее позволяет включить в выходную таблицу только те записи нескольких таблиц, значения сравниваемых полей которых совпадают.
− Внешнее объединение позволяет к внутреннему добавить еще и те строки одной из таблиц, соответствующие значения которых в другой таблице не найдены.
− Декартовым (прямым) произведением таблиц называется объединение всех строк одной таблицы со всеми строками другой. Данное объединение используется по умолчанию (при отсутствии предложения JOIN), путем перечисления объединяемых таблиц в предложении FROM.
Например,
SELECT ......
FROM TAB_1, TAB_2
......
задает областью поиска все строки TAB_1, присоединенные к каждой строке TAB_2, независимо от того, соответствуют они друг другу или нет.
Можно создавать вложенные объединения, но только объединяя
последующую таблицу с результатами объединения двух предыдущих. ACCESS не ограничивает глубину вложенности объединений таблиц.
Для указания типа объединения таблиц применяется предложение JOIN. Синтаксис предложения приведен ниже:
({ имя_таблицы [AS] псевдоним] |
имя_запроса_выборки [[AS] псевдоним] |
<таблица_объединения>
{ INNER | LEFT | RIGHT } JOIN
{имя_таблицы [[AS] псевдоним] |
имя_запроса_выборки [[AS] псевдоним] |
{таблица_объединение}
ON <условие_объединения>);
где <таблица_объединения> есть результат другой операции объединения, а <условие_объединения> − условие отбора, образованное из предикатов сравнений, сравнивающих поля первой таблицы с полями второй.
Операция INNER JOIN применяется для включения из обеих таблиц всех строк, удовлетворяющий условию объединения.
LEFT JOIN используется для вывода всех строк первой таблицы, и только тех строк второй, для которых выполняются условия объединения. Если таких значений не обнаруживается − в качестве значений соответствующих полей возвращается NULL.
RIGHT JOIN возвращает все строки второй таблицы, объединенные со строками из первой, для которых выполняются условия объединения. Если таких значений не обнаруживается − в качестве значений соответствующих полей возвращается NULL.
Если в условии объединения используется только предикат сравнения на равенство, то результат называется объединением по равенству. Бланк QBE позволяет представлять только такие объединения. Если же необходимо
определить объединения таблиц по условию неравенства ("<", ">", "< >", "<=", ">="), то запрос необходимо создавать через SQL.
Если по условию выполняется объединение таблицы с самой собой, то результат называется самообъединением.
При самообъединении (и в других случаях по желанию), используются псевдонимы. Это альтернативное имя можно использовать вместо полного имени таблицы при указании имен столбцов в списке выбора, в предложении WHERE или в подчиненных предложениях.
Если имя таблицы или запроса совпадает с зарезервированным словом SQL, то такое имя заключается в квадратные скобки.
Для определения списка всех студентов в группах с долгами и без, создадим запрос "Долги в группах", используя внешнее объединение таблиц "Студенты" и "Результаты":
SELECT Студенты.Номер_С, Студенты.Фамилия, Студенты.Группа,
Результаты.Предмет, Результаты.Задолженность
FROM Студенты
LEFT JOIN Результаты
ON Студенты.Номер_С = Результаты.Номер_С;