Friday, 20 December 2019

RDS-19


Slip19
Consider the following entities and their relationships.       
Game(game_name, no_of_players, coach_name)
Player (pid, pname, address, club_name)
Relation between Game and Player is Many to Many.
Constraint: Primary key, no_of_players should be > 0.
Create a RDB in 3NF and write PL/SQL blocks in Oracle for the following:

> create table game(gno int primary key,gname varchar(15),nplayer varchar(15),cname varchar(15));
> insert into game values ('1','cricket','12','patil');
> create table play(pid int primary key,pname varchar(20),address varchar(20),c1name varchar(20));
> insert into play values('5','swarup','pune','city');
> create table gp(gno int primary key,pid int);
> insert into gp values('11','12');

1)Write a function which will return total number of football players of “Sports Club”.

SQL> set serveroutput on
SQL>  create or replace function f1(abc varchar) return number as pqr number;
  2   begin
  3   select count(game.nplayer) into pqr from game,play,gp where game.gno=gp.gno and play.pid=gp.pid and gname=’football’ and c1name=’sports’ ;
  4   if sql %found then
  5   return(pqr);
  6   else
  7   return null;
  8   end if;
  9   end f1;
 10   /

Function created.

SQL> begin
  2  dbms_output.put_line('play-'||f1 ('football'));
  3  end;
  4  /

2)Write a cursor which will display club wise details of players.

SQL>  set serveroutput on

SQL>  declare

  2   cursor c1 is select  gname, pname from game, play,gp game.gno=gp.gno and play.pid=gp.pid  order by c1name;

  3   c c1%rowtype;

  4    begin

  5    open c1;

  6    loop

  7    fetch c1 into c;

  8    exit when c1%notfound;

  9    dbms_output.put_line(c. gname ||''||c.pname);

 10    end loop;

 11    close c1;

 12    end;

 13  /