- •Лабораторная работа n 1
- •Создание таблиц.
- •Типы данных.
- •Общие свойства поля
- •Список таблиц и свойств полей таблиц
- •Ввод тестовых данных
- •Лабораторная работа n 2
- •Создание запросов
- •Пояснение к запросу:
- •Тип запроса: запрос на выборку из одной таблицы
- •Тип запроса: запрос на выборку из двух таблиц
- •Тип запроса: запрос на выборку из двух таблиц
- •Тип запроса: запрос на выборку из трех таблиц
- •Запросы на выборку из одной и нескольких таблиц
- •Тип запроса: Запрос на создание новой таблицы "НоваяТаблицаЗакупки"
- •Контрольные вопросы
- •Лабораторная работа n 3
- •Тип запроса: Запрос на выборку из одной таблицы с параметром
- •Тип запроса: запрос на выборку данных из двух таблиц с параметром
- •Тип запроса: запрос на выборку данных из таблиц с группировкой
- •Тип запроса: запрос на выборку данных из нескольких таблиц с параметром
- •Лабораторная работа n 4
- •1. Создать простые формы "Поставщики", "Сотрудники", "Типы", "Методы доставки","Сведения об организации"
- •Лабораторная работа n 5
- •Лабораторная работа n 6
Запросы на выборку из одной и нескольких таблиц
Запрос 1.
Т
ип
запроса:
запрос на выборку всех полей из одной
таблицы
Имя запроса: "ЗакупкиЗаМесяц".
Цель запроса: выбрать закупки за последний месяц
SQL-запрос:
SELECT Закупки.*
FROM Закупки
WHERE Закупки.ДатаРазмещения > Date()-30;
Пояснение к запросу:
<
ВЫБРАТЬ все поля
ИЗ таблицы Закупки
ГДЕ поле ДатаРазмещения имеет значение больше, чем текущая дата минус 30 дней
Запрос 2.
Тип запроса: запрос на выборку из одной таблицы
Имя запроса: "ТоварыОдногоТипа ".
Цель запроса: выбрать все товары заданного типа.
QBE-запрос:
SQL-запрос:
SELECT Товары.КодТовара, Товары.Марка, Товары.ОписаниеТовара,
Товары.Цена, Товары.КодТипа
FROM Товары
WHERE (((Товары.КодТипа)=1))
ORDER BY Товары.Марка;
Пояснение к запросу:
<
ВЫБРАТЬ поля КодТовара, Марка, .ОписаниеТовара,Цена, КодТипа
ИЗ таблицы Товары
ГДЕ поле КодТипа=1
СОРТИРОВАТЬ ПО полю Марка;
>
Запрос 3.
Тип запроса: запрос на выборку из двух таблиц
Имя запроса: "ПоставщикиИЗакупки".
Цель запроса: Выбрать всех поставщиков из заданного города, у которых произведены закупки с заданным диапазоном дат размещения
QBE-запрос:
SQL-запрос:
SELECT DISTINCTROW Закупки.НомерЗаказа, Закупки.ОписаниеЗаказа,
Закупки.ДатаРазмещения, Сотрудники.Фамилия, Сотрудники.Имя
FROM Сотрудники RIGHT JOIN Закупки
ON Сотрудники.КодСотрудника = Закупки.КодСотрудника
WHERE (((Сотрудники.Фамилия)="Петров"))
ORDER BY Сотрудники.Фамилия, Сотрудники.Имя;
Пояснение к запросу:
<
ВЫБРАТЬ для НЕПОВТОРЯЮЩИХСЯ ЗАПИСЕЙ поля Закупки.НомерЗаказа,
Закупки.ОписаниеЗаказа, Закупки.ДатаРазмещения, Сотрудники.Фамилия, Сотрудники.Имя
ИЗ таблицы Сотрудники СВЯЗАННОЙ ПРАВОЙ ВНЕШНЕЙ СВЯЗЬЮ с таблицей Закупки ПО полям Сотрудники.КодСотрудника = Закупки.КодСотрудника
ГДЕ применяется условие отбора Сотрудники.Фамилия="Петров"
СОРТИРОВАТЬ ПО полям Сотрудники.Фамилия, Сотрудники.Имя;
>
Запрос 4.
Тип запроса: запрос на выборку из двух таблиц
Имя запроса: "ЗакупкиСотрудника".
Цель запроса: Выбрать все закупки, оформленные данным сотрудником
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;
>
Запрос на создание новой таблицы
Тип запроса: запрос на создание новой таблицы
Имя запроса: "НоваяТаблицаЗакупки".
Цель запроса: создание новой таблицы, содержащей сведения о закупках за последний месяц
Q
BE-запрос:
В бланк вывести все поля таблицы Закупки, по полю ДатаРазмещение в строке Условие отбора поставить условие:
>Date()-30, где
функция Date() определяет системную дату.
В
ыбрав
тип запроса Создание таблицы, необходимо
заполнить поле Имя таблицы
Появляющего диалогого окна Создание таблицы.
Запрос 7.
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.
