Advertisement
Guest User

Untitled

a guest
May 6th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.62 KB | None | 0 0
  1. CREATE TABLE Gatunek (
  2.   ID INT NOT NULL,
  3.   Nazwa VARCHAR(255) NOT NULL,
  4.   PRIMARY KEY (ID)
  5. )
  6.  
  7. CREATE TABLE Autor (
  8.   ID INT NOT NULL,
  9.   Imie VARCHAR(255) NOT NULL,
  10.   Nazwisko VARCHAR(255) NOT NULL,
  11.   PRIMARY KEY (ID)
  12. );
  13.  
  14. CREATE TABLE Uzytkownik (
  15.   ID INT NOT NULL,
  16.   Imie VARCHAR(255) NOT NULL,
  17.   Nazwisko VARCHAR(255) NOT NULL,
  18.   Login VARCHAR(255) NOT NULL,
  19.   Haslo VARCHAR(255) NOT NULL,
  20.   PRIMARY KEY (ID)
  21. );
  22.  
  23. CREATE TABLE Wydawnictwo (
  24.   ID INT NOT NULL,
  25.   Nazwa VARCHAR(255) NOT NULL,
  26.   Adres VARCHAR(255),
  27.   Rok_zalozenia INT,
  28.   PRIMARY KEY (ID)
  29. );
  30.  
  31. CREATE TABLE Ksiazka (
  32.   ID INT NOT NULL,
  33.   Tytul VARCHAR(255) NOT NULL,
  34.   ID_Autor INT FOREIGN KEY REFERENCES Autor(ID),
  35.   Wydawnictwo INT FOREIGN KEY REFERENCES Wydawnictwo(ID),
  36.   Rok_wydania VARCHAR(255) NOT NULL,
  37.   Liczba_stron INT NOT NULL,
  38.   ID_Gatunek INT FOREIGN KEY REFERENCES Gatunek(ID),
  39.   PRIMARY KEY (ID)
  40. );
  41.  
  42. CREATE TABLE Egzemplarz (
  43.   ID INT NOT NULL,
  44.   ID_Ksiazka INT FOREIGN KEY REFERENCES Ksiazka(ID),
  45.   Numer_seryjny INT NOT NULL,
  46.   ID_Uzytkownik_rezerwujacy INT FOREIGN KEY REFERENCES Uzytkownik(ID),
  47.   PRIMARY KEY (ID)
  48. );
  49.  
  50. CREATE TABLE Wypozyczenie (
  51.   ID INT NOT NULL,
  52.   ID_Uzytkownik INT FOREIGN KEY REFERENCES Uzytkownik(ID),
  53.   ID_Egzemplarz INT FOREIGN KEY REFERENCES Egzemplarz(ID),
  54.   Data_wypozyczenia DATE,
  55.   Data_oddania DATE,
  56.   PRIMARY KEY (ID)
  57. )
  58.  
  59.  
  60. INSERT INTO Gatunek(ID,Nazwa) VALUES
  61. (1, 'Fantasy'),
  62. (2, 'Dramat'),
  63. (3, 'Thriller'),
  64. (4, 'Powiesc graficzna'),
  65. (5, 'Filozofia'),
  66. (6, 'Kryminal'),
  67. (7, 'Powiesc'),
  68. (8, 'Sensacja'),
  69. (9, 'Przewodnik');
  70.  
  71. INSERT INTO Autor (ID,Imie,Nazwisko) VALUES
  72. (1, 'Alan', 'Moore'),
  73. (2, 'John', 'Tolkien'),
  74. (3, 'William', 'Shakespeare'),
  75. (4, 'Paula', 'Hawkins'),
  76. (5, 'Robin','Cook'),
  77. (6, 'Christopher', 'Paolini'),
  78. (7, 'Piotr','Stankiewicz'),
  79. (8, 'Anthony', 'Horowitz'),
  80. (9, 'Wojtek', 'Cejrowski'),
  81. (10, 'Michal', 'Heller'),
  82. (11, 'Anna', 'Golisz'),
  83. (12, 'Jakub', 'Zielina');
  84.  
  85. INSERT INTO Uzytkownik (ID,Imie,Nazwisko,Login,Haslo) VALUES
  86. (1, 'Ryszard', 'Kuduk', 'rych123', 'kasztan2'),
  87. (2, 'Zbyszek', 'Zkisly', 'kokoszka2', 'kurkuma22'),
  88. (3, 'Patryk', 'Gaska', 'gaskages', 'kurak321'),
  89. (4, 'Daniel', 'Szymura', 'szymszym2', 'albadon345'),
  90. (5, 'Piotr','Cemowski', 'cockos', 'pwd87'),
  91. (6, 'Adrian', 'Wisniewski', 'sineh', 'jkafraps'),
  92. (7, 'Waldemar', 'Jantar', 'qwaldi', 'waldirazdwa'),
  93. (8,'Kamil','Bryl','cybkl','kora546'),
  94. (9,'Michal', 'Matosek', 'masotek','mastomakos22'),
  95. (10,'Hanna','Schulte-Noelle','hannaanna','matematykaliceum1');
  96.  
  97.  
  98. INSERT INTO Wydawnictwo(ID,Nazwa,Rok_zalozenia) VALUES
  99. (1, 'PWN', 1956),
  100. (2, 'Nowy Swiat', 1978),
  101. (3, 'Gdanskie', 1965),
  102. (4, 'Swiat Ksiazki', 2001),
  103. (5, 'Dom wydawniczy Rebis', 2005),
  104. (6, 'Wydawnictwo Mag' , 1995),
  105. (7, 'Wydawnictwo W.A.B.', 1997),
  106. (8, 'Wydawnictwo Petrus', 2001);
  107.  
  108. INSERT INTO Ksiazka (ID, Tytul, ID_Autor, Wydawnictwo, Rok_wydania, Liczba_stron, ID_Gatunek) VALUES
  109. (1, 'Watchmen', 1, 3, 1985, 400, 4),
  110. (2, 'V for Vendetta', 1, 3, 1987, 356, 4),
  111. (3, 'Lord of the rings', 2, 1, 1946, 426, 1),
  112. (4, 'Dziewczyna z pociagu', 4 ,4, 2015, 328, 3),
  113. (5, 'Znieczulenie', 5, 5, 2016, 254, 3),
  114. (6, 'Eragon', 6, 6, 2012 ,504, 1 ),
  115. (7, 'Sztuka zycia wedlug stoikow', 7, 7, 2014, 380, 5),
  116. (8, 'Dom jedwabny', 8, 5, 2011, 304, 6),
  117. (9, 'Makbet', 3, 3, 2013, 91, 2),
  118. (10, 'Komorka', 5, 5, 2014, 186, 6),
  119. (11, 'Coma', 5, 5, 2008, 324, 3),
  120. (12, 'Brisingr', 6, 6, 2014, 340, 1),
  121. (13, 'Cyngiel smierci', 8, 5, 2015, 280, 8),
  122. (14, 'Pasja wiedzy', 10, 8, 2009, 280, 5),
  123. (15, 'Moja Japonia', 11, 8, 2010, 272, 9),
  124. (16, 'Wierzenia Prawoslowian',12, 8, 2011, 144,9),
  125. (17, 'Filozofia kosmologi', 10, 7, 2016, 174, 5);
  126.  
  127.  
  128. INSERT INTO Egzemplarz (ID,ID_Ksiazka,Numer_seryjny,ID_Uzytkownik_rezerwujacy) VALUES
  129. (1, 1, 3214, NULL),
  130. (2, 3, 4213, 2),
  131. (3, 2, 4651, NULL),
  132. (4, 1, 3546, NULL),
  133. (5,4,24566,NULL),
  134. (6,4,356546,NULL),
  135. (7,5,633,NULL),
  136. (8,5,56363,NULL),
  137. (9,6,3212,NULL),
  138. (10,7,31856,NULL),
  139. (11,7,567,NULL),
  140. (12,7,74567,NULL),
  141. (13,8,33567,NULL),
  142. (14,8,37333,NULL),
  143. (15,9,756735,NULL),
  144. (16,9,674657,NULL),
  145. (17,10,746,NULL),
  146. (18,11,73675,NULL),
  147. (19,12,74567,NULL),
  148. (20,12,35672,NULL),
  149. (21,13,35636,5),
  150. (22,14,1234,NULL),
  151. (23,14,2789,NULL),
  152. (24,14,23487,NULL),
  153. (25,15,3425,3),
  154. (26,15,23876,2),
  155. (27,15,2378,NULL),
  156. (28,16,23786,6),
  157. (29,16,245878,6),
  158. (30,17,43688,NULL);
  159.  
  160. INSERT INTO Wypozyczenie(ID, ID_Uzytkownik, ID_Egzemplarz, Data_wypozyczenia, Data_oddania) VALUES
  161. (1,1,1,'2011-11-05', '2011-12-06'),
  162. (2,2,2,'2011-11-05', '2011-12-07'),
  163. (3,1,2, '2016-05-06',NULL),
  164. (4,4,3, '2016-06-07', '2016-06-08'),
  165. (5,3,4,'2016-01-12', '2016-01-17'),
  166. (6,4,1, '2014-05-24', '2014-05-30'),
  167. (7,3,4, '2015-08-12', NULL),
  168. (8,4,5, '2016-08-15', '2016-08-19'),
  169. (9,3,5,'2015-09-16', '2015-09-23'),
  170. (10,2,6, '2015-12-15',  NULL),
  171. (11,3,7,'2015-04-23', '2015-04-28'),
  172. (12,6,7,'2014-02-25', '2014-04-28'),
  173. (13,7,8,'2015-06-06', '2015-06-12'),
  174. (14,6,8, '2015-07-05', '2015-07-12' ),
  175. (15,7,8, '2016-08-03', NULL),
  176. (16,8,9,'2015-09-07', '2015-09-15'),
  177. (17,8,24,'2015-06-04', '2015-06-08'),
  178. (18,9,30,'2016-07-13', NULL),
  179. (19,10,12,'2016-04-15', '2016-04-24'),
  180. (20,10,18,'2015-11-18', '2015-12-26');
  181.  
  182.  
  183.  
  184. -- 1. Wypisuje tytuly ksiazek wypozyczonych.                
  185. SELECT Tytul FROM WYpozyczenie
  186. JOIN Egzemplarz
  187.     ON Wypozyczenie.ID_Egzemplarz = Egzemplarz.ID
  188. JOIN Ksiazka
  189.     ON Ksiazka.ID = Egzemplarz.ID_Ksiazka
  190. WHERE Data_oddania IS NULL
  191.  
  192. --Alternatywnie                              
  193. SELECT Tytul FROM Wypozyczenie AS w
  194. JOIN Egzemplarz AS e
  195.     ON w.ID_Egzemplarz = e.ID
  196. JOIN Ksiazka AS ks
  197.     ON ks.ID = e.ID_Ksiazka
  198. WHERE Data_oddania IS NULL
  199.  
  200. --2. Grupuje autorów według ilości napisanych Ksiazek          
  201. SELECT Nazwisko, COUNT(ks.ID) AS ilosc_ksiazek FROM Autor AS a
  202. JOIN Ksiazka AS ks
  203.     ON ks.ID_Autor = a.ID
  204. GROUP BY Nazwisko
  205. ORDER BY ilosc_ksiazek DESC
  206.  
  207. --3. Grupuje ksiazki według ilosci egzemplarzy                                                    
  208. SELECT Tytul, COUNT(ks.ID) AS ilosc_egzemplarzy FROM Ksiazka AS ks
  209. JOIN Egzemplarz AS e
  210.     ON e.ID_Ksiazka = ks.ID
  211. GROUP BY Tytul
  212. ORDER BY ilosc_egzemplarzy DESC
  213.  
  214. --4. TOP 5 Popular
  215. SELECT TOP(5) Tytul, COUNT(wyp.ID_Egzemplarz) AS Ilosc_wypozyczonych  FROM Wypozyczenie AS wyp
  216. JOIN Egzemplarz AS e
  217.     ON e.ID = wyp.ID_Egzemplarz
  218. JOIN Ksiazka AS ks
  219.     ON e.ID_Ksiazka = ks.ID
  220. GROUP BY Tytul
  221. ORDER BY Ilosc_wypozyczonych DESC
  222. --6. Znajduje ksiazki z jednego gatunku danego autora
  223. SELECT Tytul FROM Ksiazka
  224. WHERE ID_Gatunek = 4
  225. AND ID_Autor IN
  226.  (SELECT ID_Autor FROM Ksiazka
  227.  WHERE ID_Autor = 1)
  228.  
  229.  --7.
  230.  
  231. IF OBJECT_ID ('Data_oddania', 'V') IS NOT NULL
  232.  DROP VIEW Data_oddania ;
  233. GO
  234. CREATE VIEW Data_oddania AS
  235.  SELECT Ksiazka.Tytul, Ksiazka.Autor
  236.  FROM Ksiazka
  237. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement