汽车店数据库
在以下示例 - 汽车商店的数据库中,我们列出了部门,员工,客户和客户汽车。我们使用外键来创建各个表之间的关系。
实例: SQL 小提琴
表之间的关系
- 每个部门可能有 0 个或更多员工
- 每个员工可能有 0 或 1 个经理
- 每位客户可能拥有 0 辆或更多辆汽车
部门
ID |
名称 |
---|---|
1 |
HR |
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 |
FName 参数 | LName | 电话号码 | 经理 ID | DepartmentID | 薪水 | 聘用日期 |
---|---|---|---|---|---|---|---|
1 |
詹姆士 | 工匠 | 1234567890 | 空值 | 1 | 1000 | 2002 年 1 月 1 日 |
2 |
约翰 | 约翰逊 | 2468101214 | 1 | 1 | 400 | 23-03-2005 |
3 |
迈克尔 | 威廉姆斯 | 1357911131 | 1 | 2 | 600 | 12-05-2009 |
4 |
乔纳森 | 工匠 | 1212121212 | 2 | 1 | 500 | 24-07-2016 |
用于创建表的 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 |
FName 参数 | LName | 电子邮件 | 电话号码 | 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')
;