- SQL教程
- SQL - 主页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL数据库
- SQL-创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL-备份数据库
- SQL表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 更改表
- SQL - 删除表
- SQL - 删除表
- SQL - 约束
- SQL查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - 选择进入
- SQL - 插入选择
- SQL - 更新查询
- SQL - 删除查询
- SQL - 对结果进行排序
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL-Where 子句
- SQL - 顶部子句
- SQL - 不同子句
- SQL - Order By 子句
- SQL - Group By 子句
- SQL-Having 子句
- SQL - 与与或
- SQL - 布尔(位)运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY、ALL 运算符
- SQL - EXISTS 运算符
- SQL-案例
- SQL - NOT 运算符
- SQL - 不等于
- SQL - 为空
- SQL - 不为空
- SQL - 非空
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION 与 UNION ALL
- SQL - 相交运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用联接
- SQL-内连接
- SQL-左连接
- SQL-右连接
- SQL-交叉连接
- SQL-全连接
- SQL-自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接与右连接
- SQL - 联合与连接
- SQL 键
- SQL - 唯一键
- SQL - 主键
- SQL-外键
- SQL - 复合键
- SQL - 备用键
- SQL索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL-唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高级SQL
- SQL - 通配符
- SQL - 注释
- SQL-注入
- SQL-托管
- SQL - 最小值和最大值
- SQL - 空函数
- SQL - 检查约束
- SQL - 默认约束
- SQL-存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL-自动递增
- SQL - 日期和时间
- SQL-游标
- SQL - 公用表表达式
- SQL - 分组依据与排序依据
- SQL - IN 与 EXISTS
- SQL——数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数字函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL-JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问题与解答
- SQL - 快速指南
- SQL - 有用的函数
- SQL - 有用的资源
- SQL - 讨论
SQL-自动递增
SQL 自动增量用于自动将唯一的顺序值添加到表的列中。
我们通常在创建表时在列上定义自动增量。当我们将新记录插入表中时,唯一值将添加到其中。
当我们对表列使用自动增量时,无需向该列插入 NOT NULL 值。如果我们提供这样的值,它们将覆盖唯一标识,并且增量将(仅)在 NULL 值(如果有)上继续;导致数据含糊不清。
不同的 RDBMS 以不同的方式支持自动增量功能。
MySQL中的自动增量
在 MySQL 中,您可以使用名为AUTO_INCREMENT的属性向表的列添加自动增量功能。
默认情况下,当我们在列上定义 AUTO_INCRMENT 属性时,唯一值将从“1”生成;对于表中输入的每条新记录,该列中的值都会增加 1。因此,插入的第一条记录的值为 1,第二条记录的值为 2,依此类推。
句法
以下是将 AUTO_INCRMENT 属性添加到 MySQL 中表的列的语法 -
CREATE TABLE table_name( column1 datatype AUTO_INCREMENT, column2 datatype, column3 datatype, ..... columnN datatype );
例子
在查询中,我们创建一个名为 CUSTOMERS 的表,并将 AUTO_INCRMENT 添加到名为 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) );
现在,让我们使用 INSERT 语句将值插入到 CUSTOMERS 表中 -
INSERT INTO CUSTOMERS (NAME, AGE, ADDRESS, SALARY) VALUES ("Ramesh", 32, "Ahmedabad", 2000.00), ("Khilan", 25, "Delhi", 1500.00), ("Kaushik", 23, "Kota", 2000.00), ("Chaitali", 25, "Mumbai", 6500.00);
确认
要验证这一点,您需要使用 SELECT 查询检索 CUSTOMERS 的内容:
SELECT * FROM CUSTOMERS;
输出
以下是上述查询的输出,在这里您可以观察到 ID 值是自动生成的 -
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | 拉梅什 | 32 | 艾哈迈达巴德 | 2000.00 |
2 | 基兰 | 25 | 德里 | 1500.00 |
3 | 考希克 | 23 | 科塔 | 2000.00 |
4 | 柴塔利 | 25 | 孟买 | 6500.00 |
现有列上的 AUTO_INCRMENT
MySQL 还允许您使用 ALTER TABLE 语句在现有表上实现 AUTO_INCRMENT 属性。
以下查询开始将 CUSTOMERS 表 CUSTOMERS 中的 ID 值从 5 开始递增 -
ALTER TABLE CUSTOMERS AUTO_INCREMENT = 100;
现在,让我们插入更多记录来查看 ID 值是否自动递增。
INSERT INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES ("Hardik", 27, "Bhopal", 8500.00), ("Komal", 22, "MP", 4500.00), ("Muffy", 24, "Indore", 10000.00);
要查看上面的表数据,我们使用以下 SELECT 查询 -
SELECT * FROM CUSTOMERS;
输出
上述查询的输出如下所示。它显示了自动增量的作用。我们获取的新插入记录的 ID 值从 100 开始。
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | 拉梅什 | 32 | 艾哈迈达巴德 | 2000.00 |
2 | 基兰 | 25 | 德里 | 1500.00 |
3 | 考希克 | 23 | 科塔 | 2000.00 |
4 | 柴塔利 | 25 | 孟买 | 6500.00 |
100 | 哈迪克 | 27 | 博帕尔 | 8500.00 |
101 | 科马尔 | 22 | 海得拉巴 | 4500.00 |
102 | 莫菲 | 24 | 印多尔 | 10000.00 |
SQL Server 中的自动增量
在 SQL Server 中,没有直接的命令/查询来执行自动增量。相反,我们使用IDENTITY()属性。该属性的作用类似于 MySQL 中的 AUTO_INCRMENT 属性。它自动生成唯一的连续数字,主要用于 PRIMARY KEY 约束。
句法
以下是 SQL Server 中 IDENTITY() 属性的基本语法 -
CREATE TABLE table_name ( column1 datatype IDENTITY [(seed, increment)], column2 datatype, column3 datatype, ..... columnN datatype );
该属性接受两个参数。同样的描述如下:
- 种子:设置自动递增列的起始值。
- 增量:它指定每个新行的值增加多少。
例子
在以下示例中,我们在名为 CUSTOMERS 的表的 ID 列上使用 IDENTITY() 属性 -
CREATE TABLE CUSTOMERS( ID INT PRIMARY KEY IDENTITY(1,1), NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2) );
创建表后,我们使用以下查询插入一些记录 -
INSERT INTO CUSTOMERS(NAME, AGE, ADDRESS, SALARY) VALUES ('Ramesh', 32, 'Ahmedabad', 2000.00), ('Khilan', 25, 'Delhi', 1500.00), ('Kaushik', 23, 'Kota', 2000.00), ('Chaitali', 25, 'Mumbai', 6500.00);
要查看表数据,我们使用以下 SELECT 查询 -
SELECT * FROM CUSTOMERS;
输出
以下是上述查询的输出,其中 ID 值是自动生成的 -
ID | 姓名 | 年龄 | 地址 | 薪水 |
---|---|---|---|---|
1 | 拉梅什 | 32 | 艾哈迈达巴德 | 2000.00 |
2 | 基兰 | 25 | 德里 | 1500.00 |
3 | 考希克 | 23 | 科塔 | 2000.00 |
4 | 柴塔利 | 25 | 孟买 | 6500.00 |