Abhishek Thakur Section: A/A1 Roll No.: 07 Sic: 190310080 ------------------------------------------------------------------------------------------------------------------------ *******CREATING TABLE******* 1: CREATE TABLE MUSICIAN_190310080 ( MNAME VARCHAR2(20) NOT NULL, MID NUMBER(6) CHECK(MID>=100000 AND MID<=999999) PRIMARY KEY, BDATE DATE CHECK(SUBSTR(BDATE,8,2)>='41' AND SUBSTR(BDATE,8,2)<='79'), ADDRESS VARCHAR2(20), GENDER VARCHAR2(1) DEFAULT 'M', FEES NUMBER(10) CHECK(FEES>=200000 AND FEES<=750000), COMPOSERID NUMBER(10), FOREIGN KEY(COMPOSERID) REFERENCES MUSICIAN_190310080(MID), CLUBNO NUMBER(3) ); 2: CREATE TABLE CLUB_190310080 (CNAME VARCHAR2(30) CHECK(CNAME = 'BEATLES' OR CNAME = 'ROLLING STONES' OR CNAME = 'SYMPHONY' OR CNAME = 'HERCULES' OR CNAME = 'BLUE BIRD), REGDNO NUMBER(3) PRIMARY KEY CHECK (REGDNO >= 101 AND REGDNO <=999), COMPOSERID NUMBER(6) FOREIGN KEY REFERENCES MUSICIAN_190310080(MID), ESTD_YEAR NUMBER(4); 3: CRAETE TABLE AWARDS_190310080 (CLUBNO NUMBER(3) FOREIGN KEY REGERENCES CLUB_190310080(REGDNO), AWARD VARCHAR2(15) CHECK (AWARD = 'GRAMMY' OR AWARD = 'WORLD MUSIC' OR AWARD = 'MTV EMMIES' ); 4: CREATE TABLE INSTRUMENT_190310080 ( NAME VARCHAR2(20), INS_ID VARCHAR2(6) PRIMARY KEY CHECK(INS_ID LIKE '[A-Z][A-Z][0-9][0-9][0-9][0-9]'), MUSICAL_KEY VARCHAR2(10) CHECK(MUSICAL_KEY='B-MINOR' OR MUSICAL_KEY='B-FLAT' OR MUSICAL_KEY='C-MAJOR' OR MUSICAL_KEY='C-FLAT' OR MUSICAL_KEY='A-S-MINOR'), PRICE NUMBER(5) CHECK(PRICE>=2400 AND PRICE<=4000), MAJORCLUB NUMBER(3), FOREIGN KEY(MAJORCLUB) REFERENCES CLUB_190310080(REGDNO)); 5: CREATE TABLE PLAY_190310080 (MID NUMBER(6) PRIMARY KEY, INS_ID VARCHAR2960 FOREIGN KEY REFERENCES INSTRUMENT_190310080(INS_ID), RANK NUMBER(2) CHECK (RANK >= 1 AND RANK <=10), FOREIGN KEY (MID) REFERENCES MUSICIAN_190310080(MID) ); ******* INSERTING DATA INTO TABLES******** INSERT INTO MUSICIAN_190310080 VALUES('JOHN LENNON',703473,'07-JAN-41','LIVERPOOL U.K','M',750000,NULL,703); INSERT INTO MUSICIAN_190310080 VALUES('PAUL MCCARTNEY',703994,'14-APR-44','LIVERPOOL U.K','M',430000,703473,703); INSERT INTO MUSICIAN_190310080 VALUES('GEORGE HARRISON',703108,'11-DEC-41','LIVERPOOL U.K','M',600000,703473,703); INSERT INTO MUSICIAN_190310080 VALUES('RINGO STARR',703980,'23-AUG-48','LIVERPOOL U.K','M',220000,703473,703); INSERT INTO MUSICIAN_190310080 VALUES('ELTON JOHN',201322,'23-MAR-51','LONDON U.K','M',550000,NULL,201); INSERT INTO MUSICIAN_190310080 VALUES('DENNY ANDERSON',201483,'11-FEB-57','STOCKHOLM SWEDEN','M',440000,201322,201); INSERT INTO MUSICIAN_190310080 VALUES('KENNY G',719112,'30-MAR-61','WASINGTON U.S.A','M',680000,NULL,719); INSERT INTO MUSICIAN_190310080 VALUES('MICK JAGGER',412483,'17-OCT-67','LONDON U.K','M',500000,NULL,412); INSERT INTO MUSICIAN_190310080 VALUES('KEITH ROGERS',412977,'21-MAY-51','LONDON U.K','M',600000,412483,412); INSERT INTO MUSICIAN_190310080 VALUES('CHARLIE WYATTS',412108,'07-MAR-72','BOSTON U.K','M',430000,412483,412); ______________________________________________________________________________ __ INSERT INTO CLUB_190310080 VALUES('BEATLES',703,703473,1955); INSERT INTO CLUB_190310080 VALUES('ROLLING STONE',412,412483,1964); INSERT INTO CLUB_190310080 VALUES('SYMPHONY',719,719112,1972); INSERT INTO CLUB_190310080 VALUES('BLUE BIRDS',102,NULL,1981); INSERT INTO CLUB_190310080 VALUES('HERCULES',201,20132,1972); ______________________________________________________________________________ __ INSERT INTO AWARDS_190310080 VALUES(412,'GRAMMY'); INSERT INTO AWARDS_190310080 VALUES(201,'WORLD MUSIC'); INSERT INTO AWARDS_190310080 VALUES(703,'GRAMMY'); INSERT INTO AWARDS_190310080 VALUES(719,'GOLDEN GLOBE'); INSERT INTO AWARDS_190310080 VALUES(719,'WORLD MUSIC'); INSERT INTO AWARDS_190310080 VALUES(412,'MTV EMMIES'); ______________________________________________________________________________ __ INSERT INTO PLAYS_190310080 VALUES(719112,’DR0338’,9); INSERT INTO PLAYS_190310080 VALUES(703473,’ GR0107’,1); INSERT INTO PLAYS_190310080 VALUES(412977 ,’GR0107’, 5); INSERT INTO PLAYS_190310080 VALUES(703994, ‘RG0211’ ,3); INSERT INTO PLAYS_190310080 VALUES(412108, ‘GR0107’, 6); INSERT INTO PLAYS_190310080 VALUES(719112, ‘SX1155’ ,1); INSERT INTO PLAYS_190310080 VALUES(703980 ,’DR0338’, 2); INSERT INTO PLAYS_190310080 VALUES(412483, ‘GR0107’ ,2); INSERT INTO PLAYS_190310080 VALUES(412977 ,’RG0211’, 4); INSERT INTO PLAYS_190310080 VALUES(210483, ‘PN0783’ ,8); INSERT INTO PLAYS_190310080 VALUES(703108 ,’RG0211’, 6); INSERT INTO PLAYS_190310080 VALUES(412108 ,‘DR0338’, 5); INSERT INTO PLAYS_190310080 VALUES(201322 ,’PN0783’, 3); INSERT INTO PLAYS_190310080 VALUES(703994 ,‘PN0783’, 4); INSERT INTO PLAYS_190310080 VALUES(703473 ,’RG0211’, 7); INSERT INTO PLAYS_190310080 VALUES(412483 ,‘RG0211’, 1); ______________________________________________________________________________ __ *******QUERIES******* 1. Display name, club name, date of birth, and fees of all composers. QUERY: SELECT M.MNAME,C.CNAME,M.BDATE,M.FEES FROM MUSICIAN_190310080 M,CLUB_190310080 C WHERE M.MID=C.COMPOSERID; OUTPUT: BDATE FEES JOHN LENNON ELTON JOHN MNAME BEATLES HERCULES CNAME 07-JAN-41 23-MAR-51 750000 550000 KENNY G SYMPHONY 30-MAR-61 680000 MICK JAGGER ROLLING STONE 17-OCT-67 500000 2. Display instrument name, ins_id, musical key and highest rank for the instrument. QUERY: SELECT I.NAME,I.INS_ID,I.MUSICAL_KEY,MAX(P.RANK) FROM INSTRUMENT_190310080 I,PLAYS_190310080 P WHERE I.INS_ID=P.INS_ID GROUP BY I.NAME,I.INS_ID,I.MUSICAL_KEY; OUTPUT: INS_ID MUSICAL_KEY MAX(P.RANK) SAXOPHONE PIANO NAME SX1155 PN0783 A-S-MINOR C-FLAT 1 8 DRUM DR0338 B-MINOR 9 GUITAR RYM GUITAR GR0107 RG0211 B-FLAT C-MAJOR 6 7 3. Find the Mid, Name and club no. of those musicians whose fees is below the average fees of all musicians. QUERY: SELECT MID,MNAME,CLUBNO FROM MUSICIAN_190310080 GROUP BY MID,MNAME,CLUBNO,FEES HAVING FEES<(SELECT AVG(FEES) FROM MUSICIAN_190310080); OUTPUT: MID MNAME 703994 412108 412483 703980 201483 PAUL MCCARTNEY CHARLIE WYATTS MICK JAGGER RINGO STARR DENNY ANDERSON CLUBNO 703 412 412 703 201 4. Display the details of musicians those who earns more that the lowest fees of club 201. QUERY: SELECT MNAME,FEES,BDATE,GENDER,ADDRESS,COMPOSERID,CLUBNO FROM MUSICIAN_190310080 GROUP BY MNAME,FEES,BDATE,GENDER,ADDRESS,COMPOSERID,CLUBNO HAVING FEES>(SELECT MIN(FEES) FROM MUSICIAN_190310080 WHERE CLUBNO=201); OUTPUT: MNAME FEES BDATE COMPOSERID CLUBNO KENNY G ELTON JOHN JOHN LENNON GEORGE HARRISON KEITH ROGERS MICK JAGGER 680000 550000 750000 30-MAR-61 23-MAR-51 07-JAN-41 M M M GENDER WASINGTON U.S.A LONDON U.K LIVERPOOL U.K ADDRESS - 719 201 703 600000 11-DEC-41 M LIVERPOOL U.K 703473 703 600000 500000 21-MAY-51 17-OCT-67 M M LONDON U.K LONDON U.K 412483 - 412 412 5. Display the club having highest average fees. QUERY: SELECT CLUBNO FROM MUSICIAN_190310080 GROUP BY CLUBNO HAVING AVG(FEES)=(SELECT MAX(AVG_FEES) FROM (SELECT AVG(FEES) AS AVG_FEES FROM MUSICIAN_190310080 GROUP BY CLUBNO)); OUTPUT: CLUBNO 719 6. Write a PL/SQL block to display the MNAmE and FESS of ‘KENNY G'. QUERY: DECLARE NAME VARCHAR2(20); F NUMBER(9); BEGIN SELECT MNAME,FEES INTO NAME,F FROM MUSICIAN_190310080 WHERE MNAME='KENNY G'; DBMS_OUTPUT.PUT_LINE('NAME OF MUSICIAN : '|| NAME); DBMS_OUTPUT.PUT_LINE('FEES : '||F); END; OUTPUT: NAME OF MUSICIAN : KENNY G FEES : 680000