在以下示例-一家汽车商店业务的数据库中,我们具有部门,员工,客户和客户汽车的列表。我们正在使用外键在各个表之间创建关系。
实时示例:SQL提琴
每个部门可能有0个或更多员工
每个员工可以有0个或1经理
每个客户可能有0辆或更多的汽车
ID | 名称 |
---|---|
1 | 人力资源 |
2 | 营业额 |
3 | 科技类 |
创建表的SQL语句:
CREATE TABLE Departments ( Id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(25) NOT NULL, PRIMARY KEY(Id) ); INSERT INTO Departments ([Id], [Name]) VALUES (1, 'HR'), (2, 'Sales'), (3, 'Tech') ;
ID | 姓名 | 名称 | 号码 | ManagerId | 部门编号 | 薪水 | 雇用日期 |
---|---|---|---|---|---|---|---|
1 | 詹姆士 | 史密斯 | 1234567890 | 空值 | 1 | 1000 | 2002年1月1日 |
2 | 约翰 | 约翰逊 | 2468101214 | 1 | 1 | 400 | 2005年3月23日 |
3 | 麦可 | 威廉姆斯 | 1357911131 | 1 | 2 | 600 | 2009年12月5日 |
4 | 约翰松 | 史密斯 | 1212121212 | 2 | 1 | 500 | 2016年7月24日 |
创建表的SQL语句:
CREATE TABLE Employees ( Id INT NOT NULL AUTO_INCREMENT, FName VARCHAR(35) NOT NULL, LName VARCHAR(35) NOT NULL, PhoneNumber VARCHAR(11), ManagerId INT, DepartmentId INT NOT NULL, Salary INT NOT NULL, HireDate DATETIME NOT NULL, PRIMARY KEY(Id), FOREIGN KEY (ManagerId) REFERENCES Employees(Id), FOREIGN KEY (DepartmentId) REFERENCES Departments(Id) ); INSERT INTO Employees ([Id], [FName], [LName], [PhoneNumber], [ManagerId], [DepartmentId], [Salary], [HireDate]) VALUES (1, 'James', 'Smith', 1234567890, NULL, 1, 1000, '01-01-2002'), (2, 'John', 'Johnson', 2468101214, '1', 1, 400, '23-03-2005'), (3, 'Michael', 'Williams', 1357911131, '1', 2, 600, '12-05-2009'), (4, 'Johnathon', 'Smith', 1212121212, '2', 1, 500, '24-07-2016') ;
ID | 姓名 | 名称 | 电子邮件 | 号码 | PreferredContact |
---|---|---|---|---|---|
1 | 威廉 | 琼斯 | william.jones@example.com | 3347927472 | 电话 |
2 | 大卫 | 磨坊主 | dmiller@example.net | 2137921892 | 电子邮件 |
3 | 理查德 | 戴维斯 | richard0123@example.com | 空值 | 电子邮件 |
创建表的SQL语句:
CREATE TABLE Customers ( Id INT NOT NULL AUTO_INCREMENT, FName VARCHAR(35) NOT NULL, LName VARCHAR(35) NOT NULL, Email varchar(100) NOT NULL, PhoneNumber VARCHAR(11), PreferredContact VARCHAR(5) NOT NULL, PRIMARY KEY(Id) ); INSERT INTO Customers ([Id], [FName], [LName], [Email], [PhoneNumber], [PreferredContact]) VALUES (1, 'William', 'Jones', 'william.jones@example.com', '3347927472', 'PHONE'), (2, 'David', 'Miller', 'dmiller@example.net', '2137921892', 'EMAIL'), (3, 'Richard', 'Davis', 'richard0123@example.com', NULL, 'EMAIL') ;
ID | 顾客ID | 员工ID | 模型 | 状态 | 总花费 |
---|---|---|---|---|---|
1 | 1 | 2 | 福特F-150 | 准备 | 230 |
2 | 1 | 2 | 福特F-150 | 准备 | 200 |
3 | 2 | 1 | 福特野马 | 等候 | 100 |
4 | 3 | 3 | 丰田普锐斯 | 加工 | 1254 |
创建表的SQL语句:
CREATE TABLE Cars ( Id INT NOT NULL AUTO_INCREMENT, CustomerId INT NOT NULL, EmployeeId INT NOT NULL, Model varchar(50) NOT NULL, Status varchar(25) NOT NULL, TotalCost INT NOT NULL, PRIMARY KEY(Id), FOREIGN KEY (CustomerId) REFERENCES Customers(Id), FOREIGN KEY (EmployeeId) REFERENCES Employees(Id) ); INSERT INTO Cars ([Id], [CustomerId], [EmployeeId], [Model], [Status], [TotalCost]) VALUES ('1', '1', '2', 'Ford F-150', 'READY', '230'), ('2', '1', '2', 'Ford F-150', 'READY', '200'), ('3', '2', '1', 'Ford Mustang', 'WAITING', '100'), ('4', '3', '3', 'Toyota Prius', 'WORKING', '1254') ;