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
-- DDL CREATE DATABASE Company; GO USE Company; GO CREATE TABLE dbo.Employee ( EmployeeID int NOT NULL IDENTITY, SSN char(11) NOT NULL, FullName nvarchar(100) NOT NULL CHECK (LEN(TRIM(FullName)) > 0), EMail nvarchar(150), HireDate date NOT NULL DEFAULT GETDATE(), RoomID smallint, DepartmentID tinyint NOT NULL, CONSTRAINT CK_Employee_SSN CHECK (SSN LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'), CONSTRAINT UQ_Employee_SSN UNIQUE (SSN), CONSTRAINT PK_Employee PRIMARY KEY (EmployeeID) ); CREATE TABLE dbo.EmployeeArchive -- for some experiments ! ( SSN char(11) NOT NULL, FullName nvarchar(100) NOT NULL, HireDate date, CONSTRAINT CK_EmployeeArchive_SSN CHECK (SSN LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]') ); CREATE TABLE dbo.Room ( RoomID smallint NOT NULL IDENTITY, RoomNumber smallint NOT NULL, BuildingAddress nvarchar(200) NOT NULL, [Floor] tinyint, NumberOfPlaces tinyint NOT NULL DEFAULT 10, CONSTRAINT CK_Room_All check (RoomNumber > 0 AND LEN(TRIM(BuildingAddress)) > 0 AND NumberOfPlaces >= 0), CONSTRAINT UQ_Room_RoomNumber_BuildingAddress UNIQUE (RoomNumber, BuildingAddress), CONSTRAINT PK_Room PRIMARY KEY (RoomID) ); CREATE TABLE dbo.Department ( DepartmentID tinyint NOT NULL IDENTITY, DepName nvarchar(60) NOT NULL CHECK (LEN(TRIM(DepName)) > 0), DepManager int NOT NULL UNIQUE, CONSTRAINT UQ_Department_DepName UNIQUE (DepName), CONSTRAINT PK_Department PRIMARY KEY (DepartmentID) ); CREATE TABLE dbo.Project ( ProjectID int NOT NULL IDENTITY, PrjName nvarchar(60) NOT NULL CHECK (LEN(TRIM(PrjName)) > 0), StartDate date NOT NULL, PrjManager int NOT NULL, Customer nvarchar(150), CONSTRAINT UQ_Project_PrjName UNIQUE (PrjName), CONSTRAINT PK_Project PRIMARY KEY (ProjectID) ); CREATE TABLE dbo.EmployeeProjectLink ( EmployeeID int NOT NULL, ProjectID int NOT NULL, HoursPerDay tinyint NOT NULL CHECK (HoursPerDay > 0 AND HoursPerDay < 12), CONSTRAINT PK_EmployeeProjectLink PRIMARY KEY (EmployeeID, ProjectID) ); CREATE TABLE dbo.EmployeeAddition ( EmployeeID int NOT NULL, Photo nvarchar(200), -- it's just a path to a file ! [Address] nvarchar(200), CONSTRAINT PK_EmployeeAddition PRIMARY KEY (EmployeeID) ); ALTER TABLE dbo.Employee ADD CONSTRAINT FK_Employee_Room FOREIGN KEY (RoomID) REFERENCES dbo.Room (RoomID); ALTER TABLE dbo.Employee ADD CONSTRAINT FK_Employee_Department FOREIGN KEY (DepartmentID) REFERENCES dbo.Department (DepartmentID); ALTER TABLE dbo.Department ADD CONSTRAINT FK_Department_Employee FOREIGN KEY (DepManager) REFERENCES dbo.Employee (EmployeeID); ALTER TABLE dbo.Project ADD CONSTRAINT FK_Project_Employee FOREIGN KEY (PrjManager) REFERENCES dbo.Employee (EmployeeID); ALTER TABLE dbo.EmployeeProjectLink ADD CONSTRAINT FK_EmployeeProjectLink_Employee FOREIGN KEY (EmployeeID) REFERENCES dbo.Employee (EmployeeID); ALTER TABLE dbo.EmployeeProjectLink ADD CONSTRAINT FK_EmployeeProjectLink_Project FOREIGN KEY (ProjectID) REFERENCES dbo.Project (ProjectID); ALTER TABLE dbo.EmployeeAddition ADD CONSTRAINT FK_EmployeeAddition_Employee FOREIGN KEY (EmployeeID) REFERENCES dbo.Employee (EmployeeID); GO -- DML USE Company; GO -- insertion order is important !!! INSERT INTO dbo.Room (RoomNumber, BuildingAddress) VALUES (200, N'1329 Carroll Avenue'); INSERT INTO dbo.Room (RoomNumber, BuildingAddress, [Floor]) VALUES (300, N'1329 Carroll Avenue', 1), (400, N'1329 Carroll Avenue', 2); INSERT INTO dbo.Room (RoomNumber, BuildingAddress, NumberOfPlaces) VALUES (200, N'1344 Carroll Avenue', 0), (300, N'1344 Carroll Avenue', 0), (400, N'1344 Carroll Avenue', 0); ALTER TABLE dbo.Employee NOCHECK CONSTRAINT FK_Employee_Department; -- !!! INSERT INTO dbo.Employee (SSN, FullName, EMail, HireDate, RoomID, DepartmentID) VALUES ('567-07-3072', N'Rob Kein', N'KeinR@Comp.com', '2020-10-25', NULL, 1), ('566-85-8867', N'Ted King', N'KingT@Comp.com', '2019-05-15', 2, 1), ('609-15-6922', N'Eric Dane', N'DaneE@Comp.com', '2020-05-10', 1, 2), ('434-18-4851', N'Kerr Smith', N'SmithK@Comp.com', '2020-10-18', 1, 2), ('541-36-7076', N'Holly Combs', NULL, '2020-10-28', 3, 3), ('488-24-9686', N'Rose McGowan', NULL, '2020-11-03', 3, 3), ('003-40-1966', N'Bred Kern', NULL, '2021-09-23', NULL, 3); INSERT INTO dbo.Department (DepName, DepManager) VALUES (N'JAVA', 1), (N'MOBILE', 4), (N'.NET', 7); ALTER TABLE dbo.Employee CHECK CONSTRAINT FK_Employee_Department; -- !!! INSERT INTO dbo.Project (PrjName, StartDate, PrjManager, Customer) VALUES (N'WMAX', '2019-06-01', 2, N'NordWay'), (N'GWEB', '2020-11-01', 1, N'Mercury'), (N'RTEST', '2020-11-01', 5, N'Company'), (N'QNEXT', '2020-06-01', 3, N'NordWay'), (N'UNITY', '2020-11-01', 4, N'Mercury'), (N'NEWPRJ', '2021-01-01', 4, NULL); INSERT INTO dbo.EmployeeAddition (EmployeeID, Photo, [Address]) VALUES (1, NULL, N'909-1/2 E 49th St LA, CA, 90011'), (5, N'D:\PHOTO\Employee_5.jpg', N'7609 Mckinley Ave LA, CA, 90001'), (7, N'D:\PHOTO\Employee_7.jpg', NULL); INSERT INTO dbo.EmployeeProjectLink (EmployeeID, ProjectID, HoursPerDay) VALUES (1, 1, 6), (1, 2, 2), (2, 1, 4), (2, 3, 4), (3, 4, 8), (4, 4, 2), (4, 5, 2), (5, 1, 4), (5, 3, 6); INSERT INTO dbo.EmployeeArchive VALUES ('567-07-3072', N'Rob Kein', '2020-10-25'); GO

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

Copy Clear