SQL 自动增量

SQL 自动增量

当我们在SQL中处理大型数据库时,几个表和数据字段会要求唯一编号。例如,带有PRIMARY KEY或UNIQUE约束的表列将始终需要一个新的编号。您可以手动完成这项工作,但受限于一定程度。

但是在处理大型数据库时,您可能会忘记最后输入的唯一编号,或者由于不容易记住所有内容,而两次输入相同的编号。除了记忆问题外,给所有记录分配唯一编号也是一项繁琐的任务。这就是SQL中自动增量的作用,它解决了键的不明确性或重复性。

SQL中的自动增量是什么

SQL中的自动增量是一种指定给字段的函数,以便它可以自动为您输入到SQL表中的每条记录生成并提供唯一值。这个字段通常用作PRIMARY KEY列,在您添加每条记录时都必须输入唯一值。然而,它也可以用于UNIQUE约束列。

如何在SQL中使用自动增量

自动增量会为您输入到数据库表中的记录自动生成唯一编号。许多数据库支持自动增量字段。您将遍历一些主要的数据库管理系统,并看到如何设置自动增量列。您需要在所有数据库管理系统中创建一个CUSTOMERS表,并在SQL中使用自动增量。

语法

以下是在列中传递自动增量的语法 –

CREATE TABLE table_name (ID PRIMARY KEY AUTO_INCREMENT = initial_value);

以下是在SQL中向现有表中添加自动增量的语法:

ALTER TABLE table_name AUTO_INCREMENT = initial_value;

初始值 − 这是您希望从中开始编号的初始值。如果我们不传递初始值,则会从默认值开始,即1。

示例

以下是创建一个名为“Customers”的表的查询,该表接受ID作为自增量的示例 −

CREATE TABLE CUSTOMERS(
   ID INT PRIMARY KEY AUTO_INCREMENT,
   NAME VARCHAR (20) NOT NULL
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2)
);

以下是上述查询的输出:

Query OK, 0 rows affected (0.03 sec)

要插入行,我们使用以下查询 –

insert INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES("Ramesh", 32, "Ahmedabad", 2000.00);
insert INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES("Khilan", 25, "Delhi", 1500.00);
insert INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES("kaushik", 23, "Kota", 2000.00);
insert INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES("Chaitali", 25, "Mumbai", 6500.00);

以下是上面查询的输出-

查询成功,影响4行 (0.00 秒)

获取数值

要查看表数据,我们使用以下SELECT查询-

select * from CUSTOMERS;

输出

以下是上述查询的输出,由于自动递增,ID将自动生成-

+----+----------+-----+-----------+---------+
| ID | NAME     | AGE | ADDRESS   | SALARY  |
+----+----------+-----+-----------+---------+
|  1 | Ramesh   |  32 | Ahmedabad | 2000.00 |
|  2 | Khilan   |  25 | Delhi     | 1500.00 |
|  3 | kaushik  |  23 | Kota      | 2000.00 |
|  4 | Chaitali |  25 | Mumbai    | 6500.00 |
+----+----------+-----+-----------+---------+
共有4行 (0.00 秒)

示例

在以下示例中,我们将自增的值传递给之前创建的名为“Customers”的现有表,并传递默认值为100,因此ID将从100开始。

使用语法从名为“CUSTOMERS”的表中的100开始编号,然后插入更多行以查看效果。

以下是开始从名为“Customers”的现有表中的100开始递增的查询语句 −

ALTER TABLE CUSTOMERS AUTO_INCREMENT = 100;

以下是以上查询的输出 −

Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

插入更多行到表中 −

我们插入更多行以查看自增的效果。

insert INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES("Hardik", 27, "Bhopal", 8500.00);
insert INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES("Komal", 22, "MP", 4500.00);
insert INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES("Muffy", 24, "Indore", 10000.00);

下面是上述查询的输出 −

Query OK, 3 row affected (0.00 sec)

查看表格

要查看上述表数据,我们使用以下SELECT查询 −

select * from CUSTOMERS;

输出

上述查询的输出如下所示。它显示了自动递增的作用。我们获取ID的值,它跟在ID 4之后,从100开始。

+-----+----------+-----+-----------+----------+
| ID  | NAME     | AGE | ADDRESS   | SALARY   |
+-----+----------+-----+-----------+----------+
|   1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|   2 | Khilan   |  25 | Delhi     |  1500.00 |
|   3 | kaushik  |  23 | Kota      |  2000.00 |
|   4 | Chaitali |  25 | Mumbai    |  6500.00 |
| 100 | Hardik   |  27 | Bhopal    |  8500.00 |
| 101 | Komal    |  22 | MP        |  4500.00 |
| 102 | Muffy    |  24 | Indore    | 10000.00 |
+-----+----------+-----+-----------+----------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程