Advertisement
Coolcap5

1st text

Mar 19th, 2024
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.38 KB | None | 0 0
  1. CREATE TABLE PUBLISHER (
  2.     NAME VARCHAR2(20) PRIMARY KEY,
  3.     PHONE INTEGER,
  4.     ADDRESS VARCHAR2(20)
  5. );
  6.  
  7. CREATE TABLE BOOK (
  8.     BOOK_ID INTEGER PRIMARY KEY,
  9.     TITLE VARCHAR2(20),
  10.     PUB_YEAR VARCHAR2(20),
  11.     PUBLISHER_NAME REFERENCES PUBLISHER(NAME) ON DELETE CASCADE
  12. );
  13.  
  14. CREATE TABLE BOOK_AUTHORS (
  15.     AUTHOR_NAME VARCHAR2(20),
  16.     BOOK_ID INTEGER REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE,
  17.     PRIMARY KEY (BOOK_ID, AUTHOR_NAME)
  18. );
  19.  
  20. CREATE TABLE LIBRARY_BRANCH (
  21.     BRANCH_ID INTEGER PRIMARY KEY,
  22.     BRANCH_NAME VARCHAR2(50),
  23.     ADDRESS VARCHAR2(50)
  24. );
  25.  
  26. CREATE TABLE BOOK_COPIES (
  27.     NO_OF_COPIES INTEGER,
  28.     BOOK_ID INTEGER REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE,
  29.     BRANCH_ID INTEGER REFERENCES LIBRARY_BRANCH(BRANCH_ID) ON DELETE CASCADE,
  30.     PRIMARY KEY (BOOK_ID, BRANCH_ID)
  31. );
  32.  
  33. CREATE TABLE CARD (
  34.     CARD_NO INTEGER PRIMARY KEY
  35. );
  36.  
  37. CREATE TABLE BOOK_LENDING (
  38.     DATE_OUT DATE,
  39.     DUE_DATE DATE,
  40.     BOOK_ID INTEGER REFERENCES BOOK(BOOK_ID) ON DELETE CASCADE,
  41.     BRANCH_ID INTEGER REFERENCES LIBRARY_BRANCH(BRANCH_ID) ON DELETE CASCADE,
  42.     CARD_NO INTEGER REFERENCES CARD(CARD_NO) ON DELETE CASCADE,
  43.     PRIMARY KEY (BOOK_ID, BRANCH_ID, CARD_NO)
  44. );
  45.  
  46. INSERT INTO PUBLISHER VALUES ('MCGRAW-HILL', 9989076587, 'BANGALORE');
  47. INSERT INTO PUBLISHER VALUES ('PEARSON', 9889076565, 'NEWDELHI');
  48. INSERT INTO PUBLISHER VALUES ('RANDOM HOUSE', 7455679345, 'HYDERABAD');
  49. INSERT INTO PUBLISHER VALUES ('HACHETTE LIVRE', 8970862340, 'CHENNAI');
  50. INSERT INTO PUBLISHER VALUES ('GRUPO PLANETA', 7756120238, 'BANGALORE');
  51.  
  52. INSERT INTO BOOK VALUES (1, 'DBMS', 'JAN-2017', 'MCGRAW-HILL');
  53. INSERT INTO BOOK VALUES (2, 'ADBMS', 'JUN-2016', 'MCGRAW-HILL');
  54. INSERT INTO BOOK VALUES (3, 'CN', 'SEP-2016', 'PEARSON');
  55. INSERT INTO BOOK VALUES (4, 'CG', 'SEP-2015', 'GRUPO PLANETA');
  56. INSERT INTO BOOK VALUES (5, 'OS', 'MAY-2016', 'PEARSON');
  57.  
  58. INSERT INTO BOOK_AUTHORS VALUES ('NAVATHE', 1);
  59. INSERT INTO BOOK_AUTHORS VALUES ('NAVATHE', 2);
  60. INSERT INTO BOOK_AUTHORS VALUES ('TANENBAUM', 3);
  61. INSERT INTO BOOK_AUTHORS VALUES ('EDWARD ANGEL', 4);
  62. INSERT INTO BOOK_AUTHORS VALUES ('GALVIN', 5);
  63.  
  64. INSERT INTO LIBRARY_BRANCH VALUES (10, 'RR NAGAR', 'BANGALORE');
  65. INSERT INTO LIBRARY_BRANCH VALUES (11, 'RNSIT', 'BANGALORE');
  66. INSERT INTO LIBRARY_BRANCH VALUES (12, 'RAJAJI NAGAR', 'BANGALORE');
  67. INSERT INTO LIBRARY_BRANCH VALUES (13, 'NITTE', 'MANGALORE');
  68. INSERT INTO LIBRARY_BRANCH VALUES (14, 'MANIPAL', 'UDUPI');
  69.  
  70. INSERT INTO BOOK_COPIES VALUES (10, 1, 10);
  71. INSERT INTO BOOK_COPIES VALUES (5, 1, 11);
  72. INSERT INTO BOOK_COPIES VALUES (2, 2, 12);
  73. INSERT INTO BOOK_COPIES VALUES (5, 2, 13);
  74. INSERT INTO BOOK_COPIES VALUES (7, 3, 14);
  75. INSERT INTO BOOK_COPIES VALUES (1, 5, 10);
  76. INSERT INTO BOOK_COPIES VALUES (3, 4, 11);
  77.  
  78. INSERT INTO CARD VALUES (100);
  79. INSERT INTO CARD VALUES (101);
  80. INSERT INTO CARD VALUES (102);
  81. INSERT INTO CARD VALUES (103);
  82. INSERT INTO CARD VALUES (104);
  83.  
  84. INSERT INTO BOOK_LENDING VALUES ('01-JAN-17', '01-JUN-17', 1, 10, 101);
  85. INSERT INTO BOOK_LENDING VALUES ('11-JAN-17', '11-MAR-17', 3, 14, 101);
  86. INSERT INTO BOOK_LENDING VALUES ('21-FEB-17', '21-APR-17', 2, 13, 101);
  87. INSERT INTO BOOK_LENDING VALUES ('15-MAR-17', '15-JUL-17', 4, 11, 101);
  88. INSERT INTO BOOK_LENDING VALUES ('12-APR-17', '12-MAY-17', 1, 11, 104);
  89.  
  90.  
  91. -- 1. Retrieve details of all books in the library – id, title, name of publisher, authors, number of copies in each branch, etc.
  92. SELECT B.BOOK_ID, B.TITLE, B.PUBLISHER_NAME, A.AUTHOR_NAME,
  93. C.NO_OF_COPIES, L.BRANCH_ID
  94. FROM BOOK B, BOOK_AUTHORS A, BOOK_COPIES C, LIBRARY_BRANCH L
  95. WHERE B.BOOK_ID=A.BOOK_ID
  96. AND B.BOOK_ID=C.BOOK_ID
  97. AND L.BRANCH_ID=C.BRANCH_ID;
  98.  
  99. -- 2. Get the particulars of borrowers who have borrowed more than 3 books, but from Jan 2017 to Jun 2017.
  100. SELECT CARD_NO
  101. FROM BOOK_LENDING
  102. WHERE DATE_OUT BETWEEN '01-JAN-2017' AND '01-JUL-2017'
  103. GROUP BY CARD_NO
  104. HAVING COUNT(*) > 3;
  105.  
  106. -- 3. Delete a book in BOOK table. Update the contents of other tables to reflect this data manipulation operation.
  107. DELETE FROM BOOK
  108. WHERE BOOK_ID = 3;
  109.  
  110. -- 4.Partition the BOOK table based on year of publication. Demonstrate its working with a
  111. simple query.
  112. CREATE VIEW V_PUBLICATION AS
  113. SELECT PUB_YEAR
  114. FROM BOOK;
  115.  
  116. -- 5. Create a view of all books and its number of copies that are currently available in the Library.
  117. CREATE VIEW V_BOOKS AS
  118. SELECT B.BOOK_ID, B.TITLE, C.NO_OF_COPIES
  119. FROM BOOK B
  120. JOIN BOOK_COPIES C ON B.BOOK_ID = C.BOOK_ID;
  121.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement