Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа БД №4.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.46 Mб
Скачать

Тип запроса: запрос на выборку из двух таблиц

Имя запроса: "ПоставщикиИЗакупки".

Цель запроса: Выбрать всех поставщиков из заданного города, у которых произведены закупки с заданным диапазоном дат размещения

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.