
- •Создание баз данных в Microsoft Access
- •Создание баз данных в Microsoft Access
- •Сведения из теории
- •1. Нормализация структур данных
- •2. Главный ключ таблицы
- •3. Индексация
- •4. Элементы окна базы данных
- •5. Типы данных
- •6. Связи между таблицами и целостность данных
- •7. Автоподстановка
- •8. Экспорт и импорт данных
- •9. Назначение и элементы формы
- •10. Способы построения формы. Режим мастера , режим конструктора
- •11. Просмотр данных с помощью форм
- •12. Запрос
- •14. Вложенные формы
- •15.Запрос на выборку и на изменения
- •16.Параметрический запрос
- •Лабораторная работа n 1
- •Список таблиц и свойств полей таблиц
- •Контрольные вопросы
- •Лабораторная работа n 2
- •Запросы на выборку из одной и нескольких таблиц
- •Пояснение к запросу:
- •Тип запроса: запрос на выборку из одной таблицы
- •Тип запроса: запрос на выборку из двух таблиц
- •Тип запроса: запрос на выборку из двух таблиц
- •Тип запроса: запрос на выборку из трех таблиц
- •Тип запроса: Запрос на создание новой таблицы "НоваяТаблицаЗакупки"
- •Запросы на выборку из одной и нескольких таблиц.
- •Контрольные вопросы
- •Лабораторная работа n 3
- •Тип запроса: Запрос на выборку из одной таблицы с параметром
- •Тип запроса: запрос на выборку данных из двух таблиц с параметром
- •Тип запроса: запрос на выборку данных из таблиц с группировкой
- •Тип запроса: запрос на выборку данных из нескольких таблиц с параметром
- •Лабораторная работа n 4
- •1. Создать простые формы "Поставщики", "Сотрудники", "Типы", "Методы доставки","Сведения об организации"
- •Лабораторная работа n 5
- •Лабораторная работа n 6
Тип запроса: запрос на выборку из двух таблиц
Имя запроса: "ПоставщикиИЗакупки".
Цель запроса: Выбрать всех поставщиков из заданного города, у которых произведены закупки с заданным диапазоном дат размещения
QBE-запрос:
SQL-запрос:
SELECT Поставщики.Город, Поставщики.НазваниеПоставщика,
Закупки.ДатаРазмещения
FROM Поставщики INNER JOIN Закупки
ON Поставщики.КодПоставщика = Закупки.КодПоставщика
WHERE (Поставщики.Город='Москва') AND (Закупки.ДатаРазмещения Between #1/1/1999# And #1/1/2000#);
Пояснение к запросу:
<
ВЫБРАТЬ поля Поставщики.Город, Поставщики.НазваниеПоставщика,
Закупки.ДатаРазмещения
ИЗ таблицы Поставщики СВЯЗАННОЙ ВНУТРЕННЕЙ СВЯЗЬЮ с таблицей Закупки ПО полям Поставщики.КодПоставщика = Закупки.КодПоставщика
ГДЕ (значение поля Поставщики.Город совпадает с названием 'Москва') И
(значение поля Закупки.ДатаРазмещения лежит МЕЖДУ 1/1/1999 И 1/1/2000);
>
Запрос 5.
Тип запроса: запрос на выборку из трех таблиц
Имя запроса: "СделкиСТоваром".
Цель запроса: Выбрать первые 10% сделок с заданным товаром
QBE-запрос:
SQL-запрос:
SELECT TOP 10 PERCENT Сделки.ДатаОперации, Сделки.ОписаниеОперации, Товары.Марка, Типы.НазваниеТипа
FROM Типы RIGHT JOIN (Товары INNER JOIN Сделки ON Товары.КодТовара = Сделки.КодТовара) ON Типы.КодТипа = Товары.КодТипа
WHERE (((Типы.НазваниеТипа)="Колбасные изделия"))
ORDER BY Сделки.ДатаОперации;
Пояснение к запросу:
<
ВЫБРАТЬ ПЕРВЫЕ 10 ПРОЦЕНТОВ записей для полей Сделки.ДатаОперации, Сделки.ОписаниеОперации, Товары.Марка, Типы.НазваниеТипа
ИЗ таблицы Типы СВЯЗАННОЙ ПРАВОЙ ВНЕШНЕЙ СВЯЗЬЮ с таблицей (ТОвары СВЯЗАННОЙ ВНУТРЕННЕЙ СВЯЗЬЮ с таблицей Сделки ПО полям Товары.КодТовара = Сделки.КодТовара) ПО полям Типы.КодТипа = Товары.КодТипа
ГДЕ Типы.НазваниеТипа="Колбасные изделия"
СОРТИРОВАТЬ ПО Сделки.ДатаОперации;
>
Запросы на обновление
Запрос 6.
Тип запроса: запрос на обновление одной таблицы
Имя запроса: "ОбновитьЦены".
Цель запроса: обновить все цены товаров заданного типа, увеличив их на 10%
QBE-запрос:
SQL-запрос:
UPDATE Товары SET Товары.Цена =Товары.[Цена]*1.1
WHERE (((Товары.КодТипа)=1));
Пояснение:
<
ОБНОВИТЬ таблицу Товары,
УСТАНОВИТЬ при этом значение поляТовары.Цена равным Товары.[Цена]*1.1,
ГДЕ Товары.КодТипа=1;
>
Запрос на создание новой таблицы
Запрос 7.
Т ип запроса: запрос на создание новой таблицы
Имя запроса: "НоваяТаблицаЗакупки".
Цель запроса: создание новой таблицы, содержащей сведения о закупках за последний месяц
QBE-запрос:
SQL-запрос:
SELECT Закупки.* INTO ЗакупкиАрхив
FROM Закупки
WHERE (((Закупки.ДатаРазмещения) >
Date()-30));
Пояснение:
<
ВЫБРАТЬ все поля и ПОМЕСТИТЬ В НОВУЮ ТАБЛИЦУ по имени ЗакупкиАрхив
ИЗ таблицы Закупки
ГДЕ значение поля ДатаРазмещения больше текущей даты минус 30 дней
>
Запросы на удаление
Запрос 8.
Тип запроса: запрос на удаление из одной таблицы
Имя запроса: "УдалитьСделки".
Цель запроса: Удалить все сделки с заданным диапазоном дат
QBE-запрос:
SQL-запрос:
DELETE Сделки.*, Сделки.ДатаОперации
FROM Сделки
WHERE Сделки.ДатаОперации Between #1/1/1996# And #1/1/1997#;
Пояснение:
<
УДАЛИТЬ все записи, использовать поле ДатаОперации
ИЗ таблицы Сделки,
ГДЕ ДатаОперации лежит между 1/1/1996 И 1/1/1997
>
Запрос 9.
Тип запроса: запрос на удаление из одной таблицы по результатам отбора из других таблиц
И
мя
запроса: "УдалитьЗакупкиПоАрхиву".
Цель запроса: Удалить все закупки в таблице Закупки, если они есть в таблице ЗакупкиАрхив
SQL-запрос:
DELETE Закупки.*, Закупки.ДатаРазмещения
FROM Закупки INNER JOIN ЗакупкиАрхив ON Закупки.КодЗаказа = ЗакупкиАрхив.КодЗаказа
WHERE (((Закупки.ДатаРазмещения)>Date()-30));
Если записи удаляются из одной таблицы, в запросе можно не указывать символ "*" (удаление значений всех полей), а можно указать только одно поле.
Если записи удаляются из одной таблицы (Закупки), связанной с другими (ЗакупкиАрхив), в запросе нужно указывать все поля таблицы (Закупки), из которой происходит удаление, введя символ "*".
Пояснение:
<
УДАЛИТЬ все записи, использовать поле ДатаРазмещения
ИЗ таблицы Закупки СВЯЗАННОЙ ВНУТРЕННЕЙ СВЯЗЬЮ
с таблицей ЗакупкиАрхив ПО полям Закупки.КодЗаказа = ЗакупкиАрхив.КодЗаказа
ГДЕ значение поля ДатаРазмещения больше текущей даты минус 30 дней
>
Запрос 10.