136 lines
4.6 KiB
SQL
136 lines
4.6 KiB
SQL
-- #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;
|
||
-- ######################################################## |