DBMS Lab answer
DBMS Lab answer
a:
use db1;
);
-- Insert data
-- Update salary
UPDATE Employee
-- Delete a record
Ex 1.b:
use db1;
DELIMITER //
RETURNS DECIMAL(10,2)
BEGIN
END;
//
DELIMITER ;
SELECT GetBonus(50000.00)
DELIMITER //
IN empId INT,
IN empName VARCHAR(100),
IN empAge INT,
IN empEmail VARCHAR(100),
IN empSalary DECIMAL(10,2)
BEGIN
END;
//
DELIMITER ;
call InsertEmployee(112,"Dinesh",19,"[email protected]",20000);
Ex 2.a:
use db1;
);
);
dept_id INT,
);
enrollment_date DATE,
grade CHAR(2),
);
-- Insert Departments
INSERT INTO Departments (dept_id, dept_name) VALUES
(2, 'Mathematics');
-- Insert Students
-- Insert Courses
-- Insert Enrollments
Ex 2.b:
CREATE TABLE Accounts (
);
CREATE TABLE Transactions (
from_account INT,
to_account INT,
);
(1, 5000.00),
(2, 3000.00);
DELIMITER //
IN from_acc INT,
IN to_acc INT,
IN amt DECIMAL(10,2)
BEGIN
START TRANSACTION;
SELECT balance INTO from_balance FROM Accounts WHERE account_id = from_acc FOR UPDATE;
END IF;
UPDATE Accounts
-- Credit to receiver
UPDATE Accounts
-- Record transaction
COMMIT;
ELSE
ROLLBACK;
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Transfer failed: insufficient balance or account
missing';
END IF;
END;
//
DELIMITER ;
Ex 3.a:
use db1;
FROM Transactions
GROUP BY from_account;
FROM Transactions
GROUP BY to_account;
FROM Transactions
GROUP BY to_account;
Ex 3.b:
DELIMITER //
BEGIN
SET reversed_num = 0;
END WHILE;
END //
DELIMITER ;
Ex 4.a:
-- Customer table
phone VARCHAR(15),
address VARCHAR(255)
);
-- Saving_Account table
customer_id INT,
opened_date DATE,
ON DELETE CASCADE
ON UPDATE CASCADE
);
-- Loan_Account table
customer_id INT,
start_date DATE,
due_date DATE,
ON DELETE CASCADE
ON UPDATE CASCADE
);
-- Insert customers
FROM Customer c
FROM Customer c
JOIN Loan_Account l ON c.customer_id = l.customer_id;
Ex4.b:
DELIMITER //
BEGIN
-- Insert 50 Customers
WHILE i <= 50 DO
VALUES (
i,
CONCAT('Customer_', i),
CONCAT('customer', i, '@example.com'),
CONCAT('Address_', i)
);
SET i = i + 1;
END WHILE;
SET i = 1;
WHILE i <= 50 DO
VALUES (
i,
i,
CURDATE()
);
SET i = i + 1;
END WHILE;
SET i = 1;
WHILE i <= 50 DO
VALUES (
i,
i,
CURDATE(),
);
SET i = i + 1;
END WHILE;
END;
DELIMITER ;
CALL InsertDummyBankData();
Ex 5.a:
-- Student Table
class VARCHAR(20)
);
-- Subject_Mark Table
);
student_id INT,
subject_id INT,
marks INT,
ON DELETE CASCADE,
ON DELETE CASCADE
);
-- Students
-- Subjects
(102, 'Science'),
(103, 'English');
FROM Result
GROUP BY student_id;
FROM Result
GROUP BY student_id;
FROM Result
GROUP BY student_id;
FROM Result
GROUP BY student_id;
Ex 6.a:
-- Table: Train
source_station VARCHAR(100),
destination_station VARCHAR(100),
departure_time TIME,
arrival_time TIME
);
-- Table: Passenger
name VARCHAR(100),
age INT,
gender VARCHAR(10)
);
-- Table: Reservation
train_id INT,
passenger_id INT,
date_of_journey DATE,
seat_no VARCHAR(10),
class_type VARCHAR(20),
);
-- Trains
-- Passengers
-- Reservations
WHERE train_id IN (
WHERE passenger_id IN (
);
WHERE train_id IN (
WHERE passenger_id = (
);
Ex 6.b:
DELIMITER //
CREATE PROCEDURE Find_Factorial(IN n INT)
BEGIN
IF n < 0 THEN
ELSE
WHILE i <= n DO
SET i = i + 1;
END WHILE;
END IF;
END;
//
DELIMITER ;
Ex 7.a:
-- Flights Table
flight_name VARCHAR(100),
source VARCHAR(100),
destination VARCHAR(100),
departure_time TIME,
arrival_time TIME
);
-- Passengers Table
name VARCHAR(100),
age INT,
gender VARCHAR(10)
);
-- Reservations Table
passenger_id INT,
flight_id INT,
seat_no VARCHAR(10),
);
-- Flights
-- Passengers
SELECT
p.passenger_id,
p.name,
r.class_type,
f.flight_name,
f.source,
f.destination
FROM Reservations r
Ex 7.b:
ALTER TABLE Reservations
DELIMITER //
IN in_passenger_id INT,
IN in_flight_id INT,
IN in_seat_no VARCHAR(10),
IN in_class_type VARCHAR(20),
IN in_base_fare DECIMAL(10,2)
BEGIN
END IF;
END IF;
END;
//
DELIMITER ;
Ex 9.a:
-- Student Table
name VARCHAR(100),
age INT
);
-- Course Table
course_name VARCHAR(100),
);
-- Students
FROM Student s
FROM Student s
FROM Course c
FROM Student s
UNION
FROM Student s
Ex 9.b:
DELIMITER //
DELIMITER //
ELSE
END IF;
END;
//
DELIMITER ;
CALL GetMonthName(1);
10.a)DCL Commands to allow user
USE my_company_db;
);
10.b)XML Database and validate using xml schema Refer DBMS Record
USE bank_db;
name VARCHAR(100),
balance DECIMAL(10,2)
);
('Alice', 100.00),
('Bob', 10.00);
-- Start transaction
START TRANSACTION;
SET SQL_SAFE_UPDATES = 0;
SAVEPOINT after_alice_deduction;
UPDATE accounts
COMMIT;
OUTPUT:
1 Alice 50
2 Bob 60
USE join_example;
-- Table: students
name VARCHAR(100),
class_id INT
);
-- Table: classes
class_name VARCHAR(100)
);
-- Insert data
INSERT INTO students VALUES
(101, 'Math'),
(102, 'Science'),
(103, 'History');
-- Natural join
SELECT *
FROM students
-- Equi join
FROM students
-- Outer join
FROM students
FROM students
--Natural join
--Equi join
Name class_name
Alice Math
Bob Science
Name class_name
Alice Math
Bob Science
Charile Null
Name class_name
Alice Math
Bob Science
Null History
USE big_school;
-- Students table
name VARCHAR(100),
age INT,
class_id INT
);
-- Classes table
class_name VARCHAR(100)
);
INSERT INTO classes VALUES (1, 'Math'), (2, 'Science'), (3, 'English');
-- View
FROM students s
-- index
DELIMITER $
BEGIN
WHILE i <= n DO
SET i = i + 1;
END WHILE;
END $
DELIMITER ;
CALL factorial_proc(5);
USE toy_company;
category VARCHAR(50),
cost DECIMAL(10,2)
);
FROM products
GROUP BY category
FROM products
FROM products
GROUP BY category
USE toy_company;
DELIMITER $
CREATE PROCEDURE upsert_product (
IN p_name VARCHAR(100),
IN p_category VARCHAR(50),
IN p_cost DECIMAL(10,2)
BEGIN
FROM products
UPDATE products
ELSE
END IF;
END$
DELIMITER ;
15.a)Employee Database
USE company;
department VARCHAR(50),
);
UPDATE employees
UPDATE employees
17.a)Student Database
USE simple_student_db;
);
student_id INT,
subject VARCHAR(50),
ON DELETE CASCADE
ON UPDATE CASCADE
);
('Alice', '[email protected]'),
('Bob', '[email protected]');
FROM students s
-- Deleting Alice will also delete her marks automatically due to ON DELETE CASCADE
USE banking;
name VARCHAR(100),
balance DECIMAL(10,2)
);
('Alice', 1000.00),
('Bob', 500.00);
-- Start transaction
START TRANSACTION;
UPDATE accounts
-- Savepoint
SAVEPOINT after_alice;
-- Simulate error
-- Finalize transaction
COMMIT;
18.a)Refer 11.a)
18.b)Refer 11.b)
19.a)Refer 1.b)
19.b)Refer 11.a)