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

Creation of Database and Related Tables Sequence Order

The document outlines the SQL commands for creating a database named 'vaish' and its associated tables, including Hostels, Students, Rooms, and others, with specific foreign key dependencies. It also includes instructions for inserting data into these tables and altering them to add foreign keys after initial creation. Additionally, it provides a second set of commands for a database named 'hostel' with similar structures and data insertion commands.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Creation of Database and Related Tables Sequence Order

The document outlines the SQL commands for creating a database named 'vaish' and its associated tables, including Hostels, Students, Rooms, and others, with specific foreign key dependencies. It also includes instructions for inserting data into these tables and altering them to add foreign keys after initial creation. Additionally, it provides a second set of commands for a database named 'hostel' with similar structures and data insertion commands.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Creation of database and related tables sequence order

create database vaish;


use vaish;

-- 1. Hostels table
-- No foreign key dependencies (warden_id references Wardens, which can be
created later)
CREATE TABLE Hostels (
hostel_id INT PRIMARY KEY AUTO_INCREMENT,
hostel_name VARCHAR(50) NOT NULL,
total_rooms INT,
warden_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
-- Note: Foreign key for warden_id is omitted temporarily to avoid dependency
on Wardens
);

-- 2. Students table
-- Depends on Hostels (hostel_id) and Rooms (room_id), but Rooms depends on
Students, so we handle circularity
CREATE TABLE Students (
student_id INT PRIMARY KEY,
student_name VARCHAR(100) NOT NULL,
roll_number VARCHAR(20) UNIQUE NOT NULL,
branch ENUM('CS', 'ME', 'EE', 'CE') NOT NULL,
year ENUM('1', '2', '3', '4') NOT NULL,
hostel_id INT,
room_id INT,
date_of_birth DATE,
gender VARCHAR(10) DEFAULT 'FEMALE',
contact_number VARCHAR(10) UNIQUE,
email_address VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id) ON DELETE SET NULL
-- Note: Foreign key for room_id is omitted temporarily to avoid dependency
on Rooms
);

-- 3. Rooms table
-- Depends on Hostels (hostel_id) and Students (student_id)
CREATE TABLE Rooms (
room_id INT PRIMARY KEY AUTO_INCREMENT,
hostel_id INT,
room_number VARCHAR(10) NOT NULL,
floor VARCHAR(20),
capacity INT DEFAULT 2,
room_type ENUM('AC', 'Non-AC') DEFAULT 'Non-AC',
status ENUM('Vacant', 'Occupied', 'Maintenance') DEFAULT 'Vacant',
maintenance_issue TEXT,
maintenance_est_completion DATE,
student_id INT,
FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id) ON DELETE
CASCADE,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE SET
NULL
);

-- 4. Students_Login table
-- Depends on Students (student_id), corrected foreign key
CREATE TABLE Students_Login (
login_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT UNIQUE,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE
CASCADE
);

-- Add missing foreign key constraints after all tables are created
ALTER TABLE Hostels
ADD FOREIGN KEY (warden_id) REFERENCES Wardens(warden_id) ON DELETE
SET NULL;

ALTER TABLE Students


ADD FOREIGN KEY (room_id) REFERENCES Rooms(room_id) ON DELETE SET
NULL;

-- 5. Wardens table (depends on Hostels)


CREATE TABLE Wardens (
warden_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
email_address VARCHAR(100) UNIQUE,
phone VARCHAR(15),
hostel_id INT,
experience_years INT,
joining_date DATE,
address TEXT,
emergency_contact_name VARCHAR(100),
emergency_contact_relation VARCHAR(50),
emergency_contact_phone VARCHAR(15),
emergency_contact_address TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id) ON DELETE SET NULL
);
-- 6. Parents table (depends on Students)
CREATE TABLE Parents (
parent_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
father_name VARCHAR(100),
mother_name VARCHAR(100),
contact_number VARCHAR(15),
alternate_number VARCHAR(15),
address TEXT,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE
CASCADE
);

-- 7. Admins table (no dependencies)


CREATE TABLE Admins (
admin_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
);

-- 8. Student_Room_Allocation table (depends on Students and Rooms)


CREATE TABLE Student_Room_Allocation (
allocation_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
room_id INT,
allocation_date DATE NOT NULL,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE
CASCADE,
FOREIGN KEY (room_id) REFERENCES Rooms(room_id) ON DELETE CASCADE
);

-- 9. Complaints table (depends on Students and Rooms)


CREATE TABLE Complaints (
complaint_id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT,
room_id INT,
category VARCHAR(50),
description TEXT,
status ENUM('Pending', 'In Progress', 'Resolved') DEFAULT 'Pending',
date_reported DATE,
FOREIGN KEY (student_id) REFERENCES Students(student_id),
FOREIGN KEY (room_id) REFERENCES Rooms(room_id)
);

-- 10. Notices table (depends on Hostels)


CREATE TABLE Notices (
notice_id INT AUTO_INCREMENT PRIMARY KEY,
hostel_id INT,
title VARCHAR(255),
content TEXT,
publish_date DATE,
expiry_date DATE,
status ENUM('Active', 'Expired') DEFAULT 'Active',
FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id)
);

-- 11. Mess_Menu table (depends on Hostels)


CREATE TABLE Mess_Menu (
menu_id INT AUTO_INCREMENT PRIMARY KEY,
hostel_id INT,
day VARCHAR(20),
breakfast VARCHAR(255),
lunch VARCHAR(255),
dinner VARCHAR(255),
FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id)
);
Data related to it
-- Create the database
CREATE DATABASE hostel;
USE hostel;

-- 1. Students table
CREATE TABLE Students (
student_id INT PRIMARY KEY,
student_name VARCHAR(100) NOT NULL,
roll_number VARCHAR(20) UNIQUE NOT NULL,
date_of_birth DATE,
gender VARCHAR(10) DEFAULT 'FEMALE',
contact_number VARCHAR(10) UNIQUE,
email_address VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Alter Students table to add columns and foreign keys


ALTER TABLE Students
ADD COLUMN branch ENUM('CS', 'ME', 'EE', 'CE') NOT NULL AFTER
roll_number,
ADD COLUMN year ENUM('1', '2', '3', '4') NOT NULL AFTER branch,
ADD COLUMN hostel_id INT AFTER year,
ADD COLUMN room_id INT AFTER hostel_id;

-- Insert data into Students (adjusted to include all columns after ALTER)
INSERT INTO Students (student_id, student_name, roll_number, branch, year,
hostel_id, room_id, date_of_birth, gender, contact_number, email_address,
created_at) VALUES
(1, 'Aarushi Sharma', '2021001', 'CS', '2', 1, NULL, '2002-05-15', 'FEMALE',
'9876543211', '[email protected]', '2021-01-01'),
(2, 'Bhavya Patel', '2021002', 'ME', '2', 1, NULL, '2002-08-20', 'FEMALE',
'9876543212', '[email protected]', '2021-01-01'),
(3, 'Chitra Reddy', '2021003', 'EE', '1', 1, NULL, '2003-03-10', 'FEMALE',
'9876543213', '[email protected]', '2021-01-01'),
(4, 'Divya Nair', '2021004', 'CE', '4', 1, NULL, '2000-11-25', 'FEMALE',
'9876543214', '[email protected]', '2021-01-01'),
(5, 'Esha Gupta', '2021005', 'CS', '2', 1, NULL, '2002-07-12', 'FEMALE',
'9876543215', '[email protected]', '2021-01-01'),
(6, 'Falguni Singh', '2021006', 'ME', '3', 1, NULL, '2001-09-30', 'FEMALE',
'9876543216', '[email protected]', '2021-01-01'),
(7, 'Gauri Desai', '2021007', 'EE', '1', 1, NULL, '2003-01-18', 'FEMALE',
'9876543217', '[email protected]', '2021-01-01'),
(8, 'Hina Kapoor', '2021008', 'CE', '4', 1, NULL, '2000-12-05', 'FEMALE',
'9876543218', '[email protected]', '2021-01-01'),
(9, 'Isha Verma', '2021009', 'CS', '2', 1, NULL, '2002-06-22', 'FEMALE',
'9876543219', '[email protected]', '2021-01-01'),
(10, 'Jaya Menon', '2021010', 'ME', '3', 1, NULL, '2001-10-15', 'FEMALE',
'9876543220', '[email protected]', '2021-01-01'),
-- (Continuing for all 100 students, abbreviated for brevity; ensure all rows match
this structure)
(100, 'Hina Sen', '2021100', 'CS', '2', 4, NULL, '2002-05-15', 'FEMALE',
'9876543310', '[email protected]', '2021-01-01');

-- 2. Wardens table
CREATE TABLE Wardens (
warden_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
email_address VARCHAR(100) UNIQUE,
phone VARCHAR(15),
hostel_assigned VARCHAR(50),
experience_years INT,
joining_date DATE,
address TEXT,
emergency_contact_name VARCHAR(100),
emergency_contact_relation VARCHAR(50),
emergency_contact_phone VARCHAR(15),
emergency_contact_address TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Alter Wardens table to add hostel_id and foreign key


ALTER TABLE Wardens
ADD COLUMN hostel_id INT AFTER phone,
ADD FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id) ON DELETE SET
NULL;

-- Insert data into Wardens (adjusted for hostel_id)


INSERT INTO Wardens (warden_id, name, username, password, email_address,
phone, hostel_id, experience_years, joining_date, address,
emergency_contact_name, emergency_contact_relation,
emergency_contact_phone, emergency_contact_address, created_at) VALUES
(1, 'Dr. Lakshmi Nair', 'lakshmi01', 'wardenpass1', '[email protected]',
'9876543210', 1, 10, '2015-06-15', 'Warden Quarters, Seethamma Hostel', 'Arun
Nair', 'Husband', '8765432109', 'Same as above', '2021-01-01 10:00:00'),
(2, 'Dr. Meena Patel', 'meena02', 'wardenpass2', '[email protected]',
'8765432109', 2, 8, '2017-03-10', 'Warden Quarters, Saudamini Hostel', 'Ramesh
Patel', 'Brother', '7654321098', 'Same as above', '2021-01-01 10:00:00'),
(3, 'Dr. Priya Reddy', 'priya03', 'wardenpass3', '[email protected]',
'7654321098', 3, 12, '2013-08-20', 'Warden Quarters, Sharadha Hostel', 'Venkat
Reddy', 'Father', '6543210987', 'Same as above', '2021-01-01 10:00:00'),
(4, 'Dr. Anjali Sharma', 'anjali04', 'wardenpass4', '[email protected]',
'6543210987', 4, 7, '2018-01-05', 'Warden Quarters, Samhitha Hostel', 'Suresh
Sharma', 'Husband', '9432109876', 'Same as above', '2021-01-01 10:00:00');

-- 3. Hostels table
CREATE TABLE Hostels (
hostel_id INT PRIMARY KEY AUTO_INCREMENT,
hostel_name VARCHAR(50) NOT NULL,
total_rooms INT,
warden_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (warden_id) REFERENCES Wardens(warden_id) ON DELETE SET
NULL
);

-- Insert data into Hostels


INSERT INTO Hostels (hostel_name, total_rooms, warden_id, created_at) VALUES
('Seethamma', 25, 1, '2021-01-01 10:00:00'),
('Saudamini', 25, 2, '2021-01-01 10:00:00'),
('Sharadha', 25, 3, '2021-01-01 10:00:00'),
('Samhitha', 25, 4, '2021-01-01 10:00:00');

-- 4. Rooms table
CREATE TABLE Rooms (
room_id INT PRIMARY KEY AUTO_INCREMENT,
hostel_id INT,
room_number VARCHAR(10) NOT NULL,
floor VARCHAR(20),
is_occupied BOOLEAN DEFAULT FALSE,
student_id INT NULL,
FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id) ON DELETE
CASCADE,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE SET
NULL
);

-- Alter Rooms table to add/remove columns


ALTER TABLE Rooms
DROP COLUMN is_occupied,
ADD COLUMN capacity INT DEFAULT 2 AFTER floor,
ADD COLUMN room_type ENUM('AC', 'Non-AC') DEFAULT 'Non-AC' AFTER
capacity,
ADD COLUMN status ENUM('Vacant', 'Occupied', 'Maintenance') DEFAULT
'Vacant' AFTER room_type,
ADD COLUMN maintenance_issue TEXT AFTER status,
ADD COLUMN maintenance_est_completion DATE AFTER maintenance_issue;

-- Insert data into Rooms (adjusted for final structure)


INSERT INTO Rooms (room_id, hostel_id, room_number, floor, capacity,
room_type, status, maintenance_issue, maintenance_est_completion, student_id)
VALUES
(1, 1, 'S1-101', '1st Floor', 2, 'AC', 'Occupied', NULL, NULL, 1),
(2, 1, 'S1-102', '1st Floor', 2, 'AC', 'Occupied', NULL, NULL, 3),
(3, 1, 'S1-103', '1st Floor', 2, 'AC', 'Occupied', NULL, NULL, 5),
(4, 1, 'S1-104', '1st Floor', 2, 'AC', 'Occupied', NULL, NULL, 7),
(5, 1, 'S1-105', '1st Floor', 2, 'AC', 'Occupied', NULL, NULL, 9),
-- (Continuing for all 100 rooms, abbreviated for brevity; ensure all rows match
this structure)
(100, 4, 'S4-505', '5th Floor', 2, 'Non-AC', 'Vacant', NULL, NULL, NULL);

-- 5. Students_Login table
CREATE TABLE Students_Login (
login_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT UNIQUE,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE
CASCADE
);

-- Insert data into Students_Login


INSERT INTO Students_Login (student_id, username, password, created_at)
VALUES
(1, 'aarushi2021001', 'studentpass1', '2021-01-01'),
(2, 'bhavya2021002', 'studentpass2', '2021-01-01'),
(3, 'chitra2021003', 'studentpass3', '2021-01-01'),
(4, 'divya2021004', 'studentpass4', '2021-01-01'),
(5, 'esha2021005', 'studentpass5', '2021-01-01'),
-- (Continuing for all 100 students, abbreviated for brevity)
(100, 'hina2021100', 'studentpass100', '2021-01-01');

-- 6. Parents table
CREATE TABLE Parents (
parent_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
father_name VARCHAR(100),
mother_name VARCHAR(100),
contact_number VARCHAR(15),
alternate_number VARCHAR(15),
address TEXT,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE
CASCADE
);

-- Insert data into Parents


INSERT INTO Parents (parent_id, student_id, father_name, mother_name,
contact_number, alternate_number, address) VALUES
(1, 1, 'Rakesh Sharma', 'Sunita Sharma', '8765432111', '7654321111', '123, MG
Road, Delhi'),
(2, 2, 'Manoj Patel', 'Rekha Patel', '8765432112', '7654321112', '456, Gandhi
Nagar, Mumbai'),
(3, 3, 'Suresh Reddy', 'Lakshmi Reddy', '8765432113', '7654321113', '789,
Banjara Hills, Hyderabad'),
(4, 4, 'Vinod Nair', 'Geeta Nair', '8765432114', '7654321114', '101, Marine Drive,
Kochi'),
(5, 5, 'Ajay Gupta', 'Neeta Gupta', '8765432115', '7654321115', '234, Park Street,
Kolkata'),
-- (Continuing for all 100 parents, abbreviated for brevity)
(100, 100, 'Vikram Sen', 'Pooja Sen', '8765432210', '7654321210', '123, Sector
32, Chandigarh');

-- 7. Admins table
CREATE TABLE Admins (
admin_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP
);

-- Insert data into Admins


INSERT INTO Admins (admin_id, name, email, password, created_at) VALUES
(1, 'Rohit Kumar', '[email protected]', 'adminpass1', '2021-01-01
10:00:00'),
(2, 'Sneha Gupta', '[email protected]', 'adminpass2', '2021-01-01
10:00:00'),
(3, 'Vikram Singh', '[email protected]', 'adminpass3', '2021-01-01
10:00:00'),
(4, 'Pooja Desai', '[email protected]', 'adminpass4', '2021-01-01 10:00:00');

-- 8. Student_Room_Allocation table
CREATE TABLE Student_Room_Allocation (
allocation_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
room_id INT,
allocation_date DATE NOT NULL,
FOREIGN KEY (student_id) REFERENCES Students(student_id) ON DELETE
CASCADE,
FOREIGN KEY (room_id) REFERENCES Rooms(room_id) ON DELETE CASCADE
);

-- Insert data into Student_Room_Allocation


INSERT INTO Student_Room_Allocation (allocation_id, student_id, room_id,
allocation_date) VALUES
(1, 1, 1, '2021-08-01'), (2, 2, 1, '2021-08-01'),
(3, 3, 2, '2021-08-15'), (4, 4, 2, '2021-08-15'),
(5, 5, 3, '2022-07-01'), (6, 6, 3, '2022-07-01'),
(7, 7, 4, '2022-07-15'), (8, 8, 4, '2022-07-15'),
(9, 9, 5, '2023-06-01'), (10, 10, 5, '2023-06-01'),
-- (Continuing for all 100 allocations, abbreviated for brevity)
(99, 99, 86, '2025-04-01'), (100, 100, 86, '2025-04-01');

-- Add foreign keys to Students and Rooms after all tables are created
ALTER TABLE Students
ADD FOREIGN KEY (hostel_id) REFERENCES Hostels(hostel_id) ON DELETE SET
NULL,
ADD FOREIGN KEY (room_id) REFERENCES Rooms(room_id) ON DELETE SET
NULL;

-- Update Students with room_id assignments


UPDATE Students SET room_id = 1 WHERE student_id IN (1, 2);
UPDATE Students SET room_id = 2 WHERE student_id IN (3, 4);
UPDATE Students SET room_id = 3 WHERE student_id IN (5, 6);
UPDATE Students SET room_id = 4 WHERE student_id IN (7, 8);
UPDATE Students SET room_id = 5 WHERE student_id IN (9, 10);
-- (Continuing for all updates, abbreviated for brevity)
UPDATE Students SET room_id = 86 WHERE student_id IN (99, 100);

-- Update Rooms with status and student_id


UPDATE Rooms SET status = 'Occupied', student_id = 1 WHERE room_id = 1;
UPDATE Rooms SET status = 'Occupied', student_id = 3 WHERE room_id = 2;
UPDATE Rooms SET status = 'Occupied', student_id = 5 WHERE room_id = 3;
UPDATE Rooms SET status = 'Occupied', student_id = 7 WHERE room_id = 4;
UPDATE Rooms SET status = 'Occupied', student_id = 9 WHERE room_id = 5;
-- (Continuing for all updates, abbreviated for brevity)
UPDATE Rooms SET status = 'Occupied', student_id = 99 WHERE room_id = 86;

You might also like