0% found this document useful (0 votes)
7 views10 pages

Text

uyuvgjb

Uploaded by

rdxh321
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)
7 views10 pages

Text

uyuvgjb

Uploaded by

rdxh321
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/ 10

COLLEGE MANAGEMENT

--------------------------------------------------------------------------------------------------------------------------------------

We Create A Relation Of Student

create table student

(enrollment_no NUMERIC(20) PRIMARY KEY NOT NULL,

first_name VARCHAR(20) NOT NULL,

last_name VARCHAR(20) NOT NULL,

gender CHAR NOT NULL,

admission_mode VARCHAR(3) NOT NULL,

date_of_birth DATE NOT NULL,

mobile_no BIGINT NOT NULL

dept_id int,

course_id int);

-- select * from student;

-------------------------------------------------------------------------------------

We Create A Relation Of Department

create table department

(dept_id int PRIMARY KEY NOT NULL,

dept_name varchar(40) NOT NULL);

-- select * from department;


-------------------------------------------------------------------------------------

We Create A Relation Of Course

create table course

(course_id int PRIMARY KEY NOT NULL,

duration varchar(20),

course_name varchar(20));

-- select * from course;

create table faculty

(fac_id int PRIMARY KEY NOT NULL,

fac_name varchar(20) NOT NULL,

salary numeric,

mobile_no numeric(20),

dept_id int NOT NULL,

CONSTRAINT fk_faculty_department FOREIGN KEY(dept_id)

REFERENCES department(dept_id));

-- select * from faculty;


create table subject

(sub_id int PRIMARY KEY NOT NULL,

sub_name varchar(30) NOT NULL,

fac_id int NOT NULL,

CONSTRAINT FK_subject_faculty FOREIGN KEY(fac_id)

REFERENCES faculty(fac_id));

-- select * from subject;

-------------------------------------------------------------------------------------

Create A Relation Of Result

create table result

(enrollment_no numeric PRIMARY KEY NOT NULL,

java_marks numeric,

mathematics_marks numeric,

DS_marks numeric,

DBMS_marks numeric,

FEE_marks numeric);
-- select * from result;

-------------------------------------------------------------------------------------

We Use A Join For Data Retrive From Student And Result

SELECT first_name, last_name,java_marks

FROM student

JOIN result ON student.enrollment_no = result.enrollment_no

WHERE java_marks IN (

SELECT MAX(java_marks)

FROM result

);

-------------------------------------------------------------------------------------

We use a join for data retrive from student and result with group by student enrollment
and greater then average marks of java

SELECT first_name, last_name,java_marks

FROM student
JOIN result ON student.enrollment_no = result.enrollment_no

GROUP BY student.enrollment_no, result.java_marks

HAVING java_marks > (

SELECT AVG(java_marks)

FROM result

);

-------------------------------------------------------------------------------------

We create a function here what just do a update row with parameter student_id_param ,
new_name_param

and it return affected row

CREATE OR REPLACE FUNCTION updateStudentName(student_id_param INT,


new_name_param VARCHAR(255)) RETURNS INT AS $$

DECLARE

rows_affected INT;

BEGIN

-- Update the student's name

UPDATE Student

SET student_name = new_name_param

WHERE student_id = student_id_param;


-- Get the number of rows affected by the update

GET DIAGNOSTICS rows_affected = ROW_COUNT;

RETURN rows_affected;

END;

$$ LANGUAGE plpgsql;

-------------------------------------------------------------------------------------

We Create A Procedure Here What Just Do A Delete Row With Parameter Student_Id

CREATE OR REPLACE PROCEDURE DeleteStudent(IN input_student_id INT)

LANGUAGE plpgsql

AS $$

BEGIN

DELETE FROM Student

WHERE student_id = input_student_id;

END;

$$;
-------------------------------------------------------------------------------------

We Create A Here Select Query With Inner Join Which Is Between Student And Result

SELECT first_name,last_name,java_marks

FROM student

INNER JOIN result

ON student.enrollment_no = result.enrollment_no

WHERE java_marks < 35;

-------------------------------------------------------------------------------------

We Create A Function Here What Just Show A Result Of Student With Using Parameter
Enroll_Id
CREATE OR REPLACE FUNCTION get_student_result(enroll_id numeric) RETURNS void

AS

$$

DECLARE

a_marks result.mathematics_marks%type;

b_marks result.java_marks%type;

c_marks result.ds_marks%type;

d_marks result.dbms_marks%type;

e_marks result.fee_marks%type;

total_marks DECIMAL(10,2) := 0;

percentage DECIMAL(10,2);

BEGIN

SELECT mathematics_marks,java_marks,ds_marks,dbms_marks,fee_marks

INTO a_marks,b_marks,c_marks,d_marks,e_marks

FROM result

WHERE enrollment_no = enroll_id;

total_marks := a_marks+b_marks+c_marks+d_marks+e_marks;

percentage := total_marks/5;

IF FOUND THEN

RAISE NOTICE'Mathematics : %',a_marks;

RAISE NOTICE'Java : %',b_marks;

RAISE NOTICE'Data Structure : %',c_marks;

RAISE NOTICE'DataBase Management System : %',d_marks;

RAISE NOTICE'Physical Education : %',e_marks;

RAISE NOTICE'Total Marks : %',total_marks;

RAISE NOTICE'Final Result : %',percentage;

ELSE

RAISE NOTICE'No student with such enrollment no. exists';

END IF;
END

$$

LANGUAGE plpgsql;

-------------------------------------------------------------------------------------
SELECT student.first_name, department.dept_name

FROM student

INNER JOIN department ON student.dept_id = department.dept_id;

SELECT student.first_name, course.course_name

FROM student

INNER JOIN course ON student.course_id = course.course_id;

-------------------------------------------------------------------------------------

CREATE OR REPLACE FUNCTION check_nega ve_marks()

RETURNS TRIGGER AS $$

BEGIN

IF NEW.value < 0 THEN

RAISE NOTICE 'Nega ve marks are not allowed!';

END IF;

RETURN NEW;

END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER tr_check_nega ve_marks

BEFORE INSERT OR UPDATE

ON marks

FOR EACH ROW

EXECUTE FUNCTION check_nega ve_marks();

You might also like