Uploaded by Greeny Insane

A1 07 lab test

advertisement
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
Download