Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize | PHPize | SQLtest

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

A A A
Login    Share code      Blog   FAQ
Copy Format Clear
-- TABLES -- Table: Guest CREATE TABLE Guest ( GuestID INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(100) NOT NULL, Email VARCHAR(100) UNIQUE NOT NULL, Phone VARCHAR(15), Address TEXT, CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Table: Room CREATE TABLE Room ( RoomID INT PRIMARY KEY AUTO_INCREMENT, RoomNumber VARCHAR(10) UNIQUE NOT NULL, Type ENUM('Single', 'Double', 'Suite') NOT NULL, PricePerNight DECIMAL(10, 2) NOT NULL CHECK (PricePerNight >= 0), Status ENUM('Available', 'Booked', 'Maintenance') NOT NULL DEFAULT 'Available', CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Table: Booking CREATE TABLE Booking ( BookingID INT PRIMARY KEY AUTO_INCREMENT, GuestID INT, RoomID INT, CheckInDate DATE NOT NULL, CheckOutDate DATE NOT NULL, TotalAmount DECIMAL(10, 2) CHECK (TotalAmount >= 0), PaymentStatus ENUM('Pending', 'Paid') NOT NULL DEFAULT 'Pending', CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (GuestID) REFERENCES Guest(GuestID) ON DELETE CASCADE, FOREIGN KEY (RoomID) REFERENCES Room(RoomID) ON DELETE CASCADE, CHECK (CheckOutDate > CheckInDate) ); -- Table: Payment CREATE TABLE Payment ( PaymentID INT PRIMARY KEY AUTO_INCREMENT, BookingID INT, PaymentDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, Amount DECIMAL(10, 2) NOT NULL CHECK (Amount >= 0), Method ENUM('Card', 'Cash', 'UPI') NOT NULL, FOREIGN KEY (BookingID) REFERENCES Booking(BookingID) ON DELETE CASCADE ); -- Table: Staff CREATE TABLE Staff ( StaffID INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(100) NOT NULL, Role VARCHAR(50) NOT NULL, Contact VARCHAR(15), CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- SAMPLE DATA -- Guests INSERT INTO Guest (Name, Email, Phone, Address) VALUES ('John Doe', 'john@example.com', '1234567890', '123 Main St'), ('Emma Watson', 'emma@example.com', '9876543210', '456 Elm St'), ('David Miller', 'david@example.com', '9123456789', '789 Oak St'); -- Rooms INSERT INTO Room (RoomNumber, Type, PricePerNight, Status) VALUES ('101', 'Single', 1500.00, 'Available'), ('102', 'Double', 2500.00, 'Booked'), ('201', 'Suite', 4000.00, 'Available'), ('202', 'Double', 2600.00, 'Maintenance'); -- Bookings INSERT INTO Booking (GuestID, RoomID, CheckInDate, CheckOutDate, TotalAmount, PaymentStatus) VALUES (1, 1, '2025-04-20', '2025-04-22', 3000.00, 'Paid'), (2, 2, '2025-04-21', '2025-04-23', 5000.00, 'Pending'), (3, 3, '2025-04-25', '2025-04-27', 8000.00, 'Pending'); -- Payments INSERT INTO Payment (BookingID, Amount, Method) VALUES (1, 3000.00, 'Card'), (2, 5000.00, 'UPI'); -- Staff INSERT INTO Staff (Name, Role, Contact) VALUES ('Alice Smith', 'Manager', '9876543210'), ('Robert Brown', 'Receptionist', '9988776655'), ('Nina Patel', 'Housekeeping', '8877665544'); -- SAMPLE QUERIES -- 1. View all bookings SELECT * FROM Booking; -- 2. View available rooms SELECT RoomNumber, Type, PricePerNight FROM Room WHERE Status = 'Available'; -- 3. Get full booking details with guest and room info SELECT b.BookingID, g.Name AS GuestName, r.RoomNumber, r.Type, b.CheckInDate, b.CheckOutDate, b.TotalAmount, b.PaymentStatus FROM Booking b JOIN Guest g ON b.GuestID = g.GuestID JOIN Room r ON b.RoomID = r.RoomID; -- 4. Check pending payments SELECT g.Name, b.BookingID, b.TotalAmount - IFNULL(p.Amount, 0) AS RemainingAmount FROM Booking b JOIN Guest g ON b.GuestID = g.GuestID LEFT JOIN Payment p ON b.BookingID = p.BookingID WHERE b.PaymentStatus = 'Pending'; -- 5. List all staff and their roles SELECT * FROM Staff; -- 6. Get total revenue from all paid bookings SELECT SUM(Amount) AS TotalRevenue FROM Payment; -- 7. Show booking count per guest SELECT g.Name, COUNT(b.BookingID) AS TotalBookings FROM Guest g LEFT JOIN Booking b ON g.GuestID = b.GuestID GROUP BY g.GuestID; -- 8. Show room utilization (how many times each room is booked) SELECT r.RoomNumber, COUNT(b.BookingID) AS TimesBooked FROM Room r LEFT JOIN Booking b ON r.RoomID = b.RoomID GROUP BY r.RoomID;

Stuck with a problem? Got Error? Ask AI support!

Copy Clear