-- Step 1: Create students table
CREATE TABLE students (
roll_no INT PRIMARY KEY,
name VARCHAR(50),
marks INT
);
-- Step 2: Insert sample data
INSERT INTO students VALUES
(1, 'Arun', 92),
(2, 'Priya', 76),
(3, 'Rahul', 63),
(4, 'Sneha', 49),
(5, 'Karthik', 85);
-- Step 3: Change delimiter for function
DELIMITER $$
-- Step 4: Create get_grade() function
CREATE FUNCTION get_grade(score INT)
RETURNS VARCHAR(2)
DETERMINISTIC
BEGIN
DECLARE grade VARCHAR(2);
IF score >= 90 THEN
SET grade = 'A';
ELSEIF score >= 75 THEN
SET grade = 'B';
ELSEIF score >= 60 THEN
SET grade = 'C';
ELSEIF score >= 50 THEN
SET grade = 'D';
ELSE
SET grade = 'F';
END IF;
RETURN grade;
END$$
-- Step 5: Reset delimiter
DELIMITER ;
-- Step 6: Create student_grades table
CREATE TABLE student_grades (
roll_no INT PRIMARY KEY,
grade VARCHAR(2)
);
-- Step 7: Insert grades using function
INSERT INTO student_grades (roll_no, grade)
SELECT roll_no, get_grade(marks)
FROM students;
-- Step 8: View final result
SELECT s.name, s.marks, g.grade
FROM students s
JOIN student_grades g ON s.roll_no = g.roll_no;