Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.60 KB | None | 0 0
  1. drop DATABASE proiect1;
  2. CREATE DATABASE proiect13;
  3. CREATE TABLE Asociatie(
  4. id INT NOT NULL PRIMARY KEY,
  5. nume VARCHAR(255) NOT NULL UNIQUE,
  6. administrator VARCHAR(255) NOT NULL,
  7. presedinte VARCHAR(255) NOT NULL,
  8. oras VARCHAR(255) NOT NULL,
  9. iban VARCHAR(25) NOT NULL UNIQUE,
  10. CONSTRAINT chk_iban CHECK (DATALENGTH([iban]) = 24)
  11. )
  12.  
  13. CREATE TABLE Bloc(
  14. id INT NOT NULL PRIMARY KEY,
  15. id_asociatie INT FOREIGN KEY REFERENCES Asociatie(id),
  16. strada VARCHAR(255) NOT NULL,
  17. nr VARCHAR(11) NOT NULL,
  18. etaje INT NOT NULL,
  19. apartamente INT NOT NULL,
  20. CONSTRAINT chk_etaje CHECK (etaje >= 0),
  21. CONSTRAINT chk_apartamente CHECK (apartamente >=0)
  22. )
  23.  
  24. CREATE TABLE Proprietar(
  25. id INT NOT NULL PRIMARY KEY,
  26. nume VARCHAR(255) NOT NULL,
  27. prenume VARCHAR(255) NOT NULL,
  28. email VARCHAR(255) NOT NULL UNIQUE,
  29. cnp VARCHAR(14) NOT NULL UNIQUE
  30. CONSTRAINT chk_cnp CHECK (DATALENGTH([cnp]) = 13)
  31. )
  32.  
  33. CREATE TABLE Apartament(
  34. id INT NOT NULL PRIMARY KEY,
  35. id_bloc INT FOREIGN KEY REFERENCES Bloc(id),
  36. id_proprietar INT FOREIGN KEY REFERENCES Proprietar(id),
  37. nr INT NOT NULL,
  38. etaj INT NOT NULL,
  39. suprafata INT NOT NULL,
  40. persoane INT NOT NULL,
  41. CONSTRAINT chk_nr CHECK (nr > 0),
  42. CONSTRAINT chk_etaj CHECK (etaj >= 0),
  43. CONSTRAINT chk_suprafata CHECK (suprafata > 0),
  44. CONSTRAINT chk_persoane CHECK (persoane >= 0)
  45. )
  46.  
  47. CREATE TABLE Consum(
  48. id INT NOT NULL PRIMARY KEY,
  49. id_apartament INT FOREIGN KEY REFERENCES Apartament(id),
  50. gaz INT NOT NULL,
  51. apa_calda INT NOT NULL,
  52. apa_rece INT NOT NULL,
  53. luna CHAR(10) NOT NULL,
  54. an INT NOT NULL,
  55. CONSTRAINT chk_gaz CHECK (gaz >= 0),
  56. CONSTRAINT chk_apa_calda CHECK (apa_calda >= 0),
  57. CONSTRAINT chk_apa_rece CHECK (apa_rece >= 0),
  58. CONSTRAINT chk_luna_consum CHECK (luna in ('Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie','Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie')),
  59. CONSTRAINT chk_an_consum CHECK (an >= 2010)
  60. )
  61.  
  62. CREATE TABLE Cheltuieli(
  63. id INT NOT NULL PRIMARY KEY,
  64. id_apartament INT FOREIGN KEY REFERENCES Apartament(id),
  65. luna CHAR(10) NOT NULL,
  66. an INT NOT NULL,
  67. total INT NOT NULL,
  68. platit BIT NOT NULL,
  69. CONSTRAINT chk_luna CHECK (luna in ('Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie','Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie')),
  70. CONSTRAINT chk_an CHECK (an >= 2010),
  71. CONSTRAINT chk_total CHECK (total >= 0)
  72. )
  73.  
  74. CREATE TABLE Servicii(
  75. id INT NOT NULL PRIMARY KEY,
  76. id_asociatie INT FOREIGN KEY REFERENCES Asociatie(id) UNIQUE,
  77. apa VARCHAR(255) NOT NULL,
  78. energie VARCHAR(255) NOT NULL,
  79. gaz VARCHAR(255) NOT NULL,
  80. salubritate VARCHAR(255) NOT NULL
  81. )
  82.  
  83. CREATE TABLE Parcare(
  84. id INT NOT NULL PRIMARY KEY,
  85. id_apartament INT FOREIGN KEY REFERENCES Apartament(id),
  86. nr INT NOT NULL
  87. )
  88.  
  89. -- Creates the login test_user with password 'test'.
  90. CREATE LOGIN radu WITH PASSWORD = 'Test12345';
  91. -- Creates a database user for the login created above.
  92. CREATE USER radu FOR LOGIN radu;
  93. -- Create roles
  94. ALTER role db_owner ADD MEMBER radu;
  95.  
  96. CREATE LOGIN ilie WITH PASSWORD = 'Test12345';
  97. CREATE USER ilie FOR LOGIN ilie;
  98. ALTER role db_securityadmin ADD MEMBER ilie;
  99.  
  100. CREATE LOGIN andrei WITH PASSWORD = 'Test12345';
  101. CREATE USER andrei FOR LOGIN andrei;
  102. ALTER role db_datareader ADD MEMBER andrei;
  103.  
  104. SELECT * FROM Asociatie;
  105. INSERT INTO Asociatie VALUES
  106. --(1,'a','b','c','d','RO49AAAA1B31007593840000');
  107. (1, 'Asociatia Strada Plopilor nr 2','Andrei Popescu','Bogdan Marchis','Cluj','RO49AAAA1B31007593840000'),
  108. (2, 'Asociatia Strada Pliesti nr 17','Bogdan Tanase','Ioan Manole','Cluj','RO49AAAA1B31007593844343'),
  109. (3, 'Asociatia Strada Lalelelor nr 4','Bogdan Schim','Catalin Ves','Bistrita','RO49AAAA1B31007593833545'),
  110. (4, 'Asociatia Strada Eroilor nr 11','Cristi Tomescu','Adi Circu','Bistrita','RO49AAAA1C31007593848434'),
  111. (5, 'Asociatia Strada Fabricii nr 34','Tudor Vlad','Mihai Pasca','Bistrita','RO49ABTA1B31007593845445'),
  112. (6, 'Asociatia Strada Replubicii nr 8','Marius Pavel','Luci Pinti','Cluj','RO49BTLRO1B3100759384000');
  113.  
  114. INSERT INTO Bloc VALUES
  115. (1, 1, 'Plopilor','nr 2A',4, 20),
  116. (2, 1, 'Plopilor','nr 2B',6, 30),
  117. (3, 2, 'Ploiesti','nr 17',10, 40),
  118. (4, 2, 'Ploiesti','nr 17C',5, 60),
  119. (5, 3, 'Eroilor','nr 1',2, 8),
  120. (6, 4, 'Fabricii','nr 34',3, 30),
  121. (7, 5, 'Republicii','nr 8',4, 20),
  122. (8, 5, 'Republicii','nr 9',4, 24);
  123.  
  124. INSERT INTO Proprietar VALUES
  125. (1, 'Andrei','Andrei','andrei@gmail.com','1900627103482'),
  126. (2, 'Marcus','Cristi','cristi@gmail.com','1890722063851'),
  127. (3, 'Paltis','Marius','marius@yahoo.com','1970517410013'),
  128. (4, 'Mimo','Bogdan','bogdan@gmail.com','1890503216748'),
  129. (5, 'Cosmo','Marcel','marcel@yahoo.com','1690722292645');
  130.  
  131. INSERT INTO Apartament VALUES
  132. (1, 2, 1, 27, 5, 54, 2),
  133. (2, 1, 3, 4, 1, 35, 1),
  134. (3, 3, 4, 12, 4, 44, 1),
  135. (4, 2, 1, 1, 1, 62, 2),
  136. (5, 4, 2, 5, 1, 89, 3),
  137. (6, 2, 2, 12, 3, 78, 3),
  138. (7, 3, 5, 10, 3, 56, 3),
  139. (8, 1, 1, 14, 3, 78, 2),
  140. (9, 5, 5, 2, 1, 102, 5),
  141. (10, 6, 2, 20, 4, 96, 3),
  142. (11, 1, 2, 14, 3, 46, 2),
  143. (12, 3, 3, 16, 4, 26, 1),
  144. (13, 7, 5, 12, 3, 44, 2),
  145. (14, 8, 5, 24, 4, 50, 2),
  146. (15, 5, 4, 8, 4, 63, 3),
  147. (16, 8, 2, 3, 1, 51, 2);
  148.  
  149.  
  150. INSERT INTO Consum VALUES
  151. (1, 1, 5, 4, 2, 'Decembrie',2018),
  152. (2, 1, 3, 2, 4, 'Noiembrie',2018),
  153. (3, 1, 3, 3, 5, 'Octombrie',2018),
  154. (4, 2, 7, 1, 7, 'Decembrie',2018),
  155. (5, 2, 5, 6, 8, 'Noiembrie',2018),
  156. (6, 2, 5, 7, 3, 'Octombrie',2018),
  157. (7, 3, 3, 3, 5, 'Decembrie',2018),
  158. (8, 3, 2, 9, 6, 'Noiembrie',2018),
  159. (9, 3, 1, 2, 6, 'Octombrie',2018),
  160. (10, 4, 5, 7, 7, 'Decembrie',2018),
  161. (11, 4, 2, 6, 4, 'Noiembrie',2018),
  162. (12, 4, 4, 6, 1, 'Octombrie',2018),
  163. (13, 5, 8, 4, 3, 'Decembrie',2018),
  164. (14, 5, 7, 2, 7, 'Noiembrie',2018),
  165. (15, 5, 6, 3, 8, 'Octombrie',2018),
  166. (16, 6, 6, 8, 5, 'Decembrie',2018),
  167. (17, 6, 5, 5, 6, 'Noiembrie',2018),
  168. (18, 6, 3, 3, 9, 'Octombrie',2018),
  169. (19, 7, 5, 6, 2, 'Decembrie',2018),
  170. (20, 8, 8, 7, 2, 'Decembrie',2018);
  171.  
  172.  
  173. INSERT INTO Cheltuieli VALUES
  174. (1, 1, 'Decembrie',2018, 234,1),
  175. (2, 1, 'Noiembrie',2018, 143,1),
  176. (3, 1, 'Octombrie',2018, 213,1),
  177. (4, 2, 'Decembrie',2018, 187,0),
  178. (5, 2, 'Noiembrie',2018, 342,0),
  179. (6, 2, 'Octombrie',2018, 98,1),
  180. (7, 3, 'Decembrie',2018,341,1),
  181. (8, 3, 'Noiembrie',2018,123,1),
  182. (9, 3, 'Octombrie',2018,238,1),
  183. (10, 4, 'Decembrie',2018,276,0),
  184. (11, 4, 'Noiembrie',2018,167,1),
  185. (12, 4, 'Octombrie',2018,145,1),
  186. (13, 5, 'Decembrie',2018,190,1),
  187. (14, 5, 'Noiembrie',2018,302,1),
  188. (15, 5, 'Octombrie',2018,129,1),
  189. (16, 6, 'Decembrie',2018,264,0),
  190. (17, 6, 'Noiembrie',2018,175,1),
  191. (18, 6, 'Octombrie',2018,154,1),
  192. (19, 7, 'Decembrie',2018,187,1),
  193. (20, 8, 'Decembrie',2018,292,1);
  194.  
  195. INSERT INTO Parcare VALUES
  196. (1, 1, 23),
  197. (2, 2, 10),
  198. (3, 3, 2),
  199. (4, 3, 7),
  200. (5, 4, 20),
  201. (6, 3, 5),
  202. (7, 6, 24),
  203. (8, 6, 9),
  204. (9, 7, 33),
  205. (10, 5, 21);
  206.  
  207. INSERT INTO Servicii VALUES
  208. (1,1,'Aquabis','Electrica', 'Eon','Rosal'),
  209. (2,2,'Aquabis','Electrica', 'Eon','Rosal'),
  210. (3,3,'Aquabis','Electrica', 'Eon','Rosal'),
  211. (4,4,'Aquabis','Electrica', 'Eon','Rosal'),
  212. (5,5,'Aquabis','Electrica', 'Eon','Rosal');
  213.  
  214.  
  215. CREATE VIEW [Proprietari care au mai multe apartamente] AS
  216. SELECT p.Nume, p.Prenume
  217. FROM Proprietar as p
  218. INNER JOIN Apartament as a
  219. ON p.id=a.id_proprietar
  220. GROUP BY P.ID
  221. HAVING(a.id_proprietar) > 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement