Advertisement
Guest User

Untitled

a guest
Sep 24th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 14.88 KB | None | 0 0
  1. /*USE master
  2. GO
  3.  
  4. IF DB_ID('EstateAgency') IS NOT NULL
  5. CREATE DATABASE EstateAgency
  6. GO
  7.  
  8. USE EstateAgency
  9. */
  10.  
  11. -- ------------------------------------------------------
  12. -- Usuwanie tabel (w odwrotnej kolejnoci do tworzenia!)
  13. -- ------------------------------------------------------
  14.  
  15. IF OBJECT_ID('Parking_slots','U') IS NOT NULL
  16.     DROP TABLE  parking_slots
  17. IF OBJECT_ID('Flats_low','U') IS NOT NULL
  18.     DROP TABLE Flats_low
  19. IF OBJECT_ID('Flats_high','U') IS NOT NULL
  20.     DROP TABLE Flats_high
  21.  
  22.  
  23. IF OBJECT_ID('Payments','U') IS NOT NULL
  24.     DROP TABLE Payments
  25.  
  26. IF OBJECT_ID('Lease','U') IS NOT NULL
  27.     DROP TABLE Lease
  28.  
  29. IF OBJECT_ID('Agents','U') IS NOT NULL
  30.     DROP TABLE  Agents
  31. IF OBJECT_ID('Renters','U') IS NOT NULL
  32.     DROP TABLE  Renters
  33. GO
  34.  
  35. -- --------------------------------
  36. -- Tworzenie tabel
  37. -- --------------------------------
  38. IF OBJECT_ID('Renters','U') IS NULL -- If the table does not exist
  39. CREATE TABLE Renters( -- Create table
  40.     renter_ID VARCHAR(10) NOT NULL,
  41.     first_Name VARCHAR(20),
  42.     surname VARCHAR(20),
  43.     born_on DATE,
  44.     email VARCHAR(30),
  45.     ID_card_number varchar(20) ,
  46.         PRIMARY KEY (renter_ID),
  47.  )
  48.  
  49.  IF OBJECT_ID('Agents','U') IS NULL -- If the table does not exist
  50. CREATE TABLE Agents( -- Create table
  51.     agent_ID VARCHAR(10) NOT NULL,
  52.     first_Name VARCHAR(20),
  53.     surname VARCHAR(20),
  54.     born_on DATE,
  55.     email VARCHAR(30),
  56.     ID_card_number varchar(20) ,
  57.         PRIMARY KEY (agent_ID),
  58.  )
  59.  
  60. IF OBJECT_ID('Lease','U') IS NULL -- If the table does not exist
  61. CREATE TABLE Lease( -- Create table
  62.   flat_ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
  63.   flat_standard VARCHAR(10),
  64.   renter_ID VARCHAR(10),
  65.   agent_ID VARCHAR(10),
  66.   signing_date DATE,
  67.   expiration_date DATE,
  68.     CONSTRAINT FK_Renters FOREIGN KEY(renter_ID)
  69.     REFERENCES Renters(renter_ID),
  70.     CONSTRAINT FK_Agents FOREIGN KEY(agent_ID)
  71.     REFERENCES Agents(agent_ID)
  72.  
  73.  )
  74.  
  75. IF OBJECT_ID('Payments','U') IS NULL -- If the table does not exist
  76. CREATE TABLE Payments( -- Create table
  77.     flat_ID INT IDENTITY(1,1) NOT NULL,
  78.     rent_z³ INT,
  79.     hire_value_z³ INT,
  80.     total_z³ INT,
  81.         PRIMARY KEY(flat_ID),
  82.         FOREIGN KEY (flat_ID) REFERENCES Lease(flat_ID),
  83.  )
  84.  
  85.  IF OBJECT_ID('Flats_low','U') IS NULL -- If the table does not exist
  86. CREATE TABLE Flats_low( -- Create table
  87.     flat_ID INT IDENTITY(1,1) NOT NULL,
  88.     city VARCHAR(20),
  89.     postal_code VARCHAR(10),
  90.     street VARCHAR(40),
  91.     building_number varchar(5),
  92.     flat_number INT,
  93.     gate_code VARCHAR(10),
  94.         PRIMARY KEY (flat_ID),
  95.         FOREIGN KEY (flat_ID) REFERENCES Lease(flat_ID),
  96.  )
  97.  IF OBJECT_ID('Flats_high','U') IS NULL -- If the table does not exist
  98.     CREATE TABLE Flats_high( -- Create table
  99.     flat_ID INT IDENTITY(1,1) NOT NULL,
  100.     city VARCHAR(20),
  101.     postal_code VARCHAR(10),
  102.     street VARCHAR(40),
  103.     building_number varchar(5),
  104.     flat_number INT,
  105.     gate_code VARCHAR(10),
  106.         PRIMARY KEY (flat_ID),
  107.         FOREIGN KEY (flat_ID) REFERENCES Lease(flat_ID),
  108.  )
  109. IF OBJECT_ID('Parking_slots','U') IS NULL -- If the table does not exist
  110. CREATE TABLE Parking_slots( -- Create table
  111.     flat_ID INT IDENTITY(1,1) NOT NULL,
  112.     slot_ID VARCHAR(10),
  113.     PRIMARY KEY (flat_ID),
  114.     FOREIGN KEY (flat_ID) REFERENCES Lease(flat_ID),
  115.  )
  116.  GO
  117.  
  118.  -- ---------------------------------
  119. -- Wstawianie wartoci do tabel
  120. -- ---------------------------------
  121.  
  122. --Renters insert
  123. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'mackow97', 'Maciej',  'Kowalczyk' ,'1997-08-05', 'mackow97@gmail.com', 'CAS 43256');
  124. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'agnkoz95', 'Agnieszka',  'Kozio³' ,'1995-12-07', 'agnkoz95@wp.pl', 'CKL 69847');
  125. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'katnow68', 'Katarzyna',  'Nowak' ,'1968-11-13', 'katnowak68@gmail.com', 'KTR 78347');
  126. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'wojarc70', 'Wojciech',  'Arczyñski' ,'1970-01-09', 'wojciecharczyñski@interia.pl', 'CHG 48999');
  127. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'iwozgr00', 'Iwona',  'Zgorza³ek' ,'2000-04-07', 'iwonazgorzalek2001@gmail.com', 'CFG 40728');
  128. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'robkul83', 'Robert',  'Kula' ,'1983-09-27', 'rkula83@gmail.com', 'LGH 58369');
  129. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'marper99', 'Marcin',  'Perliñski' ,'1999-12-02', 'marcinperliñski1999@wp.pl', 'CAS 57398');
  130. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'anntat92', 'Anna',  'Tatoñ' ,'1992-03-15', 'annataton92@gmail.com', 'CTL 36829');
  131. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'domstê97', 'Dominik',  'Stêpieñ' ,'1997-04-28', 'dstêpieñ97@gmail.com', 'CND 34686');
  132. INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( 'erysta87', 'Eryk',  'Stañski' ,'1987-05-30', 'erykstañski87@onet.pl', 'CTU 63875');
  133.  
  134.  
  135. --Agents insert
  136. INSERT INTO Agents ( agent_ID, first_Name,surname, born_on , email, ID_card_number ) VALUES ( 'krydmo90' , 'Krystian' , 'Dmochowski' , '1990-06-14', 'kdmochowski90@gmail.com', ' CAS 57392' );
  137. INSERT INTO Agents ( agent_ID, first_Name,surname, born_on , email, ID_card_number ) VALUES ( 'karm³o88' , 'Karolina' , 'M³oda' , '1988-08-24', 'karolinam³oda88@wp.com', ' KBT 36252' );
  138. INSERT INTO Agents ( agent_ID, first_Name,surname, born_on , email, ID_card_number ) VALUES ( 'barlap86' , 'Bartosz' , 'Lapis' , '1986-09-17', 'bartoszlapis86@gmail.com', ' CHT 84362' );
  139.  
  140. --Lease insert
  141.  
  142. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'HIGH', 'mackow97', 'barlap86', '2017-09-22', '2018-06-01' );
  143. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'HIGH', 'agnkoz95', 'barlap86', '2018-04-22', '2018-10-01' );
  144. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'LOW', 'katnow68', 'barlap86', '2017-04-01', '2018-06-01' );
  145. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'HIGH', 'wojarc70', 'barlap86', '2018-01-01', '2018-05-20' );
  146. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'HIGH', 'iwozgr00', 'barlap86', '2018-02-01', '2018-07-01' );
  147. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'LOW', 'robkul83', 'karm³o88', '2018-03-01', '2018-10-01' );
  148. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'LOW', 'marper99', 'karm³o88', '2017-10-01', '2018-08-01' );
  149. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'LOW', 'anntat92', 'karm³o88', '2017-11-01', '2018-06-01' );
  150. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'LOW', 'domstê97', 'krydmo90', '2017-07-01', '2018-07-01' );
  151. INSERT INTO Lease (  flat_standard, renter_ID, agent_ID, signing_date, expiration_date ) VALUES ( 'HIGH', 'erysta87', 'krydmo90', '2017-12-01', '2018-12-01' );
  152.  
  153. --Payments insert
  154. INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 400, 1200, 1600 );
  155.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³) VALUES ( 500, 1400, 1900 );
  156.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 200, 600, 800 );
  157.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 600, 1500, 2100 );
  158.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 750, 2000, 2750 );
  159.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 300, 500, 800 );
  160.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 150, 500, 650 );
  161.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 250, 400, 650 );
  162.  INSERT INTO Payments ( rent_z³, hire_value_z³, total_z³ ) VALUES ( 300, 400, 700 );
  163.  INSERT INTO Payments ( rent_z³, hire_value_z³ ,total_z³ ) VALUES ( 800, 1700, 2500 );
  164.  
  165.  --Flats_low insert
  166.  SET IDENTITY_INSERT Flats_low ON
  167.  INSERT INTO Flats_low (flat_ID)
  168.   SELECT flat_ID FROM Lease WHERE flat_standard='LOW';
  169.   SET IDENTITY_INSERT Flats_low OFF
  170. UPDATE Flats_low
  171.     SET city = 'Szczecin' , postal_code='73-323' , street='Goliñskiego' , building_number='48A', flat_number=2, gate_code='482#482#'
  172. WHERE flat_ID=3;
  173. UPDATE Flats_low
  174.     SET city = 'Poznañ' , postal_code='61-443' , street='Ró¿ana' , building_number='22C', flat_number=3, gate_code='223#223#'
  175. WHERE flat_ID=6;
  176. UPDATE Flats_low
  177.     SET city = 'Poznañ' , postal_code='69-532' , street='Zuzanny' , building_number='3B', flat_number=1, gate_code='313#131#'
  178. WHERE flat_ID=7;
  179. UPDATE Flats_low
  180.     SET city = 'Poznañ' , postal_code='66-654' , street='Wiejska' , building_number='14E', flat_number=1, gate_code='141#141#'
  181. WHERE flat_ID=8;
  182. UPDATE Flats_low
  183.     SET city = 'Szczecin' , postal_code='71-642' , street='Lepka' , building_number='34D', flat_number=7, gate_code='347#347#'
  184. WHERE flat_ID=9;
  185.  
  186. --Flats_high insert
  187.  SET IDENTITY_INSERT Flats_high ON
  188.  INSERT INTO Flats_high (flat_ID)
  189.   SELECT flat_ID FROM Lease WHERE flat_standard='HIGH';
  190.   SET IDENTITY_INSERT Flats_high OFF
  191.   UPDATE Flats_high
  192.     SET city = 'Szczecin' , postal_code='71-043' , street='Wojska Polskiego' , building_number='68A', flat_number=4, gate_code='684#684#'
  193. WHERE flat_ID=1;
  194.  UPDATE Flats_high
  195.     SET city = 'Poznañ' , postal_code='65-779' , street='Naramowicka' , building_number='36F', flat_number=2, gate_code='362#362#'
  196. WHERE flat_ID=2;
  197.  UPDATE Flats_high
  198.     SET city = 'Szczecin' , postal_code='71-089' , street='wiêtej Kingi' , building_number='16B', flat_number=8, gate_code='168#168#'
  199. WHERE flat_ID=4;
  200.  UPDATE Flats_high
  201.     SET city = 'Szczecin' , postal_code='72-053' , street='Okulickiego' , building_number='98A', flat_number=7, gate_code='987#987#'
  202. WHERE flat_ID=5;
  203.  UPDATE Flats_high
  204.     SET city = 'Szczecin' , postal_code='75-531' , street='Maciejowa' , building_number='21K', flat_number=2, gate_code='212#212'
  205. WHERE flat_ID=10;
  206.  
  207. -- Parking_slots insert
  208. SET IDENTITY_INSERT Parking_slots ON
  209.  INSERT INTO Parking_slots (flat_ID)
  210.  SELECT flat_ID FROM Lease
  211.  SET IDENTITY_INSERT Parking_slots OFF
  212.  UPDATE Parking_slots
  213.     SET slot_ID='68A04'
  214. WHERE flat_ID=1;
  215.  UPDATE Parking_slots
  216.     SET slot_ID='36F02'
  217. WHERE flat_ID=2;
  218.  UPDATE Parking_slots
  219.     SET slot_ID='48A02'
  220. WHERE flat_ID=3;
  221.  UPDATE Parking_slots
  222.     SET slot_ID='16B08'
  223. WHERE flat_ID=4;
  224.  UPDATE Parking_slots
  225.     SET slot_ID='98A07'
  226. WHERE flat_ID=5;
  227.  UPDATE Parking_slots
  228.     SET slot_ID='22C03'
  229. WHERE flat_ID=6;
  230.  UPDATE Parking_slots
  231.     SET slot_ID='03B01'
  232. WHERE flat_ID=7;
  233.  UPDATE Parking_slots
  234.     SET slot_ID='14E01'
  235. WHERE flat_ID=8;
  236.  UPDATE Parking_slots
  237.     SET slot_ID='34D07'
  238. WHERE flat_ID=9;
  239.  UPDATE Parking_slots
  240.     SET slot_ID='21K02'
  241. WHERE flat_ID=10;
  242.    
  243.  
  244.  
  245. -- ---------------------------------
  246. -- Views - creating
  247. -- ---------------------------------
  248. IF OBJECT_ID('Expiration_date','V') IS NOT NULL
  249.     DROP VIEW Expiration_date
  250. GO
  251. CREATE VIEW Expiration_date AS (
  252.     SELECT TOP (100) flat_ID, flat_standard,expiration_date FROM Lease
  253.     ORDER BY expiration_date ASC
  254. )
  255. GO
  256.  
  257. IF OBJECT_ID('Rent_values','V') IS NOT NULL
  258.     DROP VIEW rent_values
  259. GO
  260. CREATE VIEW Rent_values AS (
  261.     SELECT TOP (100) * FROM Payments
  262.     ORDER BY total_z³ ASC
  263. )
  264. GO
  265.  
  266. IF OBJECT_ID('Szczecin_flats','V') IS NOT NULL
  267.     DROP VIEW Szczecin_flats
  268. GO
  269. CREATE VIEW Szczecin_flats AS (
  270.     SELECT TOP (100) flat_ID,city,postal_code,street,building_number,flat_number FROM Flats_high
  271.     WHERE city='Szczecin'
  272.     UNION ALL
  273.     SELECT TOP (100) flat_ID,city,postal_code,street,building_number,flat_number FROM Flats_low
  274.     WHERE city='Szczecin'
  275. )
  276. GO
  277.  
  278. IF OBJECT_ID('Poznañ_flats','V') IS NOT NULL
  279.     DROP VIEW Poznañ_flats
  280. GO
  281. CREATE VIEW Poznañ_flats AS (
  282.     SELECT TOP (100) flat_ID,city,postal_code,street,building_number,flat_number FROM Flats_high
  283.     WHERE city='Poznañ'
  284.     UNION ALL
  285.     SELECT TOP (100) flat_ID,city,postal_code,street,building_number,flat_number FROM Flats_low
  286.     WHERE city='Poznañ'
  287. )
  288. GO
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295. -- ---------------------------------
  296. -- Procedures - creating
  297. -- ---------------------------------
  298. IF OBJECT_ID('Top_agents','P') IS NOT NULL
  299.     DROP PROCEDURE Top_agents
  300. GO
  301. CREATE PROCEDURE Top_agents AS (
  302.     SELECT  agent_ID, count(agent_ID) AS best_agents FROM Lease GROUP BY agent_ID
  303. )
  304. GO
  305.  
  306. IF OBJECT_ID('Count_flats','P') IS NOT NULL
  307.     DROP PROCEDURE Count_flats
  308. GO
  309. CREATE PROCEDURE Count_flats AS  
  310.     SELECT a.City,SUM(a.flat_numbers) AS flat_numbers FROM (
  311.         SELECT  city,count(City) AS flat_numbers FROM Flats_high GROUP BY city
  312.         UNION ALL
  313.         SELECT  city,count(City) AS flat_numbers FROM Flats_low GROUP BY city )  a
  314.     GROUP BY a.City
  315.    
  316. GO 
  317.    
  318.  
  319.     --Inserting new renter
  320. GO
  321. IF OBJECT_ID('Insert_renter','P') IS NOT NULL
  322.     DROP PROCEDURE Insert_renter
  323. GO
  324. CREATE PROCEDURE Insert_renter
  325.     @renter_ID VARCHAR(10),
  326.     @first_Name VARCHAR(20),
  327.     @surname VARCHAR(20),
  328.     @born_on DATE,
  329.     @email VARCHAR(30),
  330.     @ID_card_number varchar(20)
  331.     AS
  332.     SET NOCOUNT ON
  333.     INSERT INTO Renters ( renter_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( @renter_ID, @first_Name,@surname, @born_on , @email, @ID_card_number)
  334.     GO
  335.  
  336.     --Inserting new agent
  337. IF OBJECT_ID('Insert_agent','P') IS NOT NULL
  338.     DROP PROCEDURE Insert_agent
  339. GO
  340. CREATE PROCEDURE Insert_agent
  341.     @agent_ID VARCHAR(10),
  342.     @first_Name VARCHAR(20),
  343.     @surname VARCHAR(20),
  344.     @born_on DATE,
  345.     @email VARCHAR(30),
  346.     @ID_card_number varchar(20)
  347.     AS
  348.     SET NOCOUNT ON
  349.     INSERT INTO Agents( agent_ID, first_Name,surname, born_on , email, ID_card_number   ) VALUES ( @agent_ID, @first_Name,@surname, @born_on , @email, @ID_card_number)
  350.     GO
  351.    
  352.  
  353.  
  354. -- ---------------------------------------------
  355. -- Reports - creating
  356. -- ---------------------------------------------
  357.  
  358. SELECT * FROM Expiration_date
  359. SELECT * FROM Rent_values
  360. SELECT * FROM Szczecin_flats
  361. SELECT * FROM Poznañ_flats
  362. EXEC Count_flats
  363. EXECUTE Insert_renter @renter_ID='markow77',@first_Name='Marek',@surname='Kownacki',@born_on='1977-04-29',@email='markow77@gmail.com',@ID_card_number='CTL 31284'
  364. GO
  365. EXECUTE Insert_agent @agent_ID='³uklu87',@first_Name='£ukasz',@surname='lusek',@born_on='1987-11-23',@email='³lusek87@interia.pl',@ID_card_number='CJK 62434'
  366. EXEC Top_agents
  367.  
  368.  -- --------------------------------
  369.  SELECT * FROM Lease
  370.  SELECT * FROM Payments
  371.  SELECT * FROM Flats_low
  372.  SELECT * FROM Flats_high
  373.  SELECT * FROM Parking_slots
  374.  SELECT * FROM Renters
  375.  SELECT * FROM Agents
  376.  
  377.  
  378.  -- ---------------------------------------------
  379. -- Database - deleting
  380. -- Comment this script part, if you run the script on the faculty MSSQL server.
  381. -- ---------------------------------------------
  382. /*USE master
  383. GO
  384.  
  385. IF DB_ID('EstateAgency') IS NOT NULL
  386. DROP DATABASE EstateAgency
  387. GO
  388. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement