Files
sql_advanced/lab2-5/task2.sql
T
Vitalii Litvinchuk 6deed0469a first commit
2026-05-04 23:15:09 +03:00

136 lines
4.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- #ALTER TABLE statement
-- Передумови
-- Для виконання роботи потрібна база даих little_lemon та такі таблиці в ній:
-- Customers та Bookings.
-- ##########################################
-- 1. Створіть базу даних, якщо не існує:
CREATE DATABASE IF NOT EXISTS little_lemon_1;
-- -------------------------------------------
-- 2. Оберіть базу даних: USE little_lemon;
USE little_lemon_1;
-- -------------------------------------------
-- 3. Створіть необхідні таблиці й наповніть їх запропонованими даними:
CREATE TABLE Customers (
CustomerID INT NOT NULL PRIMARY KEY,
FullName VARCHAR(100) NOT NULL,
PhoneNumber INT NOT NULL UNIQUE
);
-- -------------------------------------------
CREATE TABLE Bookings (
BookingID INT NOT NULL PRIMARY KEY,
BookingDate DATE NOT NULL,
TableNumber INT NOT NULL,
NumberOfGuests INT NOT NULL CHECK (NumberOfGuests <= 8),
CustomerID INT NOT NULL,
FOREIGN KEY (CustomerID) REFERENCES Customers (CustomerID) ON DELETE CASCADE ON UPDATE CASCADE
);
-- -------------------------------------------
INSERT INTO
Customers (
CustomerID,
FullName,
PhoneNumber
)
VALUES (
1,
"Vanessa McCarthy",
0757536378
),
(
2,
"Marcos Romero",
0757536379
),
(
3,
"Hiroki Yamane",
0757536376
),
(4, "Anna Iversen", 0757536375),
(5, "Diana Pinto", 0757536374);
-------------------------------------------
INSERT INTO
Bookings (
BookingID,
BookingDate,
TableNumber,
NumberOfGuests,
CustomerID
)
VALUES (10, '2021-11-11', 7, 5, 1),
(11, '2021-11-10', 5, 2, 2),
(12, '2021-11-10', 3, 2, 4);
-------------------------------------------
CREATE TABLE FoodOrders (
OrderID INT,
Quantity INT,
Cost Decimal(4, 2)
);
-- #######################################################
-- ##################### Завдання ######################
-- #######################################################
-- ##################### Завдання 1 ####################
-- Напишіть запит, який зробить поле OrderID первинним ключем таблиці FoodOrders.
ALTER TABLE FoodOrders
ADD CONSTRAINT pk_foodorders PRIMARY KEY (OrderID);
-- #######################################################
-- ##################### Завдання 2 ####################
-- Застосуйте обмеження NOT NULL для полів quantity та cost.
alter table FoodOrders
modify Quantity int not null,
modify Cost decimal(4, 2) not null;
SHOW COLUMNS FROM FoodOrders;
-- #######################################################
-- ##################### Завдання 3 ####################
-- Створіть два нових стовпців таблиці FoodOrders: OrderDate з типом даних DATE та CustomerID
-- типом даних INT. Для обох полів застосуйте обмеження NOT NULL.
-- CustomerID у таблиці FoodOrders зробіть зовнішнім ключем з посиланням на поле CustomerID
-- таблиці Customers.
ALTER TABLE FoodOrders
ADD OrderDate DATE NOT NULL,
ADD CustomerID INT NOT NULL,
ADD CONSTRAINT fk_foodorders_customers FOREIGN KEY (CustomerID) REFERENCES Customers (CustomerID);
SHOW COLUMNS FROM FoodOrders;
-- #######################################################
-- ##################### Завдання 4 ####################
-- Видаліть поле OrderDate з таблиці FoodOrder.
alter table FoodOrders drop column OrderDate;
SHOW COLUMNS FROM FoodOrders;
-- #######################################################
-- ##################### Завдання 5 ####################
-- Додати та перейменуйте стовпець Order_Status таблиці FoodOrders на DeliveryStatus.
alter table FoodOrders add column Order_Status varchar(20) not null;
alter table FoodOrders rename column Order_Status to DeliveryStatus;
alter table FoodOrders modify column DeliveryStatus boolean not null;
SHOW COLUMNS FROM FoodOrders;
-- #######################################################
-- ##################### Завдання 6 ####################
-- Змініть ім’я таблиці з FoodOrders на OrderDeliveryStatus.
alter table FoodOrders rename to OrderDeliveryStatus;
SHOW COLUMNS FROM OrderDeliveryStatus;
-- ########################################################