0% found this document useful (0 votes)
4 views

DBMS

The document outlines the creation and management of a vehicle rental system database, including the structure of tables for vehicles, customers, rentals, employees, and payments. It details various SQL commands for creating, altering, and querying the database, as well as performing data manipulation operations such as inserts, updates, and deletes. Additionally, it covers SQL concepts like selection, projection, renaming, union, intersection, and cartesian product.
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)
4 views

DBMS

The document outlines the creation and management of a vehicle rental system database, including the structure of tables for vehicles, customers, rentals, employees, and payments. It details various SQL commands for creating, altering, and querying the database, as well as performing data manipulation operations such as inserts, updates, and deletes. Additionally, it covers SQL concepts like selection, projection, renaming, union, intersection, and cartesian product.
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/ 8

​ ​ ​ ​ ​ Practical 2

CREATE DATABASE vehicle_rental_system;


USE vehicle_rental_system;

CREATE TABLE vehicles (


vehicle_id INT PRIMARY KEY AUTO_INCREMENT,
model VARCHAR(100),
brand VARCHAR(100),
type VARCHAR(50),
availability BOOLEAN DEFAULT TRUE
);
CREATE TABLE customers (
customer_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
phone_number VARCHAR(15),
email VARCHAR(100),
address TEXT
);
CREATE TABLE rentals (
rental_id INT PRIMARY KEY AUTO_INCREMENT,
customer_id INT,
vehicle_id INT,
rent_date DATE,
return_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(customer_id),
FOREIGN KEY (vehicle_id) REFERENCES vehicles(vehicle_id)
);
CREATE TABLE employees (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
full_name VARCHAR(100),
position VARCHAR(50),
hire_date DATE,
salary DECIMAL(10, 2)
);

CREATE TABLE payments (


payment_id INT PRIMARY KEY AUTO_INCREMENT,
rental_id INT,
payment_date DATE,
amount DECIMAL(10, 2),
payment_method VARCHAR(30),
FOREIGN KEY (rental_id) REFERENCES rentals(rental_id)
);
SHOW TABLES;
DROP TABLE rentals;
DROP TABLE customers;
DROP TABLE vehicles;
Practical 3

SHOW TABLES;
ALTER TABLE vehicles ADD COLUMN color VARCHAR(30);
ALTER TABLE customers
ADD COLUMN gender VARCHAR(10),
ADD COLUMN dob DATE;
ALTER TABLE vehicles DROP COLUMN color;
ALTER TABLE customers CHANGE COLUMN phone_number contact_number
VARCHAR(15);
ALTER TABLE employees MODIFY salary DECIMAL(12, 2);
ALTER TABLE rentals ALTER COLUMN return_date SET DEFAULT NULL;
ALTER TABLE rentals ALTER COLUMN return_date DROP DEFAULT;
ALTER TABLE vehicles RENAME TO fleet;
ALTER TABLE payments ADD PRIMARY KEY (payment_id);
ALTER TABLE payments DROP PRIMARY KEY;
ALTER TABLE rentals
ADD CONSTRAINT fk_customer FOREIGN KEY (customer_id) REFERENCES
customers(customer_id);
ALTER TABLE rentals DROP FOREIGN KEY fk_customer;
ALTER TABLE employees ADD CONSTRAINT unique_email UNIQUE (email);
ALTER TABLE employees DROP INDEX unique_email;
ALTER TABLE customers ADD INDEX idx_name (name);
ALTER TABLE customers DROP INDEX idx_name;
ALTER TABLE vehicles MODIFY registration_no VARCHAR(20) AFTER model;
ALTER TABLE employees CHANGE full_name name VARCHAR(100);
ALTER TABLE employees
ADD CONSTRAINT chk_salary CHECK (salary > 0);
SHOW TABLES;
Practical 4

SELECT * FROM vehicles;


SELECT brand, model FROM vehicles;
SELECT * FROM customers WHERE address LIKE '%Mumbai%';
SELECT * FROM vehicles WHERE availability = TRUE;
SELECT * FROM vehicles ORDER BY brand ASC;
SELECT * FROM rentals WHERE MONTH(rent_date) = 3 AND YEAR(rent_date) = 2024;
SELECT COUNT(*) AS total_vehicles FROM vehicles;
SELECT r.rental_id, c.name, r.rent_date
FROM rentals r
JOIN customers c ON r.customer_id = c.customer_id;
SELECT * FROM employees ORDER BY salary DESC LIMIT 5;
SELECT vehicle_id, COUNT(*) AS total_rentals
FROM rentals
GROUP BY vehicle_id;
INSERT INTO vehicles (brand, model, type, registration_no)
VALUES ('Toyota', 'Innova', 'SUV', 'MH12XY9876');
INSERT INTO customers (name, phone_number, email, address)
VALUES ('Rahul Sharma', '9876543210', '[email protected]', 'Pune, Maharashtra');
INSERT INTO rentals (customer_id, vehicle_id, rent_date, return_date)
VALUES (1, 2, '2024-04-01', '2024-04-05');

INSERT INTO employees (full_name, position, hire_date, salary)


VALUES ('Nikita Mehta', 'Manager', '2023-11-01', 50000.00);
INSERT INTO customers (name, phone_number, email, address)
VALUES
('Sagar Patil', '9876000011', '[email protected]', 'Mumbai'),
('Riya Desai', '9822001122', '[email protected]', 'Thane');
INSERT INTO payments (rental_id, payment_date, amount, payment_method)
VALUES (3, '2024-04-01', 4500.00, 'Credit Card');
INSERT INTO vehicles (brand, model, type, registration_no)
VALUES ('Ford', 'EcoSport', 'SUV', 'MH14EF5678');
INSERT INTO customers (name, phone_number, email, address)
VALUES ('Amit Jain', '9876500001', NULL, 'Nashik');
INSERT INTO rentals (customer_id, vehicle_id, rent_date)
VALUES (2, 1, '2024-04-05');
INSERT INTO payments (rental_id, payment_date, amount, payment_method)
VALUES (5, '2024-04-08', 3200.00, 'Cash');
DELETE FROM customers WHERE customer_id = 10;
DELETE FROM rentals WHERE return_date IS NULL;
DELETE FROM vehicles WHERE registration_no = 'MH12XY9876';
DELETE FROM vehicles WHERE availability = FALSE;
DELETE FROM customers WHERE address LIKE '%Nashik%';
DELETE FROM payments WHERE YEAR(payment_date) < 2022;
DELETE FROM employees WHERE salary < 20000;
DELETE FROM rentals WHERE vehicle_id = 4;
DELETE c1 FROM customers c1
JOIN customers c2
ON c1.phone_number = c2.phone_number AND c1.customer_id > c2.customer_id;
DELETE FROM customers WHERE name LIKE 'Test%';
UPDATE customers
SET phone_number = '9999988888'
WHERE customer_id = 3;
UPDATE vehicles SET availability = TRUE;
UPDATE rentals
SET return_date = '2024-04-07'
WHERE rental_id = 2;
UPDATE employees
SET salary = salary * 1.10;
UPDATE vehicles
SET availability = FALSE
WHERE vehicle_id = 5;
UPDATE customers
SET email = '[email protected]'
WHERE name = 'Rahul Sharma';
UPDATE payments
SET amount = amount - 500
WHERE payment_method = 'Cash';
UPDATE rentals
SET return_date = CURDATE()
WHERE return_date IS NULL;
UPDATE employees
SET position = 'Senior Manager'
WHERE full_name = 'Nikita Mehta';
UPDATE vehicles
SET brand = 'Hyundai', model = 'Creta'
WHERE vehicle_id = 6;
​ ​ ​ ​ ​ Practical 5
​ ​ ​ ​ ​ Practical 6

1. SELECTION (σ) — Filter Rows

SELECT * FROM customers WHERE address LIKE '%Mumbai%';

SELECT * FROM vehicles WHERE availability = TRUE;

SELECT * FROM employees WHERE salary > 30000;

SELECT * FROM rentals


WHERE MONTH(rent_date) = 3 AND YEAR(rent_date) = 2024;

SELECT * FROM payments WHERE payment_method = 'Cash';

2. PROJECTION (π) — Select Columns

SELECT name, email FROM customers;

SELECT brand, model FROM vehicles;

SELECT full_name, salary FROM employees;

SELECT rent_date, return_date FROM rentals;

SELECT amount, payment_method FROM payments;

3. RENAME (ρ) — Use Aliases

SELECT c.name, c.phone_number


FROM customers AS c;

SELECT v.brand, v.registration_no


FROM vehicles AS v;

SELECT r.rental_id, c.name


FROM rentals AS r
JOIN customers AS c ON r.customer_id = c.customer_id;

SELECT e.full_name AS EmployeeName, e.position AS Role


FROM employees AS e;

SELECT p.amount AS TotalPaid, p.payment_method AS Method


FROM payments AS p;
4. UNION (R ∪ S) — Combine Rows

SELECT name, email FROM customers


UNION
SELECT name, email FROM customer_archive;

SELECT vehicle_id, brand FROM vehicles WHERE availability = TRUE


UNION
SELECT vehicle_id, brand FROM vehicles WHERE availability = FALSE;

5. INTERSECTION (R ∩ S) — Common Rows

SELECT name, email


FROM customers
WHERE (name, email) IN (
SELECT name, email FROM customer_archive
);

-- Using INNER JOIN as intersection


SELECT c.name, c.email
FROM customers c
INNER JOIN customer_archive ca
ON c.name = ca.name AND c.email = ca.email;

6. CARTESIAN PRODUCT (R × S)
SELECT c.name AS Customer, v.brand AS VehicleBrand
FROM customers c, vehicles v;
SELECT e.full_name, v.model
FROM employees e, vehicles v;
SELECT c.name, p.amount
FROM customers c, payments p;

You might also like