18CSL58-DBMS Laboratory with Mini Project
4. Consider the schema for College Database:
STUDENT (USN, SName, Address, Phone, Gender)
SEMSEC (SSID, Sem, Sec)
CLASS (USN, SSID)
SUBJECT (Subcode, Title, Sem, Credits)
IAMARKS (USN, Subcode, SSID, Testl, Test2, Test3, FinalIA)
Write SQL queries to
6. List all the student details studying in fourth semester ‘C’ section.
7. Compute the total number of male and female students in each semester and in each
sect
8. Create a view of Test! marks of student USN ‘IBI1SCS101’ in all subjects.
9. Caleulate the FinalfA (average of best two test marks) and update the
corresponding table for all students.
10. Categorize students based on the following criterion:
If FinallA = 17 to 20 then CAT = ‘Outstanding’
If FinallA = 12 to 16 then CAT = ‘Average’
If Final A< 12 then CAT = ‘Weak’
Give these details only for 8th semester A, B, and C section students.
"I
SVCE , Bengaluru Dept. of ISE18CSL58-DBMS Laboratory with Mini Project
Schema Diagram
Student
—BUSN | SName | Address | Phone | Gender
ss Semsec
,bSSID] Sem | Sec
tf
Class
USN] SSID
Subject
Subcode | Title| Sem | Credits
Jamarks
USN | Subcode| SSID| Test | Test2 | Test3 | FinallA
CREATE TABLE STUDENT (
USN VARCHAR (10) PRIMARY KEY,
SNAME VARCHAR (25),
ADDRESS VARCHAR (25),
PHONE NUMBER (10),
NDER CHAR (1)):
CREATE TABLE SEMSEC (
SSID VARCHAR (5) PRIMARY KEY,
SEM NUMBER (2),
SEC CHAR (1));
CREATE TABLE CLASS (
USN VARCHAR (10),
SSID VARCHAR (5),
PRIMARY KEY (USN, SSID),
FOREIGN KEY (USN) REFERENCES STUDENT (USN),
FOREIGN KEY (SSID) REFERENCES SEMSEC (SSID));
SVCE , Bengaluru Dept. of ISE18CSL58-DBMS Laboratory with Mini Project
CREATE TABLE SUBJECT (
SUBCODE VARCHAR (8),
TITLE VARCHAR (20),
SEM NUMBER (2),
CREDITS NUMBER (2),
PRIMARY KEY (SUBCODE));
CREATE TABLE IAMARKS (
USN VARCHAR (10),
SUBCODE VARCHAR (8),
SSID VARCHAR (5),
‘TESTI NUMBER (2),
‘TEST2 NUMBER (2),
‘TEST3 NUMBER (2),
FINALIA NUMBER (2),
PRIMARY KEY (USN, SUBCODE, SSID),
FOREIGN KEY (USN) REFERENCES STUDENT (USN),
FOREIGN KEY (SUBCODE) REFERENCES SUBJECT (SUBCODE),
FOREIGN KEY (SSID) REFERENCES SEMSEC (SSID);
Table Descriptions
DESC STUDENT;
DESC SEMSEC;
DESC CLAS:
DESC SUBII
DESC IAMARKS;
Insertion of values to tables
INSERT INTO STUDENT VALUES ('1VE13CS020''AKSHAY'BELAGA VI, 887788 1 122,M");
INSERT INTO STUDENT VALUES ('1VE13CS062'SANDHY A',,BENGALURU',7722829912,'F);
INSERT INTO STUDENT VALUES ('1 VEI3CS091' TEESHA’/BENGALURU',7712312312,F);
INSERT INTO STUDENT VALUES (‘1 VE 13CS066'/SUPRIYA'’MANGALURU',877881 122,'F');
INSERT INTO STUDENTVALUES (‘I VE 14CS010',,ABHAY',BENGALURU',9900211201,'M’);
INSERT INTO STUDENT VALUES ('1 VE 14CS032'/BHASKAR’,'BENGALURU',923211099,'M’);
INSERT INTO STUDENTVALUES (‘1 VE 14CS025'ASMI' BENGALURU, 89473737
INSERT INTO STUDENT VALUES (1 VE 1SCS011'AJAY'TUMKUR', 9845091341,'M');
INSERT INTO STUDENT VALUES ('1VE15CS029'/CHITRA'DAVANGERE’, 7696772121, F);
INSERT INTO STUDENT VALUES ('IVE1SCS045',,JEEVA','BELLARY’, 9944850121,'M’);
INSERT INTO STUDENT VALUES ('1VE15CS091','SANTOSH''MANGALURU, 8812332201,'M’);
INSERT INTO STUDENT VALUES ('1VE16CS045',ISMAIL",KALBURGT',900232201,'M');
SVCE , Bengaluru Dept. of ISE18CSL58-DBMS Laboratory with Mini Project
INSERT INTO STUDENT VALUES ('1VE16CS088',SAMEERA'/SHIMOGA',9905542212,'F);
INSERT INTO STUDENT VALUES (‘1VE16CS122'’VINAYAKA\'CHIKAMAGALUR',
80088001 1,'M);
INSERT INTO SEMSEC VALUES ('CSE8A’, 8,4);
INSERT INTO SEMSEC VALUES (_CSE8B', 8B);
INSERT INTO SEMSEC VALUES (_CSE8C*, 8,°C*);
INSERT INTO SEMSEC VALUES (‘CSE7A\
INSERT INTO SEMSEC VALUES (_CSE7B*, 7,
INSERT INTO SEMSEC VALUES (‘Ci
“AD;
BY);
INSERT INTO SEMSEC VALUES (_CSE6A, 6,
INSERT INTO SEMSEC VALUES (_CSE6B‘, 6,‘B*);
INSERT INTO SEMSEC VALUES (‘CSE6C’, 6,'C*);
INSERT INTO SEMSEC VALUES (_CSESA‘, 5,'A‘);
INSERT INTO SEMSEC VALUES (‘CSESB', 5,'B));
INSERT INTO SEMSEC VALUES (
INSERT INTO SEMSEC VALUES (_CSE4A‘, 4,'A);
INSERT INTO SEMSEC VALUES ('CSE4B', 4,"B");
INSERT INTO SEMSEC VALUES (_CSE4C*, 4/C*);
INSERT INTO SEMSEC VALUES (‘CSE3A’, 3A’);
INSERT INTO SEMSEC VALUES (_CSE3B', 3,B');
INSERT INTO SEMSEC VALUES (_CSE3C*, 3,C*);
INSERT INTO SEMSEC VALUES ('CSE2A', 2,°A°);
INSERT INTO SEMSEC VALUES (_CSE2B’, 2,'B*);
INSERT INTO SEMSEC VALUES (‘CSE2C’, 2,'C.);
INSERT INTO SEMSEC VALUES (_CSEIA’, 1,'A;
SVCE , Bengaluru Dept. of ISE18CSL58-DBMS Laboratory with Mini Project
INSERT INTO SEMSEC VALUES (_CSE1B‘*, 1,‘B*);
INSERT INTO SEMSEC VALUES (‘CSEIC’, 1,*C*);
INSERT INTO CLASS VALUES (_1VE13CS020*,“CSE8A‘);
INSERT INTO CLASS VALUES (_1VE13C$062',CSE8A‘);
INSERT INTO CLASS VALUES (_1VE13CS066°,‘CSE8B");
INSERT INTO CLASS VALUES (_1VE13CS091',*CSE8C’);
INSERT INTO CLASS VALUES (_IVE14CS010°,‘CSE7A‘);
INSERT INTO CLASS VALUES (_1VEI4CS025*,‘CSE7A");
INSERT INTO CLASS VALUES (_1VE14CS032°,‘CSE7A");
INSERT INTO CLASS VALUES (_1VEISCS011*,‘CSE4A*);
INSERT INTO CLASS VALUES (_1VE15CS029°,‘CSE4A‘);
INSERT INTO CLASS VALUES (_1VE15CS045*,‘CSE4B");
INSERT INTO CLASS VALUES (_1VEISCS091°,‘CSE4C*);
INSERT INTO CLASS VALUES (_1VE16CS045°,‘CSE3A‘);
INSERT INTO CLASS VALUES (_1VE16CS088*,‘CSE3B");
INSERT INTO CLASS VALUES (_1VE16CS122°,‘CSE3C*);
INSERT INTO SUBJECT VALUES (‘10CS81'/ACA’, 8, 4);
INSERT INTO SUBJECT VALUES ('10CS82'/SSM, 8, 4);
INSERT INTO SUBJECT VALUES ('10CS83',NM, 8, 4);
INSERT INTO SUBJECT VALUES ('10CS84’/CC’, 8, 4);
INSERT INTO SUBJECT VALUES ('10CS85',PW', 8, 4);
INSERT INTO SUBJECT VALUES ('10CS71'/OOAD', 7, 4);
INSERT INTO SUBJECT VALUES ('10CS72'ECS', 7, 4);
INSERT INTO SUBJECT VALUES ('10CS73',PTW’, 7, 4);
INSERT INTO SUBJECT VALUES ('10CS74'/DWDM,, 7, 4);
INSERT INTO SUBJECT VALUES (_10CS75'/JAVA', 7, 4);
INSERT INTO SUBJECT VALUES ('10CS76"/SAN', 7, 4);
INSERT INTO SUBJECT VALUES ('1SCSS1', 'MB', 5, 4);
INSERT INTO SUBJECT VALUES ('1SCS52'/CNY, 5, 4);
INSERT INTO SUBJECT VALUES ('15CS53''DBMS, 5, 4);
INSERT INTO SUBJECT VALUES ('1SCSS4'/ATC’, 5, 4);
INSERT INTO SUBJECT VALUES ('1SCSSS',JAVA', 5, 3);
INSERT INTO SUBJECT VALUES ('15CS56'AT’, 5, 3);
SVCE , Bengaluru Dept. of ISE18CSL58-DBMS Laboratory with Mini Project
INSERT INTO SUBJECT VALUES ('1SCS41''M4’, 4, 4);
INSERT INTO SUBJECT VALUES ('1SCS42'/SE’, 4, 4);
INSERT INTO SUBJECT VALUES ('15CS43"/DAA\, 4, 4);
INSERT INTO SUBJECT VALUES ('15CS44''MPMC’, 4, 4);
INSERT INTO SUBJECT VALUES ('15CS45'/00C’, 4, 3);
INSERT INTO SUBJECT VALUES ('15CS46'DC’, 4, 3);
INSERT INTO SUBJECT VALUES ('15CS31'/M3¥, 3, 4);
INSERT INTO SUBJECT VALUES ('15CS32';
INSERT INTO SUBJECT VALUES ('15CS33";
INSERT INTO SUBJECT VALUES ('15CS34',CO’, 3, 4);
INSERT INTO SUBJECT VALUES ('15C
INSERT INTO SUBJECT VALUES ('15CS36','DMS', 3, 3);
INSERT INTO IAMARKS (USN, SUBCODE, SSID, TESTI, TEST2, TEST3) VAL
(1VE13CS091'10CS81''CSE8C;, 15, 16, 18);
INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VAL
(1VE13CS091'10C882''CSE8C;, 12, 19, 14);
INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VALUES
(IVE13CS091'10CS83'CSESC,, 19, 15, 20);
INSERT INTO IAMARKS (USN, SUBCODE, SSID, TESTI, TEST2, TEST3) VALU!
(1VE13CS091',10CS84'CSESC, 20, 16, 19);
INSERT INTO IAMARKS (USN, SUBCODE, SSID, TEST1, TEST2, TEST3) VALUES
(1VE13CS091,10CS85''CSESC, 15, 15, 12);
S
SELECT * FROM STUDENT;
SELECT * FROM SEMSEC;
SELECT * FROM CLASS
SELECT * FROM SUBJEC’
SELECT * FROM IAMARK!
Queries:
1. List all the student details studying in fourth semester “C’ section.
SELECT S.*, SS.SEM, SS.SEC
FROM STUDENT S$, SEMSEC SS, CLASS C
WHERE S.USN = C.USN AND
SS.SSID = C.SSID AND
SS.SEM = 4 AND
SS.SE
SVCE , Bengaluru Dept. of ISE18CSL58-DBMS Laboratory with Mini Project
2, Compute the total number of male and female students in each semester and in each
section.
SELECT SS.SEM, SS. GENDER, COUNT (8.GENDER) AS COUNT.
FROM STUDENT S, SEMSEC SS, CLASS C
WHERES.USN = C.USN AND
SS.SSID =C.SSID
GROUP BY S
ORDER BY SEM;
, SS.SEC, S.GENDER
3. Create a view of
‘est marks of student USN ‘IBLISCS101’ in all subjects.
CREATE VI TU_TEST1_MARKS_VIEW
AS.
SELECT TESTI, SUBCODE
FROM IAMARKS,
WHERE USN ='IRN13CS091';
4, Calculate the FinallA (average of best two test marks) and update the corresponding
table for all students.
CREATE OR REPLA‘
Is
CURSOR C_IAMARKS IS
SELECT GREATEST(TESTI,TEST2) AS A, GREATEST(TESTI,TEST3) AS B,
GREATEST(TEST3,TEST2) AS C
FROM IAMARKS
WHERE FINALIA IS NULL
FOR UPDATE;
= PROCEDURE AVGMARKS
C_ANUMBER;
C_B NUMBER;
C_C NUMBER;
_SMNUMBER;
C_AV NUMBER;
BEGIN
OPEN C_IAMARKS;
LOOP
FETCH C_IAMARKS INTO C_A, C_B, C_C;
EXIT WHEN C_IAMARKS%NOTEOUND;
DBMS_OUTPUT.PUT_LINE(C_A ||'"|C_B||'"||C_Os
"_B) THEN
SVCE , Bengaluru Dept. of ISE18CSL58-DBMS Laboratory with Mini Project
C_AV-C_SM/2;
--DBMS_OUTPUT.PUT_LINE('SUM = "|C_SM);
--DBMS_OUTPUT.PUT_LINE(AVERAGE ="'C_AV);
UPDATE IAMARKS SET FINALIA=C_AV WHERE CURRENT OF C_IAMARKS;
END Loop;
CLOSE C_IAMARKS;
END;
/
Note: Before execution of PL/SQL procedure, IAMARKS table contents are:
SELECT * FROM IAMARKS;
Below SQL code is to invoke the PL/SQL stored procedure from the command line:
BEGIN
AVGMARKS;
END;
5. Categorize students based on the following criterion:
If FinallA = 17 to 20 then CAT = ‘Outstanding’
If FinallA = 12 to 16 then CAT = ‘Average’
If FinallA< 12 then CAT = ‘Weak’
Give these details only for 8" semester A, B, and C section students.
SELECT S.USN,S.SNAME,S.ADDRESS,S.PHON
(CASE
WHEN IA.FINALIA BETWEEN 17 AND 20 THEN ‘OUTSTANDING’
WHEN IA.FINALIA BETWEEN 12 AND 16 THEN 'AVERAGE'
ELSE 'WEAK'
END) AS CAT
FROM STUDENT S, SEMSEC SS, IAMARKS IA, SUBJECT SUB
WHERE S.USN = IA.USN AND
SS.SSID = IA.SSID AND
SUB.SUBCODE = IA.SUBCODE AND
SUB.SEM = 8;
E,S.GENDER,
SVCE , Bengaluru Dept. of ISE