0% found this document useful (0 votes)
6 views12 pages

DBMS Week10

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views12 pages

DBMS Week10

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

CS262

DATABASE MANAGEMENT
SYSTEM

LABORATORY
ASSIGNMENT

NAME :-

KANZARIYA
AKSHAY KANAIYALAL.

ROLL NO :- 202251062

SECTION 1

WEEK 10
Question 1

➢ CODE FOR CREATE TABLE:-

CREATE DATABASE LAB10B;


USE LAB10B;

CREATE TABLE Categories (


category_id INT PRIMARY KEY,
category_name VARCHAR(255)
);
CREATE TABLE Products (
product_id INT PRIMARY KEY,
product_name VARCHAR(255),
category_id INT,
price DECIMAL(10, 2),
FOREIGN KEY (category_id) REFERENCES
Categories(category_id)
);
CREATE TABLE Customers(
customer_id INT PRIMARY KEY,
customer_name VARCHAR(200)
);
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES
Customers(customer_id)
);
CREATE TABLE Order_details (
order_id INT,
product_id INT,
quantity INT,
FOREIGN KEY (order_id) REFERENCES Orders(order_id),
FOREIGN KEY (product_id) REFERENCES
Products(product_id)
);

➢ CODE FOR INSERT DATA:-

INSERT INTO Categories (category_id, category_name) VALUES


(1, 'Electronics'),
(2, 'Clothing'),
(3, 'Books');
INSERT INTO Products (product_id, product_name, category_id, price)
VALUES
(101, 'Smartphone', 1, 699.99),
(102, 'Laptop', 1, 1299.99),
(103, 'T-shirt', 2, 19.99),
(104, 'Jeans', 2, 49.99),
(105, 'Python Crash Course', 3, 29.99),
(106, 'The Great Gatsby', 3, 9.99);

INSERT INTO Customers (customer_id, customer_name) VALUES


(1, 'AKSHAY KANZARIYA'),
(2, 'DIVYA KANZARIYA'),
(3, 'MAYUR KANZARIYA');

INSERT INTO Orders (order_id, customer_id, order_date) VALUES


(1, 1, '2024-04-01'),
(2, 2, '2024-04-05'),
(3, 3, '2024-04-10');

INSERT INTO Order_details (order_id, product_id, quantity) VALUES


(1, 101, 1),
(1, 104, 2),
(2, 103, 3),
(2, 105, 1),
(3, 102, 1),
(3, 106, 2);
➢ PRINT TABLE:-

SELECT * FROM Categories;

SELECT * FROM Products;

SELECT * FROM Customers;

SELECT * FROM Orders;

SELECT * FROM Order_details;

1.

2.
3.

4.

5.
➢ CODE FOR VIEW :-

CREATE VIEW monthly_sales AS


SELECT
p.product_id,
p.product_name,
EXTRACT(MONTH FROM o.order_date) AS month,
EXTRACT(YEAR FROM o.order_date) AS year,
SUM(od.quantity * p.price) AS total_sales
FROM
Orders o
JOIN
Order_details od ON o.order_id = od.order_id
JOIN
Products p ON od.product_id = p.product_id
GROUP BY
p.product_id,
p.product_name,
EXTRACT(MONTH FROM o.order_date),
EXTRACT(YEAR FROM o.order_date);

➢ PRINT TABLE:-

SELECT * FROM monthly_sales;

1.
Question 2

➢ CODE FOR CREATE TABLE:-

CREATE TABLE match1 (


Day DATE,
HomeTeam VARCHAR(255),
AwayTeam VARCHAR(255),
HomeGoal INT,
AwayGoal INT
);

CREATE TABLE STANDING (


Day DATE,

Team VARCHAR(255),
Score INT,
PRIMARY KEY (Day, Team)
);
➢ CODE FOR INSERT DATA:-

INSERT INTO match1 (Day, HomeTeam, AwayTeam, HomeGoal,


AwayGoal)
VALUES
('2024-01-05', 'Team A', 'Team B', 2, 1),
('2024-01-06', 'Team C', 'Team D', 0, 0),
('2024-01-07', 'Team A', 'Team D', 1, 4),
('2024-01-08', 'Team B', 'Team C', 3, 0),
('2024-01-09', 'Team A', 'Team C', 2, 2);

➢ CODE FOR TRIGGER :-

-- Trigger for home team victory


DELIMITER //
CREATE TRIGGER home_team_victory
AFTER INSERT ON MATCH1
FOR EACH ROW
BEGIN
IF NEW.HomeGoal > NEW.AwayGoal THEN

-- Update score for home team

INSERT INTO STANDING (Day, Team, Score)


VALUES (NEW.Day, NEW.HomeTeam, 3)
ON DUPLICATE KEY UPDATE Score = Score + 3;

-- Ensure the away team score is recorded as 0 (only if not already existing)

INSERT INTO STANDING (Day, Team, Score)


VALUES (NEW.Day, NEW.AwayTeam, 0)
ON DUPLICATE KEY UPDATE Score = Score;
END IF;
END;

-- Trigger for away team victory

DELIMITER //
CREATE TRIGGER away_team_victory
AFTER INSERT ON MATCH1
FOR EACH ROW
BEGIN
IF NEW.AwayGoal > NEW.HomeGoal THEN

-- Update score for away team

INSERT INTO STANDING (Day, Team, Score)


VALUES (NEW.Day, NEW.AwayTeam, 3)
ON DUPLICATE KEY UPDATE Score = Score + 3;

-- Ensure the home team score is recorded as 0 (only if not already existing)

INSERT INTO STANDING (Day, Team, Score)


VALUES (NEW.Day, NEW.HomeTeam, 0)
ON DUPLICATE KEY UPDATE Score = Score;
END IF;
END;
//
DELIMITER ;

-- Trigger for tie

DELIMITER //
CREATE TRIGGER tie_match
AFTER INSERT ON MATCH1
FOR EACH ROW
BEGIN
IF NEW.HomeGoal = NEW.AwayGoal THEN

-- Update score for both home and away teams

INSERT INTO STANDING (Day, Team, Score)


VALUES (NEW.Day, NEW.HomeTeam, 1)
ON DUPLICATE KEY UPDATE Score = Score + 1;
INSERT INTO STANDING (Day, Team, Score)
VALUES (NEW.Day, NEW.AwayTeam, 1)
ON DUPLICATE KEY UPDATE Score = Score + 1;
END IF;

END;

➢ PRINT TABLE:-

SELECT
Team,
SUM(Score) AS TotalScore
FROM
STANDING
GROUP BY
Team
ORDER BY
TotalScore DESC;

SELECT * FROM match1;


SELECT * FROM standing;
1.

2.

3.

END

You might also like