- •Управление данными
- •Шаптала в.В.
- •Введение
- •Основные понятия
- •Идентификация строк (первичный ключ)
- •Общие сведения о субд Access
- •Сортировка данных
- •Отбор данных с помощью фильтра
- •Содержание работы
- •Контрольные вопросы
- •Порядок выполнения работы
- •Структура таблицы “Студенты”
- •Состав кафедры информационных технологий
- •Состав кафедры математики
- •Состав кафедры физики
- •Структура таблицы Группы_дисциплины
- •Исходные данные для таблицы Группы_дисциплины
- •Задание 4. В базе данных необходимо хранить информацию о результатах сдачи студентами сессии.
- •Содержание отчета
- •Контрольные вопросы
- •Простые запросы на выборку
- •Основные понятия
- •Вывод с сортировкой – предложение order by
- •Выборка из таблицы с условием - предложение where
- •Поиск подстрок – оператор like
- •Содержание работы
- •Содержание отчета
- •Контрольные вопросы
- •Функции агрегирования
- •Основные понятия
- •Группировка данных
- •Отбор групп
- •Содержание работы
- •Содержание отчета
- •Использование агрегатных функций в подзапросах
- •Подзапросы с exists и not exists
- •Содержание работы.
- •Содержание отчета
- •Обновление таблиц
- •Прямое обновление
- •Обновление с подзапросом
- •Удаление данных
- •Простое удаление
- •Удаление с подзапросом
- •Отделение данных от приложения
- •Режимы открытия базы данных
- •Период обновления
- •Блокировка
- •Оптимистическая блокировка
- •Пессимистическая блокировка
- •Блокировка и формы
- •Транзакции
- •Содержание работы
- •Содержание отчета
- •Контрольные вопросы
- •Защита приложений Access на уровне рабочих групп
- •Основные понятия
- •Рабочие группы
- •Создание новой рабочей группы
- •Учетные записи пользователей и групп
- •Идентификаторы pid и sid, пароли
- •Характеристики пользователей и групп
- •Предоставление разрешений
- •Административные права доступа
- •Право на владение объектами базы данных
- •Удаление учетной записи
- •Шифрование баз данных Jet
- •Содержание работы
- •Содержание отчета
- •Репликация
- •Синхронизация
- •Устранение конфликтов
- •Типы конфликтов
- •Видимость реплик
- •Частичные реплики
- •Реплики с запрещенным удалением
- •Управление репликацией посредством меню Access
- •Меню репликации Access
- •Защита реплицированной базы данных
- •Содержание работы
- •Создание редактируемой страницы
- •Создание группы
- •Добавление еще одного уровня группировки
- •Формирование итоговых данных
- •Анализ данных
- •Публикация страниц в папках Web или на web-сервере.
- •Содержание работы
- •Преимущества архитектуры клиент-сервер
- •Надежность и защита данных
- •Производительность
- •Создание проектов Access
- •Создание хранимых процедур
- •Синтаксис хранимых процедур
- •Параметры и переменные
- •Выполнение хранимых процедур
- •Создание триггеров
- •Синтаксис триггеров
- •Таблицы Inserted и deleted
- •Транзакции и оператор Raiseerror
- •Защита проектов Access (adp)
- •Содержание работы
- •Реализовать следующие функции системы Функции библиотекаря.
- •Функции читателя
- •2. Автоматизация поликлиники – выдача талонов
- •3. Автоматизация кадрового агенства Описание основных сущностей
- •Реализовать следующие функции системы: Функции менеджера агентства
- •4. Автоматизация книжного магазина. Описание основных сущностей
- •Реализовать следующие функции системы: Функции менеджера магазина.
- •Функции покупателя
- •Реализовать следующие функции программы
Содержание работы.
1. Выполните следующий запрос и объясните его смысл:
SELECT дисциплины.название
FROM дисциплины
WHERE дисциплины.код IN
(SELECT код_дисц
FROM
группы INNER JOIN группы_дисциплины
ON группы.код = группы_дисциплины.код_группы
WHERE группы.название = [введите название группы])
2. Создайте следующие запросы:
а) получить список студентов с указанием группы, которые не сдавали ни одного экзамена.
б) вывести Фамилии студентов-задолжников и названия дисциплин, по которым они не сдали экзамен.
в) показать фамилии преподавателей, преподающих в группе “Гр1” (без использования подзапроса).
г) сделать предыдущее задание с использованием подзапроса.
Содержание отчета
Напишите текст созданных запросов
Приведите ответы на контрольные вопросы
Контрольные вопросы
1. Можно ли запрос из примера 5 записать следующим образом:
SELECT *
FROM студенты
WHERE код_группы IN
( SELECT код FROM Группы WHERE название = ‘Гр2’ )
AND EXISTS
(SELECT *
FROM сессия
WHERE студенты.код = сессия.код_студ AND оценка >3 )
В каких случаях вложенный подзапрос выполняется один раз, а в каких несколько?
Можно ли вкладывать одну агрегатную функцию в другую?
Лабораторная работа № 6.
Запросы на изменение
Цель работы: Получить представление о способах использования запросов на изменение
Основные понятия
Вставка записей в таблицу
Все стоки в SQL вводятся при помощи команды обновления INSERT. В простейшем случае команда INSERT имеет синтаксис:
INSERT INTO <имя таблицы> (<поле1>, <поле2>…)
Values (<значение>, <значение>… );
Пример 1.
Добавить нового студента.
INSERT INTO студенты (код, фамилия, имя, отчество, телефон, код_группы)
VALUES ( 11, "Сидоров", "Олег", "Петрович", “34-56-78”, 2)
Вставка записей из другой таблицы
Команду INSERT можно применить для того, чтобы извлечь значения из одной таблицы и разместить их в другой, воспользовавшись для этого запросом. Для этого достаточно заменить предложение VALUES на соответствующий запрос.
Пример 2.
Физика читается у всех групп преподавателем Мироновым (его код = 2). Внести соответствующие записи в таблицу Группы_Дисциплины.
INSERT INTO Группы_Дисциплины (код_дисц,код_группы,код_преп)
SELECT дисциплины.код,группы.код , 2
FROM Дисциплины,Группы
WHERE Дисциплины.название = 'Физика' AND Группы.N_курса=1
Обновление таблиц
По команде UPDATE можно изменять некоторые или все значения в существующей строке. Эта команда содержит предложение UPDATE, позволяющее указать имя таблицы, для которой выполняется операция, и SET предложение, определяющее изменение, которое необходимо выполнить для определенного столбца.
Прямое обновление
Пример 3.
Студента Иванова перевести из группы Гр1 в группу Гр2.
UPDATE студенты
SET студенты.код_группы = 2
WHERE студенты.фамилия = "Иванов" AND студенты.код_группы =1
Обновление с подзапросом
Источником данных для команды UPDATE может быть результат, возвращаемый подзапросом.
Пример 4.
Студентам, сдавшим сессию без троек, назначить стипендию (предполагается, что нужно сдать 4 экзамена)
UPDATE студенты SET стипендия = YES
WHERE 4 = ( SELECT count(*) FROM сессия WHERE сессия.код_студ = студенты.код) AND
NOT EXISTS
(SELECT * FROM сессия WHERE студенты.код = сессия.код_студ AND (сессия.оценка < 4 OR сессия.оценка IS NULL) );
В первом подзапросе проверяем, все ли экзамены сдавал студент. Во втором – не получил ли студент хоть одну оценку < 4 или по всем ли экзаменам проставлены оценки.