Advertisement
Worldblender

DreamHome Database Creation

Oct 11th, 2018
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.49 KB | None | 0 0
  1. CREATE DATABASE DreamHome ;
  2. /* DATETIME of SQL Server will be used as DATE data type of the standard SQL */
  3. USE DreamHome ;
  4.  
  5.  
  6. CREATE TABLE Branch (
  7. branchNo   CHAR(4) NOT NULL,
  8. street     VARCHAR(25) NOT NULL,
  9. city       VARCHAR(15) NOT NULL,
  10. postcode   VARCHAR(8) NOT NULL,
  11. CONSTRAINT branch_PK
  12.        PRIMARY KEY (branchNo)
  13. );
  14.  
  15. CREATE TABLE Staff (
  16. staffNo    VARCHAR(5) NOT NULL,
  17. fName      VARCHAR(15) NOT NULL,
  18. lName      VARCHAR(15) NOT NULL,
  19. oPosition  VARCHAR(10) NOT NULL,
  20. sex        CHAR (1),
  21. DOB        DATE,
  22. salary     DECIMAL(9,2) NOT NULL,
  23. branchNo   CHAR(4) NOT NULL,
  24. CONSTRAINT staff_PK
  25.        PRIMARY KEY (staffNo),
  26. CONSTRAINT Staff_Branch_FK
  27.        FOREIGN KEY (branchNo)
  28.            REFERENCES Branch(branchNo)
  29. );
  30.  
  31. CREATE TABLE PrivateOwner (
  32. ownerNo    VARCHAR(7) NOT NULL,
  33. fName      VARCHAR(15) NOT NULL,
  34. lName      VARCHAR(15) NOT NULL,
  35. address    VARCHAR(50) NOT NULL,
  36. telNo      VARCHAR(13) NOT NULL,
  37. CONSTRAINT privateOwner_PK
  38.        PRIMARY KEY (ownerNo)
  39. );
  40.  
  41. CREATE TABLE PropertyForRent (
  42. propertyNo VARCHAR(8) NOT NULL,
  43. street     VARCHAR(25) NOT NULL,
  44. city       VARCHAR(15) NOT NULL,
  45. postcode   VARCHAR(8) NOT NULL,
  46. propertyType VARCHAR(10) NOT NULL,
  47. rooms      SMALLINT NOT NULL,
  48. rent       DECIMAL(5, 1) NOT NULL,
  49. ownerNo    VARCHAR(7) NOT NULL,
  50. staffNo    VARCHAR(5),
  51. branchNo   CHAR(4) NOT NULL,
  52. CONSTRAINT propertyForRent_PK
  53.        PRIMARY KEY (propertyNo),
  54. CONSTRAINT Property_Owner_FK
  55.        FOREIGN KEY (ownerNo)
  56.        REFERENCES PrivateOwner(ownerNo),
  57. CONSTRAINT Property_Staff_FK
  58.        FOREIGN KEY (staffNo)
  59.        REFERENCES Staff(staffNo),
  60. CONSTRAINT Property_Branch_FK
  61.        FOREIGN KEY (branchNo)
  62.        REFERENCES Branch(branchNo)
  63. );
  64.  
  65. CREATE TABLE Client (
  66. clientNo   VARCHAR(7) NOT NULL,
  67. fName      VARCHAR(15) NOT NULL,
  68. lName      VARCHAR(15) NOT NULL,
  69. telNo      VARCHAR(13) NOT NULL,
  70. prefType   VARCHAR(10) NOT NULL,
  71. maxRent    DECIMAL(5, 1) NOT NULL,
  72. CONSTRAINT client_PK
  73.        PRIMARY KEY (clientNo)
  74. );
  75.  
  76. CREATE TABLE Viewing (
  77. clientNo   VARCHAR(7) NOT NULL,
  78. propertyNo VARCHAR(8) NOT NULL,
  79. viewDate   DATE NOT NULL,
  80. comments   VARCHAR(50),
  81. CONSTRAINT viewing_PK
  82.        PRIMARY KEY (propertyNo, clientNo),
  83. CONSTRAINT Viewing_Propty_FK
  84.        FOREIGN KEY (propertyNo)
  85.        REFERENCES PropertyForRent(propertyNo),
  86. CONSTRAINT Viewing_Client_FK
  87.        FOREIGN KEY (clientNo)
  88.        REFERENCES Client(clientNo)
  89. );
  90.  
  91. CREATE TABLE Registration (
  92. clientNo   VARCHAR(7) NOT NULL,
  93. branchNo   CHAR(4) NOT NULL,
  94. staffNo    VARCHAR(5) NOT NULL,
  95. dateJoined DATE NOT NULL,
  96. CONSTRAINT registration_PK
  97.        PRIMARY KEY (clientNo, branchNo),
  98. CONSTRAINT Regist_Client_FK
  99.        FOREIGN KEY (clientNo)
  100.        REFERENCES Client(clientNo),
  101. CONSTRAINT Regist_Branch_FK
  102.        FOREIGN KEY (branchNo)
  103.            REFERENCES Branch(branchNo),
  104. CONSTRAINT Regist_Staff_FK
  105.        FOREIGN KEY (staffNo)
  106.        REFERENCES Staff(staffNo)
  107. );
  108.  
  109. /*-- COMMIT
  110.  
  111. -- Inserting the test data
  112. --
  113. -- Note: SQL Server and some other DBMS do not accept DATE in front of date literals
  114. --       so you may need to remove the DATE words from the INSERT commands below.
  115. */
  116. INSERT INTO Branch VALUES ('B005', '22 Deer Rd',   'London',   'SW1 4EH');
  117. INSERT INTO Branch VALUES ('B007', '16 Argyll St', 'Aberdeen', 'AB2 3SU');
  118. INSERT INTO Branch VALUES ('B003', '163 Main St',  'Glasgow',  'G11 9QX');
  119. INSERT INTO Branch VALUES ('B004', '32 Manse Rd',  'Bristol',  'BS99 1NZ');
  120. INSERT INTO Branch VALUES ('B002', '56 Clover Dr', 'London',   'NW10 6EU');
  121.  
  122. INSERT INTO Staff VALUES ('SL21', 'John', 'White','Manager',   'M', '1945-10-01', 30000, 'B005');
  123. INSERT INTO Staff VALUES ('SG37', 'Ann',  'Beech','Assistant', 'F', '1960-10-11', 12000, 'B003');
  124. INSERT INTO Staff VALUES ('SG14', 'David','Ford', 'Supervisor','M', '1958-11-24', 18000, 'B003');
  125. INSERT INTO Staff VALUES ('SA9',  'Mary', 'Howe', 'Assistant', 'F', '1970-02-19', 9000, 'B007');
  126. INSERT INTO Staff VALUES ('SG5',  'Susan','Brand','Manager',   'F', '1940-06-03', 24000, 'B003');
  127. INSERT INTO Staff VALUES ('SL41', 'Julie','Lee',  'Assistant', 'F', '1965-06-13', 9000, 'B005');
  128.  
  129. INSERT INTO PrivateOwner VALUES ('CO46', 'Joe',  'Keogh', '2 Fergus Dr, Aberdeen AB2 7SX','01224-861212');
  130. INSERT INTO PrivateOwner VALUES ('CO87', 'Carol','Farrel','6 Achray St, Glasgow G32 9DX', '0141-357-7419');
  131. INSERT INTO PrivateOwner VALUES ('CO40', 'Tina', 'Murphy','63 Well St, Glasgow G42',      '0141-943-1728');
  132. INSERT INTO PrivateOwner VALUES ('CO93', 'Tony', 'Shaw',  '12 Park Pl, Glasgow G4 0QR',   '0141-225-7025');
  133.  
  134. INSERT INTO PropertyForRent VALUES ('PA14', '16 Holhead',  'Aberdeen', 'AB7 5SU', 'House',6, 650, 'CO46', 'SA9', 'B007');
  135. INSERT INTO PropertyForRent VALUES ('PL94', '6 Argyll St',  'London',  'NW2',     'Flat', 4, 400, 'CO87', 'SL41', 'B005');
  136. INSERT INTO PropertyForRent VALUES ('PG4',  '6 Lawrence St','Glasgow', 'G11 9QX', 'Flat', 3, 350, 'CO40', NULL, 'B003');
  137. INSERT INTO PropertyForRent VALUES ('PG36', '2 Manor Rd',   'Glasgow', 'G32 4QX', 'Flat', 3, 375, 'CO93', 'SG37', 'B003');
  138. INSERT INTO PropertyForRent VALUES ('PG21', '18 Dale Rd',   'Glasgow', 'G12',     'House',5, 600, 'CO87', 'SG37', 'B003');
  139. INSERT INTO PropertyForRent VALUES ('PG16', '5 Novar Dr',   'Glasgow', 'G12 9AX', 'Flat', 4, 450, 'CO93', 'SG14', 'B003');
  140.  
  141. INSERT INTO Client VALUES ('CR76', 'John', 'Kay',     '0207-774-5632', 'Flat',  425);
  142. INSERT INTO Client VALUES ('CR56', 'Aline','Stewart', '0141-848-1825', 'Flat',  350);
  143. INSERT INTO Client VALUES ('CR74', 'Mike', 'Ritchie', '01475-392178',  'House', 750);
  144. INSERT INTO Client VALUES ('CR62', 'Mary', 'Tregar',  '01224-196720',  'Flat',  600);
  145.  
  146. INSERT INTO Viewing VALUES ('CR56', 'PA14', '2001-05-24', 'too small');
  147. INSERT INTO Viewing VALUES ('CR76', 'PG4',  '2001-04-20', 'too --ote');
  148. INSERT INTO Viewing VALUES ('CR56', 'PG4',  '2001-05-26', NULL);
  149. INSERT INTO Viewing VALUES ('CR62', 'PA14', '2001-05-14', 'no dining room');
  150. INSERT INTO Viewing VALUES ('CR56', 'PG36', '2001-04-28', NULL);
  151.  
  152. INSERT INTO Registration VALUES ('CR76', 'B005', 'SL41', '2001-01-02');
  153. INSERT INTO Registration VALUES ('CR56', 'B003', 'SG37', '2000-04-11');
  154. INSERT INTO Registration VALUES ('CR74', 'B003', 'SG37', '1999-11-16');
  155. INSERT INTO Registration VALUES ('CR62', 'B007', 'SA9',  '2000-03-07');
  156. /*
  157. -- By default SQL Server uses AutoCommit mode, but to protect the data
  158. -- in case of using other implementations we include here COMMIT
  159. -- There is no harm of the SQL Server warning we will get on missing BEGIN TRANSACTION
  160. */
  161. COMMIT ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement