汽车店数据库

在以下示例 - 汽车商店的数据库中,我们列出了部门,员工,客户和客户汽车。我们使用外键来创建各个表之间的关系。

实例: 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')
;