Complete step-by-step MySQL script for Students’ Marksheet making
Step 1: Create Database
CREATE DATABASE school_db;
Step 2: Use the Database
USE school_db;
Step 3: Create Table
We will:
CREATE TABLE students (
s_no INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
hindi INT CHECK (hindi BETWEEN 0 AND 100),
eng INT CHECK (eng BETWEEN 0 AND 100),
maths INT CHECK (maths BETWEEN 0 AND 100),
science INT CHECK (science BETWEEN 0 AND 100),
eco INT CHECK (eco BETWEEN 0 AND 100),
total INT GENERATED ALWAYS AS (hindi + eng + maths + science + eco) STORED,
percentage DECIMAL(5,2) GENERATED ALWAYS AS
((hindi + eng + maths + science + eco)/5) STORED,
grade VARCHAR(2) GENERATED ALWAYS AS (
CASE
WHEN (hindi + eng + maths + science + eco)/5 >= 90 THEN 'A+'
WHEN (hindi + eng + maths + science + eco)/5 >= 80 THEN 'A'
WHEN (hindi + eng + maths + science + eco)/5 >= 70 THEN 'B'
WHEN (hindi + eng + maths + science + eco)/5 >= 60 THEN 'C'
WHEN (hindi + eng + maths + science + eco)/5 >= 50 THEN 'D'
ELSE 'F'
END
) STORED
);
Step 4: Insert 20 Students Data
INSERT INTO students (name, hindi, eng, maths, science, eco) VALUES
('Aman Sharma', 78, 82, 91, 85, 74),
('Priya Verma', 88, 90, 84, 79, 92),
('Rahul Singh', 65, 70, 72, 68, 60),
('Sneha Gupta', 92, 95, 89, 94, 90),
('Arjun Mehta', 55, 60, 58, 62, 57),
('Neha Yadav', 73, 77, 69, 75, 80),
('Vikas Kumar', 81, 85, 88, 84, 79),
('Kavita Roy', 67, 72, 70, 65, 68),
('Rohan Das', 90, 88, 94, 91, 89),
('Anjali Patel', 76, 74, 79, 82, 78),
('Manish Jain', 59, 61, 64, 60, 58),
('Pooja Singh', 85, 87, 83, 86, 88),
('Deepak Rana', 71, 69, 75, 73, 70),
('Ritu Malhotra', 93, 91, 95, 92, 94),
('Sanjay Verma', 62, 58, 65, 60, 63),
('Meena Kapoor', 80, 82, 78, 85, 81),
('Amit Tiwari', 74, 76, 72, 70, 75),
('Divya Nair', 89, 84, 90, 87, 88),
('Karan Malhotra', 66, 68, 63, 69, 67),
('Simran Kaur', 91, 93, 88, 90, 92);
Step 5: View Final Table
SELECT * FROM students;