Выполнить в SQLite (MySQL) задания по SQL
Лабораторная работа
в среде программирования SQL
Среда программирования: SQL
Название работы: Выполнить в SQLite (MySQL) задания по SQL
Вид работы: Лабораторная работа
Описание: Выполнить в SQLite (MySQL) задания по SQL.
Таблицы
Таблица S. «Поставщики»
НОМЕР_ПОСТАВЩИКА ФАМИЛИЯ СОСТОЯНИЕ ГОРОД
S1 Смит 20 Лондон
S2 Джонс 10 Париж
S3 Блейк 30 Париж
S4 Кларк 20 Лондон
S5 Адамс 30 Атенс
Таблица P. «Детали»
НОМЕР_ДЕТАЛИ НАЗВАНИЕ Цвет ВЕС ГОРОД
P1 Гайка Красный 12 Лондон
P2 Болт Зеленый 17 Париж
P3 Винт Голубой 17 Рим
P4 Винт Красный 14 Лондон
P5 Кулачок Голубой 12 Париж
P6 Блюм Красный 19 Лондон
Таблица J. «Изделия»
НОМЕР_ИЗДЕЛИЯ НАЗВАНИЕ ГОРОД
J1 Сортировщик Париж
J2 Перфоратор Рим
J3 Считыватель Атенс
J4 Консоль Атенс
J5 Сортировочно-подборочная машина Лондон
J6 Терминал Осло
J7 Лента Лондон
Таблица SPJ. «Поставка»
НОМЕР_ПОСТАВЩИКА НОМЕР_ДЕТАЛИ НОМЕР_ИЗДЕЛИЯ КОЛИЧЕСТВО
S1 P1 J1 200
S1 P1 J4 700
S2 P3 J1 400
S2 P3 J2 200
S2 P3 J3 200
S2 P3 J4 500
S2 P3 J5 600
S2 P3 J6 400
S2 P3 J7 800
S2 P5 J2 100
S3 P3 J1 200
S3 P4 J2 500
S4 P6 J3 300
S4 P6 J7 300
S5 P2 J2 200
S5 P2 J4 100
S5 P5 J5 500
S5 P5 J7 100
S5 P6 J2 200
S5 P1 J4 100
S5 P3 J4 200
S5 P4 J4 800
S5 P5 J4 400
S5 P6 J4 500
Таблица «Поставщики»
CREATE TABLE Supplier (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name VARCHAR(255) NOT NULL COLLATE NOCASE,
state INTEGER NOT NULL,
city VARCHAR(63) NOT NULL COLLATE NOCASE
);
-- Таблица «Детали»
CREATE TABLE Detail (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name VARCHAR(255) NOT NULL COLLATE NOCASE,
color VARCHAR(31) NOT NULL COLLATE NOCASE,
weight INTEGER NOT NULL,
city VARCHAR(63) NOT NULL COLLATE NOCASE
);
-- Таблица «Изделия»
CREATE TABLE Product (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name VARCHAR(255) NOT NULL COLLATE NOCASE,
city VARCHAR(63) NOT NULL COLLATE NOCASE
);
-- Таблица «Поставка»
CREATE TABLE Delivery (
supplier INTEGER NOT NULL REFERENCES Supplier,
detail INTEGER NOT NULL REFERENCES Detail,
product INTEGER NOT NULL REFERENCES Product,
amount INTEGER NOT NULL,
PRIMARY KEY (supplier, detail, product)
);
INSERT INTO Supplier (id, name, state, city) VALUES
(1, 'Смит', 20, 'Лондон'
),
(2, 'Джонс', 10, 'Париж');
-- 1.1. Выдать номера поставщиков из Парижа, имеющих состояние больше 20.
SELECT id
FROM Supplier
WHERE state > 20;
-- 2.1. Выдать сведения о деталях, вес которых находится в диапазоне от 16 до 19.
SELECT id, name, color, city
FROM Detail
WHERE weight BETWEEN 16 TO 19;
-- 3.1. Выдать все триплеты «номер поставщика», «номер детали», «номер изделия» такие, что образующие каждый из
них поставщик, деталь и изделие являются соразмещенными (находятся в одном городе).
SELECT
dd.supplier,
dd.delivery,
dd.product
FROM Delivery AS dd
INNER JOIN Supplier AS s ON dd.supplier = s.id
INNER JOIN Detail AS d ON dd.delivery = d.id
INNER JOIN Product AS p ON dd.product = p.id
WHERE s.city = d.city AND s.city = p.city;
-- 4.1. Выдать фамилии поставщиков, которые поставляют деталь Р2.
SELECT DISTINCT
name
FROM Supplier
WHERE id IN (
SELECT DISTINCT supplier
FROM Delivery
WHERE detail = 2
);
-- 5.1. Выдать общее количество поставщиков
SELECT COUNT(*)
FROM Supplier;
Год: 2021
Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2021-м году, в рамках этого заказа была разработана программа в среде программирования SQL. Если у Вас похожее задание на программу, которую нужно написать на SQL, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2021-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".
Viber:
+79374242235
Telegram: kursovikcom ВКонтакте: kursovikcom WhatsApp +79374242235 E-mail: info@kursovik.com Skype: kursovik.com |