CREATE TABLE Fees1 ( fee_id INT PRIMARY KEY, student_id INT, amount_paid DECIMAL(10, 2), payment_date DATE, FOREIGN KEY (student_id) REFERENCES Students3(student_id) ); ---------------------------------------------------------------------------------------------------------------------------- *QUERIES AND THEIR ANSWERS*
1. SELECT student_name FROM Students3
WHERE student_id NOT IN (SELECT student_id FROM Fees1);
2. SELECT s.student_name, sub.subject_name, m.marks_obtained FROM Marks1 m
JOIN Students3 s ON m.student_id = s.student_id JOIN Subjects1 sub ON m.subject_id = sub.subject_id WHERE m.marks_obtained > 10 ORDER BY sub.subject_name DESC;
3. SELECT student_name FROM Students3
WHERE gender = 'Female' AND District = 'Chennai'; 4. SELECT s.student_name, ROUND((SUM(m.marks_obtained) / (SELECT SUM(max_marks) FROM Subjects WHERE programme_id = p.programme_id)) * 100, 2) as percentage FROM Marks m JOIN Students s ON m.student_id = s.student_id JOIN Programmes p ON s.programme_id = p.programme_id GROUP BY s.student_id HAVING percentage > 75;
5. SELECT student_name, district, dob
FROM Students3 WHERE (TRUNC(SYSDATE) - dob) / 365 > 19;
6. SELECT sub.subject_name FROM TeachingAssignments1 ta
JOIN Subjects1 sub ON ta.subject_id = sub.subject_id JOIN Teachers1 t ON ta.teacher_id = t.teacher_id WHERE t.teacher_name = 'Teacher Name';
7. SELECT p.programme_name, s.student_name, SUM(m.marks_obtained) as total_marks
FROM Marks1 m JOIN Students3 s ON m.student_id = s.student_id JOIN Programmes1 p ON s.programme_id = p.programme_id GROUP BY p.programme_id, s.student_id ORDER BY total_marks DESC LIMIT 1;
8. SELECT s.student_name, p.programme_name, SUM(f.amount_paid) as total_paid
FROM Fees1 f JOIN Students3 s ON f.student_id = s.student_id JOIN Programmes1 p ON s.programme_id = p.programme_id GROUP BY s.student_id; *TRIGGER* 9. CREATE OR REPLACE TRIGGER prevent_dml_on_sundays BEFORE INSERT OR UPDATE OR DELETE ON EMPLOYEE FOR EACH ROW DECLARE current_day VARCHAR2(9); BEGIN -- Get the current day of the week SELECT TO_CHAR(SYSDATE, 'Day') INTO current_day FROM dual; -- Trim any extra spaces available for day names current_day := TRIM(current_day);
-- Check whether today is Sunday
IF current_day = 'Sunday' THEN RAISE_APPLICATION_ERROR(-20001, 'DML operations are not allowed on Sundays.'); END IF; END;
*CURSOR* (PL/ SQL)
10 . CREATE OR REPLACE PROCEDURE find_top_3_scores AS CURSOR top_scores_cursor IS SELECT student_id, score FROM ( SELECT student_id, score FROM EXAMINATION ORDER BY score DESC ) WHERE ROWNUM <= 3;
v_student_id EXAMINATION.student_id%TYPE; v_score EXAMINATION.score%TYPE; BEGIN -- Open the cursor OPEN top_scores_cursor;
-- Fetch the top 3 scores and display them
LOOP FETCH top_scores_cursor INTO v_student_id, v_score; EXIT WHEN top_scores_cursor%NOTFOUND;
Practical Spring Cloud Function: Developing Cloud-Native Functions for Multi-Cloud and Hybrid-Cloud Environments 1st Edition Banu Parasuraman all chapter instant download