汽車店資料庫

在以下示例 - 汽車商店的資料庫中,我們列出了部門,員工,客戶和客戶汽車。我們使用外來鍵來建立各個表之間的關係。

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