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 |
+-----+----------+-----+-----------+----------+