Advertisement
tampurus

SGS assignment 4 for Abdul

Apr 4th, 2024
587
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 5.42 KB | None | 0 0
  1. -- ASSIGNMENT 4
  2. create database gourav_ass_4;
  3. use gourav_ass_4;
  4. CREATE TABLE customer(CID INT PRIMARY KEY,CNAME VARCHAR(30));
  5.  
  6. CREATE TABLE BRANCH( BCODE VARCHAR(5) PRIMARY KEY, BNAME VARCHAR(30) );
  7.  
  8. ALTER TABLE BRANCH ADD CONSTRAINT CPK CHECK (BCODE LIKE 'B');
  9. CREATE TABLE ACCOUNT(ANO VARCHAR(5) PRIMARY KEY, ATYPE CHAR(2), BALANCE numeric(7), CID int, BCODE VARCHAR(5));
  10. ALTER TABLE ACCOUNT ADD FOREIGN KEY(CID) REFERENCES CUSTOMER(CID);
  11. ALTER TABLE ACCOUNT ADD FOREIGN KEY(BCODE) REFERENCES BRANCH(BCODE);
  12. ALTER TABLE ACCOUNT ADD CONSTRAINT CPK2 CHECK (atype IN('S','C'));
  13. ALTER TABLE ACCOUNT ADD CONSTRAINT CPK3 CHECK (ano LIKE 'A%');
  14.  
  15. CREATE TABLE TRANSACTION( TID VARCHAR(5) PRIMARY KEY,
  16. ANO VARCHAR(5), TTYPE CHAR(2), TDATE DATE, TAMOUNT INTEGER );
  17. ALTER TABLE TRANSACTION ADD FOREIGN KEY(ANO) REFERENCES ACCOUNT(ANO);
  18. ALTER TABLE TRANSACTION ADD CONSTRAINT CPK4 CHECK(TTYPE IN('W','D'));
  19. ALTER TABLE TRANSACTION ADD CONSTRAINT CPK5 CHECK (tid LIKE 'T%');
  20.  
  21. INSERT INTO customer (CID, CNAME)
  22. VALUES
  23. (10001, 'Gourav Upadhyay'),
  24. (10002, 'Priya Patel'),
  25. (10003, 'Rahul Singh'),
  26. (10004, 'Ananya Sharma'),
  27. (10005, 'Aarav Gupta'),
  28. (10006, 'Neha Verma'),
  29. (10007, 'Vivek Mishra'),
  30. (10008, 'Kritika Sharma'),
  31. (10009, 'Sandeep Yadav'),
  32. (10010, 'Shreya Joshi');
  33.  
  34. INSERT INTO branch (BCODE, BNAME)
  35. VALUES
  36. ('B0001', 'Ahmedabad'),
  37. ('B0002', 'Surat'),
  38. ('B0003', 'Vadodara'),
  39. ('B0004', 'Rajkot');
  40.  
  41. INSERT INTO account (ANO, ATYPE, BALANCE, CID, BCODE)
  42. VALUES
  43. ('A0001', 'S', 5000, 10001, 'B0001'),
  44. ('A0002', 'S', 7000, 10002, 'B0004'),
  45. ('A0003', 'S', 3000, 10002, 'B0001'),
  46. ('A0004', 'C', 9000, 10004, 'B0001'),
  47. ('A0005', 'S', 6000, 10001, 'B0002'),
  48. ('A0006', 'C', 2000, 10002, 'B0004'),
  49. ('A0007', 'S', 4000, 10007, 'B0004'),
  50. ('A0008', 'C', 8000, 10002, 'B0001'),
  51. ('A0009', 'S', 10000, 10009, 'B0002'),
  52. ('A0010', 'C', 12000, 10010, 'B0004'),
  53. ('A0011', 'S', 15000, 10001, 'B0001'),
  54. ('A0012', 'C', 17000, 10002, 'B0001'),
  55. ('A0013', 'S', 20000, 10003, 'B0002'),
  56. ('A0014', 'S', 22000, 10001, 'B0001'),
  57. ('A0015', 'S', 25000, 10002, 'B0004');
  58.  
  59. INSERT INTO account (ANO, ATYPE, BALANCE, CID, BCODE)
  60. VALUES
  61. ('A0016', 'C', 1000, 10001, 'B0001');
  62.  
  63.  
  64. INSERT INTO transaction (TID, ANO, TTYPE, TDATE, TAMOUNT)
  65. VALUES
  66. ('T0001', 'A0001', 'W', '2024-03-30', 1000),
  67. ('T0002', 'A0001', 'D', '2024-03-30', 2000),
  68. ('T0003', 'A0001', 'W', '2024-03-30', 1500),
  69. ('T0004', 'A0001', 'D', '2024-03-30', 3000),
  70. ('T0005', 'A0001', 'W', '2024-03-30', 2500),
  71. ('T0006', 'A0001', 'D', '2024-03-30', 4000),
  72. ('T0007', 'A0007', 'W', '2024-03-10', 2000),
  73. ('T0008', 'A0008', 'D', '2024-03-30', 3500),
  74. ('T0009', 'A0009', 'W', '2024-03-30', 3000),
  75. ('T0010', 'A0010', 'D', '2024-03-30', 5000),
  76. ('T0011', 'A0011', 'W', '2024-03-20', 4000),
  77. ('T0012', 'A0012', 'D', '2024-04-30', 6000),
  78. ('T0013', 'A0003', 'W', '2024-04-30', 4500),
  79. ('T0014', 'A0014', 'D', '2024-03-30', 7000),
  80. ('T0015', 'A0015', 'W', '2024-03-30', 5500),
  81. ('T0016', 'A0001', 'D', '2024-06-30', 8000),
  82. ('T0017', 'A0002', 'W', '2024-03-10', 1000),
  83. ('T0018', 'A0003', 'D', '2024-07-20', 2000),
  84. ('T0019', 'A0002', 'W', '2024-03-30', 1500),
  85. ('T0020', 'A0002', 'D', '2024-01-30', 3000),
  86. ('T0021', 'A0002', 'W', '2024-03-30', 2500),
  87. ('T0022', 'A0002', 'D', '2024-01-30', 4000),
  88. ('T0023', 'A0008', 'W', '2024-03-30', 2000),
  89. ('T0024', 'A0009', 'D', '2024-03-30', 3500),
  90. ('T0025', 'A0003', 'W', '2024-03-30', 3000);
  91.  
  92. -- C
  93. SELECT *FROM CUSTOMER WHERE CID IN
  94. (SELECT A1.CID FROM ACCOUNT A1, ACCOUNT A2 WHERE A1.ATYPE = 'S' AND A2.ATYPE = 'C' AND A1.CID = A2.CID);
  95.  
  96. SELECT DISTINCT C.Cid, C.Cname  FROM Customer C
  97. INNER JOIN Account A ON C.Cid = A.Cid
  98. INNER JOIN Account A1 ON C.Cid = A1.Cid
  99. WHERE A.Atype = 'S' AND A1.Atype = 'C';
  100.  
  101. -- D
  102. SELECT B.BCODE, B.BNAME, COUNT(A.ANO) as No_of_accounts FROM BRANCH B, ACCOUNT A
  103. WHERE B.BCODE=A.BCODE GROUP BY B.BCODE;
  104.  
  105.  
  106. SELECT B.Bcode, B. Bname, COUNT(A. Ano) AS No_of_accounts
  107. FROM Branch B
  108. JOIN Account A ON B. Bcode=A. Bcode
  109. GROUP BY B. Bcode, B. Bname;
  110.  
  111. -- E
  112.  
  113. SELECT B.BCODE, B. BNAME, COUNT(A.bcode) AS No_of_Accounts
  114. FROM BRANCH B, ACCOUNT A WHERE B.BCODE = A.BCODE
  115. GROUP BY B.BCODE, B.BNAME
  116. HAVING COUNT(A.bcode) <
  117. (SELECT COUNT(a1.ano)/4 FROM account AS a1);
  118.  
  119.  
  120. SELECT B.Bcode, B. Bname, COUNT(A. Ano) AS No_of_Accounts
  121. FROM Branch B, Account A WHERE B.Bcode = A.Bcode
  122. GROUP BY B.Bcode, B. Bname
  123. HAVING COUNT(A. Ano)<
  124. (SELECT COUNT(Ano)/(SELECT COUNT(Bcode) FROM Branch) FROM Account);
  125.  
  126. SELECT B.Bcode, B. Bname, COUNT(A. Ano) AS NoOfAccount
  127. FROM Branch B JOIN Account A ON B.Bcode=A.Bcode
  128. GROUP BY B. Bcode, B. Bname
  129. HAVING COUNT(A. Ano) <
  130. (SELECT COUNT(Ano)/ (SELECT COUNT(Bcode) FROM Branch) FROM Account);
  131.  
  132. -- F
  133. SELECT c.cid, c.cname
  134. FROM customer c, account a, transaction t
  135. WHERE c.cid = a.cid AND a.ano = t.ano
  136. group by t.tdate
  137. having COUNT(t.tdate) = 3;
  138.  
  139. SELECT c.cid, c.cname
  140. FROM customer c
  141. JOIN account a ON c.cid = a.cid
  142. JOIN transaction t ON a.ano = t.ano
  143. GROUP BY c.cid, c.cname
  144. HAVING COUNT(t.tdate) = 3;
  145.  
  146.  
  147. SELECT c.cid, c.cname FROM customer c, account a, transaction t
  148. WHERE c.cid = a.cid AND a.ano = t.ano
  149. GROUP BY c.cid, c.cname, t.tdate
  150. HAVING COUNT(t.tdate) = 3;
  151.  
  152.  
  153. -- G
  154. CREATE VIEW BRANCH_DATA AS SELECT B.BCODE, B.BNAME, COUNT(A.ANO) as No_of_accounts FROM BRANCH B, ACCOUNT A
  155. WHERE B.BCODE=A.BCODE GROUP BY B.BCODE;
  156.  
  157. create view BRANCH_DATA2 AS
  158. SELECT B.Bcode, B. Bname, COUNT(A. Ano) AS No_of_accounts
  159. FROM Branch B
  160. JOIN Account A ON B. Bcode=A. Bcode
  161. GROUP BY B. Bcode, B. Bname;
  162.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement