SQL 备忘单

摘要:在本教程中,您将学习如何使用 SQL 自动增量为列定义值,即自动生成的顺序整数。

在设计表时,我们通常使用代理 主键,其值为由数据库系统自动生成的顺序整数。

此主键列被称为 标识 或自动增量列。

当向自动增量列中插入新行时,将使用自动生成的顺序整数进行插入。

例如,如果第一行的值为 1,则第二行的值为 2,依此类推。

有些数据库系统允许你定义起始值和增量值。例如,当起始值为 10,增量值为 20 时,顺序整数为 10、20、30,依此类推。

不同的数据库系统采用不同的方式实现自动增量列。让我们看看 SQL 自动增量列是如何在一些主要的数据库系统中实现的。

MySQL 中的 SQL 自动增量列

MySQL 使用 AUTO_INCREMENT 属性来定义自动增量列。参见以下示例

CREATE TABLE leave_requests (
    request_id INT AUTO_INCREMENT,
    employee_id INT NOT NULL,
    start_date DATE NOT NULL,
    end_date DATE NOT NULL,
    leave_type INT NOT NULL,
    PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)

在此示例中,我们创建了一个名为 leave_requests 的新表,其 request_id 为自动增量列。

Oracle 中的 SQL 自动增量列

Oracle 使用 标识列 来创建一个自动增量列,如下所示

CREATE TABLE leave_requests (
    request_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    employee_id INT NOT NULL,
    start_date DATE NOT NULL,
    end_date DATE NOT NULL,
    leave_type INT NOT NULL,
    PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)

PostgreSQL 中的 SQL 自动增量列

类似于 Oracle,PostgreSQL 也使用 标识列 来定义自动增量列

CREATE TABLE leave_requests (
    request_id INT GENERATED BY DEFAULT AS IDENTITY,
    employee_id INT NOT NULL,
    start_date DATE NOT NULL,
    end_date DATE NOT NULL,
    leave_type INT NOT NULL,
    PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)

SQL Server 中的 SQL 自动增量列

SQL Server 使用 IDENTITY 属性来定义自动增量列,如下面的查询中所示

CREATE TABLE leave_requests (
    request_id INT IDENTITY(1,1),
    employee_id INT NOT NULL,
    start_date DATE NOT NULL,
    end_date DATE NOT NULL,
    leave_type INT NOT NULL,
    PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)

DB2 中的 SQL 自动增量列

像 Oracle,DB2 使用标识列来定义自动增量列

CREATE TABLE leave_requests (
    request_id INT GENERATED BY DEFAULT AS IDENTITY,
    employee_id INT NOT NULL,
    start_date DATE NOT NULL,
    end_date DATE NOT NULL,
    leave_type INT NOT NULL,
    PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)

在本教程中,您学习了如何使用 SQL 自动增量列为列定义值,即自动生成的顺序整数。

本教程有帮助吗?