Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб раб БД МУ 1-6 .doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Запросы на выборку из одной и нескольких таблиц

Запрос 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]