ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 13
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Ход работы
ЗАПРОС №1. Создайте запрос на добавление данных о новом сотруднике в таблицу employees (вставьте данные о себе).
SELECT * FROM employees;
INSERT INTO employees (employee_id,last_name,first_name,title,title_of_courtesy,birth_date,hire_date,address,city,postal_code,country,home_phone)
VALUES (10,'Vertikova','Polina','Andreevna','Mrs.','2002-06-13','2023-03-03','Malisheva 15','Ekaterinburg','231323','Russia',' 7(456)752-74-14')
Результат
ЗАПРОС №2. Переоформите все заказы клиента (по вариантам) на нового сотрудника, сделав запрос на обновление данных таблицы orders.
SELECT * FROM orders WHERE employee_id = 10;
UPDATE orders SET employee_id = 10 FROM customers
WHERE orders.customer_id =
(SELECT customer_id FROM customers WHERE company_name = 'Ana Trujillo Emparedados y helados');
Результат
ЗАПРОС №3. . Cоздайте запрос на добавление нового заказа клиенту (по вариантам из запроса 2).
INSERT INTO orders
VALUES (11078, 'ANATR',10)
Результат
ЗАПРОС №4. Создайте запрос на добавление к созданному заказу состава заказа (таблица orser details), который полностью дублирует позиции первого заказа клиента.
INSERT INTO order_details
VALUES (11078, 69,28.8,1,0),
(11078, 70,12,5,0)
Результат
ЗАПРОС №5. Все заказы сотрудника (по вариантам) переоформите на нового сотрудника. Id_Suyama Michael = 4
UPDATE orders SET employee_id = 10 WHERE employee_id = 6
Результат
ЗАПРОС №6. . Создайте запрос на удаление о сотруднике (по вариантам запроса 5) из таблицы employees.
DELETE FROM employee_territories WHERE employee_id = 4;
DELETE FROM employees WHERE employee_id = 4
Результат
ЗАПРОС №7.
Компания NORHTWIND решила создать свой склад продукции, что привило к необходимости модифицировать информационную систему. Необходимо хранить следующие данные: заявки на поставку продукции поставщику (Suppliers), детали поставки, с указание
количества заказанной и поставленной продукции, вести учет имеющейся на складе продукции.
Для этого необходимо создать таблицы:
1) OrdersSup – заказы поставщику, содержащую сведенья о сотруднике сделавшем заказ (Employees), поставщике продукции (Suppliers), дате заказа.
2) OrdersSup Details – состав заказа, содержащую сведенья о заказываемой продукции (Products) и ее количестве, а также данные о количестве поступившей по заявке продукции и дате поставки.
3) Storage – таблицу о количестве имеющейся на складе продукции (Products).
Создайте запросы для создания этих таблиц и наложите необходимые ограничения для обеспечения связей между таблицами.
Данные в таблице Storage будут модифицироваться с помощью триггеров.
1)
CREATE TABLE OrdersSup
(employee_id smallint NOT NULL,
supplier_id smallint NOT NULL,
sup_date date
)
ALTER TABLE ONLY OrdersSup
ADD CONSTRAINT pk_OrdersSup PRIMARY KEY (employee_id, supplier_id);
ALTER TABLE ONLY OrdersSup
ADD CONSTRAINT fk_OrdersSup_employees FOREIGN KEY (employee_id) REFERENCES
Employees;
ALTER TABLE ONLY OrdersSup
ADD CONSTRAINT fk_OrdersSup_suppliers FOREIGN KEY (supplier_id) REFERENCES
suppliers
2)
CREATE TABLE OrdersSup_Details
(product_id smallint NOT NULL,
quantity smallint NOT NULL,
Sup_Details_date date
);
ALTER TABLE ONLY OrdersSup_Details
ADD CONSTRAINT pk_OrdersSup_Details PRIMARY KEY (product_id);
ALTER TABLE ONLY OrdersSup_Details
ADD CONSTRAINT fk_OrdersSup_Details_products FOREIGN KEY (product_id)
REFERENCES products
3)
CREATE TABLE Product_Storage
(product_id smallint NOT NULL,
quantity smallint NOT NULL
)
ALTER TABLE ONLY Product_Storage
ADD CONSTRAINT pk_Product_Storage PRIMARY KEY (product_id)
ALTER TABLE ONLY Product_Storage
ADD CONSTRAINT fk_Product_Storage_products FOREIGN KEY (product_id) REFERENCES
products
ЗАПРОС №8. Выяснить по сумме продаж, какие категории товаров пользуются наибольшим спросом.
ALTER TABLE order_details ADD discount_price real
UPDATE order_details set discount_price = unit_price * (1 - discount)
Результат
ЗАПРОС №9. Создайте запрос к таблице orders на добавление поля для проставления отметки об отгрузке товара. Значение не может быть неопределенным и должно принимать одно из значений 0 (заказ не отгружен) или 1 (заказ отгружен).
ALTER TABLE orders ADD Shipment bit NOT NULL DEFAULT '0' CHECK(Shipment IN ('1','0'))