gabi11

SQL - 15. Hotel Database

Sep 23rd, 2019
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.77 KB | None | 0 0
  1. CREATE DATABASE Hotel
  2.  
  3. USE Hotel
  4.  
  5. CREATE TABLE Employees (
  6.     Id INT PRIMARY KEY IDENTITY,
  7.     FirstName NVARCHAR(30) NOT NULL,
  8.     LastName NVARCHAR(30) NOT NULL,
  9.     Title NVARCHAR(20) NOT NULL,
  10.     Notes NVARCHAR(MAX)
  11. )
  12.  
  13. CREATE TABLE Customers (
  14.     AccountNumber INT PRIMARY KEY IDENTITY,
  15.     FirstName NVARCHAR(30) NOT NULL,
  16.     LastName NVARCHAR(30) NOT NULL,
  17.     PhoneNumber INT UNIQUE NOT NULL,
  18.     EmergencyName NVARCHAR(30),
  19.     EmergencyNumber NVARCHAR(20),
  20.     Notes NVARCHAR(MAX)
  21. )
  22.  
  23. CREATE TABLE RoomStatus (
  24.     RoomStatus NVARCHAR(20) PRIMARY KEY,
  25.     Notes NVARCHAR(MAX)
  26. )
  27.  
  28. CREATE TABLE RoomTypes (
  29.     RoomType NVARCHAR(20) PRIMARY KEY,
  30.     Notes NVARCHAR(MAX)
  31. )
  32.  
  33. CREATE TABLE BedTypes (
  34.     BedType NVARCHAR(20) PRIMARY KEY,
  35.     Notes NVARCHAR(MAX)
  36. )
  37.  
  38. CREATE TABLE Rooms (
  39.     RoomNumber INT PRIMARY KEY IDENTITY,
  40.     RoomType NVARCHAR(20) FOREIGN KEY REFERENCES RoomTypes(RoomType),
  41.     BedType NVARCHAR(20) FOREIGN KEY REFERENCES BedTypes(BedType),
  42.     Rate DECIMAL(3, 2),
  43.     RoomStatus NVARCHAR(20) FOREIGN KEY REFERENCES RoomStatus(RoomStatus),
  44.     Notes NVARCHAR(MAX)
  45. )
  46.  
  47. CREATE TABLE Payments (
  48.     Id INT PRIMARY KEY IDENTITY,
  49.     EmployeeId INT FOREIGN KEY REFERENCES Employees(Id),
  50.     PaymentDate DATE NOT NULL,
  51.     AccountNumber INT FOREIGN KEY REFERENCES Customers(AccountNumber),
  52.     FirstDateOccupied DATE NOT NULL,
  53.     LastDateOccupied DATE NOT NULL,
  54.     TotalDays INT NOT NULL,
  55.     AmountCharged DECIMAL(10, 2) NOT NULL,
  56.     TaxRate DECIMAL(4, 2),
  57.     TaxAmount DECIMAL(10, 2) NOT NULL,
  58.     PaymentTotal DECIMAL(10, 2) NOT NULL,
  59.     Notes NVARCHAR(MAX)
  60. )
  61.  
  62. CREATE TABLE Occupancies (
  63.     Id INT PRIMARY KEY IDENTITY,
  64.     EmployeeId INT FOREIGN KEY REFERENCES Employees(Id),
  65.     DateOccupied DATE NOT NULL,
  66.     AccountNumber INT FOREIGN KEY REFERENCES Customers(AccountNumber),
  67.     RoomNumber INT FOREIGN KEY REFERENCES Rooms(RoomNumber),
  68.     RateApplied DECIMAL(3, 2),
  69.     PhoneCharge DECIMAL(10, 2),
  70.     Notes NVARCHAR(MAX)
  71. )
  72.  
  73. INSERT INTO Employees
  74.         (FirstName, LastName, Title, Notes)
  75. VALUES     
  76.         ('Gabriela', 'Stantcheva', 'CEO', NULL),
  77.         ('Petar', 'Marinov', 'Manager', NULL),
  78.         ('Liliya', 'Markova', 'HR', NULL)
  79.  
  80. INSERT INTO Customers
  81.         (FirstName, LastName, PhoneNumber,
  82.         EmergencyName, EmergencyNumber, Notes)
  83. VALUES     
  84.         ('Georgi', 'Ivanov', 9456739, 'Milena', 4676789, NULL),
  85.         ('Kris', 'Angelov', 8758914, 'Stamat', 5678890, NULL),
  86.         ('Martina', 'Vangelova', 9100112, 'Iva', 45678745, NULL)
  87.  
  88. INSERT INTO RoomStatus(RoomStatus, Notes)
  89. VALUES      ('Free', NULL),
  90.         ('Occupied', NULL),
  91.         ('Reserved', NULL)
  92.  
  93. INSERT INTO RoomTypes(RoomType, Notes)
  94. VALUES      ('Single', NULL),
  95.         ('Double', NULL),
  96.         ('Studio', NULL)
  97.  
  98. INSERT INTO BedTypes(BedType, Notes)
  99. VALUES      ('Single', NULL),
  100.         ('Double', NULL),
  101.         ('Triple', NULL)
  102.  
  103. INSERT INTO Rooms
  104.         (RoomType, BedType, Rate, RoomStatus, Notes)
  105. VALUES    
  106.         ('Single', 'Single', 7.25, 'Free', NULL),
  107.         ('Double', 'Double', 8.30, 'Occupied', NULL),
  108.         ('Studio', 'Triple', 9.20, 'Reserved', NULL)
  109.  
  110. INSERT INTO Payments
  111.             (EmployeeId, PaymentDate, AccountNumber,
  112.             FirstDateOccupied, LastDateOccupied,
  113.             TotalDays, AmountCharged, TaxRate,
  114.             TaxAmount, PaymentTotal, Notes)
  115. VALUES            
  116.             (1, '1999-09-09', 1, '1999-09-09', '1999-09-19', 10, 500.00, 20.00, 100.00, 600.00, NULL),
  117.             (2, '2008-07-15', 2, '2008-08-20', '2007-09-01', 11, 660.00, 20.00, 132.00, 792.00, NULL),
  118.             (3, '2019-02-16', 3, '2019-07-02', '2019-07-22', 20, 1500.00, 20.00, 300.00, 1800.00, NULL)
  119.  
  120. INSERT INTO Occupancies
  121.         (EmployeeId, DateOccupied, AccountNumber,
  122.          RoomNumber, RateApplied, PhoneCharge, Notes)
  123. VALUES    
  124.         (1, '1999-09-09', 1, 3, NULL, 50.00, NULL),
  125.         (2, '2008-08-20', 2, 2, NULL, 15.50, NULL),
  126.         (3, '2019-07-02', 3, 1, NULL, 0.00, NULL)
Advertisement
Add Comment
Please, Sign In to add comment