Advertisement
Aniket_Goku

assi4

Nov 19th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.47 KB | None | 0 0
  1. -----------------------------------------------------------------------
  2. CREATE TABLE doctor
  3.  (
  4.     D_id VARCHAR(20) primary key,
  5.     D_name VARCHAR(20) NOT NULL,
  6.     D_city VARCHAR(20)
  7. ) ;
  8. CREATE TABLE patient
  9.  (
  10.     P_id VARCHAR(20) primary key,
  11.     P_name VARCHAR(20),
  12.     P_city VARCHAR(20)
  13. ) ;
  14. CREATE TABLE bill
  15.  ( 
  16.     B_id VARCHAR(20) primary key,
  17.     P_id VARCHAR(20),
  18.     D_id VARCHAR(20),
  19.     bill_date DATE,
  20.     bill_amt NUMBER CHECK(bill_amt>0),
  21.     constraints fk_P_id foreign key  (P_id) references  patient(P_id) ON DELETE cascade,
  22.     constraints fk_D_id foreign key  (D_id) references  doctor(D_id) ON DELETE cascade 
  23. ) ;
  24.  
  25. INSERT INTO doctor VALUES('D01','Carryminati','Surat');
  26. INSERT INTO doctor VALUES('D02','Bhuvan','Navsari');
  27. INSERT INTO doctor VALUES('D03','Aashish','Bharuch');
  28. INSERT INTO doctor VALUES('D04','Harsh','Ahemdabad');
  29. INSERT INTO doctor VALUES('D05','billgates','Porbandar');
  30. INSERT INTO doctor VALUES('D06','Titu','Jamnagar');
  31.  
  32.  
  33.  
  34. -- insert
  35. INSERT INTO patient   VALUES('a','Aniket','Surat');
  36. INSERT INTO patient   VALUES('b','Sahil','Navsari');
  37. INSERT INTO patient   VALUES('c','Abbas','Aanand');
  38. INSERT INTO patient   VALUES('d','Tiger','Katchh');
  39. INSERT INTO patient   VALUES('e','Faran','Jammu');
  40. INSERT INTO patient   VALUES('f','Raju','Girnar');
  41. INSERT INTO patient   VALUES('g','Hardik','Patya');
  42. INSERT INTO patient   VALUES('h','Dhoni','Jamnagar');
  43. INSERT INTO patient   VALUES('i','Baburav','Baroda');
  44. INSERT INTO patient   VALUES('j','Kachrasheth','Vadodara');
  45.  
  46. --select s1.currval from dual;
  47. --TRUNCATE TABLE PATIENT;
  48. --insert  bill
  49. INSERT INTO bill VALUES( 'B01','PO46','D01',DATE '2019-06-15' ,25000);
  50. INSERT INTO bill VALUES( 'B02','PO47','D02',DATE '2019-04-21' ,12000);
  51. INSERT INTO bill VALUES( 'B03','PO48','D03',DATE '2019-08-02' ,14000);
  52. INSERT INTO bill VALUES( 'B04','PO49','D04',DATE '2019-05-09' ,19500);
  53. INSERT INTO bill VALUES( 'B05','PO50','D05',DATE '2019-07-23' ,21500);
  54. INSERT INTO bill VALUES( 'B06','PO51','D06',DATE '2019-10-08' ,30000);
  55. INSERT INTO bill VALUES( 'B07','PO46','D01',DATE  '2019-10-21' ,19200);
  56. INSERT INTO bill VALUES( 'B08','PO55','D02',DATE '2019-12-12' ,19000);
  57. INSERT INTO bill VALUES( 'B09','PO53','D03',DATE '2019-02-19' ,28400);
  58. INSERT INTO bill VALUES( 'B10','PO52','D04',DATE '2019-04-21' ,13900);
  59. INSERT INTO bill VALUES( 'B11','PO51','D06',DATE '2019-06-23' ,12300);
  60.  
  61. --1>
  62. SELECT  *
  63. FROM bill "b"
  64. join doctor "d"
  65. ON  "d".D_id="b".D_id
  66. join patient "p"
  67. ON  "p".P_id="b".P_id
  68. WHERE   "d".D_city="p".P_city;
  69.  
  70. --2>
  71. SELECT *
  72. FROM patient
  73. WHERE  P_id IN(
  74.     SELECT P_id
  75.     FROM bill
  76.     WHERE  TO_CHAR(bill_date,'mon-dd')='jun-15'
  77. ) ;
  78.  
  79. --3>
  80. SELECT  D_name AS "Doctor name",COUNT(p_id) AS " NO of Patients"
  81. FROM bill "b"
  82. join  doctor "d"
  83. ON "d".D_id="b".D_id
  84. GROUP BY D_name
  85. ORDER BY D_name;
  86. --4>
  87. SELECT P_name AS "Patient name"
  88. FROM patient
  89. WHERE P_id IN( SELECT P_id
  90.                                 FROM bill
  91.                                 WHERE bill_amt BETWEEN 25000 AND 30000);
  92.  
  93. --5>
  94. SELECT  P_name AS "Patient's Name",D_name AS "Doctor's Name",bill_amt AS "Bill's amount"
  95. FROM bill "b"
  96. join  doctor "d"
  97. ON "d".D_id="b".D_id
  98. join  patient "p"
  99. ON "p".P_id="b".P_id
  100. ORDER BY P_name;
  101. (A)
  102. CREATE OR REPLACE PROCEDURE pro_bdp
  103. (no1 IN VARCHAR)
  104. IS
  105. pn VARCHAR(20);
  106. pc VARCHAR(20);
  107. dn VARCHAR(20);
  108. amt VARCHAR(20);
  109. t NUMBER;
  110. CURSOR c1 IS
  111.         SELECT  P_name,P_city,D_name,bill_amt INTO  pn,pc,dn,amt
  112.         FROM bill "b"
  113.         join  doctor "d"
  114.         ON "d".D_id="b".D_id
  115.         join  patient "p"
  116.         ON "p".P_id="b".P_id
  117.         WHERE B_id=no1;
  118.     Exp1 EXCEPTION ;
  119.  
  120. BEGIN
  121.         t:=0;
  122.         OPEN c1;
  123.         DBMS_OUTPUT.put_line('Patients name ||  Patients city   ||  Doctors name    ||  AMOUNT of bill');
  124.         LOOP
  125.             FETCH c1 INTO  pn,pc,dn,amt;
  126.             EXIT WHEN c1%notfound;
  127.                
  128.                 DBMS_OUTPUT.put_line( pn||' ||  '||pc||'     || '||dn||'    ||  '||amt);
  129.                 t:=1;
  130.         END LOOP;
  131.         IF  t=0 THEN
  132.             RAISE  Exp1;
  133.         END IF;
  134.         EXCEPTION
  135.             WHEN  Exp1 THEN
  136.                 raise_application_error(-20002,'Bid  is invalid');
  137.         CLOSE c1;
  138. END pro_bdp;
  139. /
  140.  
  141. --run pro_bdp
  142. exec pro_bdp('B02');
  143.  
  144.  
  145.  
  146.  
  147. (b)
  148. --sequence
  149.     CREATE   SEQUENCE  s1
  150.     START WITH 1
  151.     increment BY 1;
  152.    
  153. --trigger
  154.  
  155. CREATE  OR REPLACE TRIGGER seq
  156. after INSERT ON  patient
  157. BEGIN
  158.             IF  inserting THEN
  159.                         UPDATE  patient  SET P_id='PO'||s1.NEXTVAL;
  160.                         DBMS_OUTPUT.put_line('Insertion is complete');
  161.                  
  162.             END IF;
  163.                        
  164. END  seq;
  165. /
  166.     DROP TRIGGER seq;
  167.     DROP  sequence s1;
  168. --INSERT into patient (P_name,P_city) values('Aniket','Surat');
  169. --nsert in patient
  170. SELECT s1.CURRVAL FROM dual;
  171.     SELECT * FROM patient;
  172.  
  173.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement