База данных «Швейные товары»
Автор: Алексей ХЗ • Май 20, 2020 • Реферат • 4,755 Слов (20 Страниц) • 374 Просмотры
Задание
Основная база данных «Швейные товары». Сформировать несколько таблиц. Предусмотреть: ввод данных, редактирование, просмотр данных. Реализовать следующие типы запросов с использованием нескольких таблиц:
- Для каждого вида швейных товаров указать сведения о нем (наименование, дату выпуска, поставщик, цена, дата продажи и т.п.).
- Для каждого вида швейных товаров выдать список, отсортированный:
- По дате выпуска
- В алфавитном порядке
- По стоимости
- По дате продажи
- Найти самый дорогой товар, самый дешевый, среднюю стоимость по каждому виду и в целом.
- Найти швейные товары с ценой в заданных пределах (предусмотреть ввод цены с клавиатуры) по каждому виду и в целом.
- Найти все товары заданного производителя (выбор).
- Найти долю дешевых товаров (меньше заданного, ввод ограничения) от общего числа товаров.
- Найти все товары с заданной датой выпуска (ввод даты).
- Найти все товары, чья дата продажи находится в заданных пределах (ввод интервала) для заданного производителя (выбор производителя) и в целом.
- Найти долю товаров, проданной за определенный период (ввод периода) от общего времени продаж.
- Найти самый популярный товар (продано наибольшее количество) для заданной категории (для мужчин, женщин, детской) (ввод) и в целом.
- Найти все товары, поступившие от заданного поставщика, чья стоимость больше, чем стоимость заданного товара (выбор наименования), поступившего из заданной страны (выбор страны).
- Найти долю дешевого товара (чья стоимость меньше заданной, ввод стоимости) поступившего от заданного поставщика (выбор поставщика) и в целом.
- Найти среднюю стоимость товара, проданного за определенный промежуток времени (ввод интервала).
- Найти все товары, чья стоимость выше, чем средняя стоимость товара заданного производителя (выбор производителя).
- Определить долю регулярных поставок заданного товара (выбор) по заданной дате отгрузки (ввод) от общего числа товаров.
- Найти товар, который лучше всего раскупают, указать параметры (стоимость, производитель, для кого предназначен и т.д.).
Графическое представление базы данных и структуры таблиц
[pic 1][pic 2][pic 3][pic 4][pic 5][pic 6][pic 7][pic 8][pic 9][pic 10][pic 11][pic 12][pic 13][pic 14][pic 15][pic 16][pic 17][pic 18][pic 19][pic 20][pic 21]
Ход работы
Создание Базы Данных
CREATE DATABASE rgr;
Создание таблиц и пользовательского типа
CREATE TABLE countries (
id SERIAL UNIQUE,
name char(20)
);
CREATE TABLE firms (
id SERIAL UNIQUE,
name char(20)
);
CREATE TABLE categories (
id SERIAL UNIQUE,
name char(20)
);
CREATE TABLE providers (
id SERIAL UNIQUE,
name char(20),
country_id integer NOT NULL,
CONSTRAINT country_exists FOREIGN KEY (country_id) REFERENCES countries (id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE models (
id SERIAL UNIQUE,
firm_id integer NOT NULL,
name char(20),
cat_id integer NOT NULL,
CONSTRAINT models_pkey PRIMARY KEY (id),
CONSTRAINT firm_exists FOREIGN KEY (firm_id) REFERENCES firms (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT cat_exists FOREIGN KEY (cat_id) REFERENCES categories (id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE tovar (
id SERIAL UNIQUE,
model_id integer NOT NULL,
pro_id integer NOT NULL,
date_out date NOT NULL,
date_sell date NOT NULL,
cost integer NOT NULL,
CONSTRAINT tovar_pkey PRIMARY KEY (id),
CONSTRAINT model_exists FOREIGN KEY (model_id) REFERENCES models (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT pro_exists FOREIGN KEY (pro_id) REFERENCES providers (id) ON DELETE CASCADE ON UPDATE CASCADE,
CHECK (date_out<=date_sell)
);
Содержание таблиц баз данных
Ограничение вывода – 10 записей
rgr=# select * from countries;
id | name
----+----------------------
1 | RUSSIA
2 | USA
3 | CHINA
4 | JAPAN
5 | FRANCE
6 | TAIVAN
...