如何在 SQL 中使用自动增量

2024 年 8 月 29 日 | 阅读 3 分钟

在本篇SQL文章中,您将学习如何在结构化查询语言(SQL)、MySQL、Oracle和Microsoft Access中使用自动增量。

自动增量是SQL中的一个概念,当向表中输入新行时,它会自动生成一个唯一的数字。此功能通常用于主键字段,我们需要为每个记录创建唯一值。

如果我们在一个整数列中使用自动增量概念,并插入第一个元组的值为1,那么第二个元组的值将自动生成为2。

SQL数据库系统允许用户定义起始值和增量值。

SQL中自动增量的语法

在上面的语法中,我们必须使用IDENTITY关键字来实现SQL中的自动增量概念。

如果要使用SQL表中的自动增量概念,则必须编写以下CREATE TABLE查询

在此查询中,我们创建了具有五个列的Student_Records表。Student_ID列中的IDENTITY关键字会自动为新的学生记录生成唯一的ID。

因此,我们无需在INSERT查询中指定Student_ID的值,因为它会自动插入。

以下查询将学生记录插入到上述表中。

以下查询显示了结果中上述表的记录

输出

学生编号 (Student_ID)学生姓名Student_AgeStudent_SubjectStudent_Obtained_Marks
101Arun22数学89
102Maish23物理92
103Piyush20英文76
104Yashit21数学81

MS-Access中自动增量的语法

在此语法中,我们使用了AUTOINCREMENT关键字来实现自动增量概念。MS-Access在自动增量操作中不包含任何起始值或增量值。默认情况下,它从1开始,并且每个新记录的值增加1。

如果要使用MS-Access表中的自动增量概念,则必须编写以下CREATE TABLE语句

要将新记录插入Teacher_Records表中,我们不必为Teacher_ID定义值,因为唯一值会自动插入。

以下查询将教师记录插入Teacher_Records表中

Oracle中自动增量的语法

与其它数据库相比,Oracle的语法比较棘手。

在Oracle语法中,我们可以通过创建带有序列对象的自动增量字段来实现自动增量概念。

如果要使用Oracle表中的自动增量概念,则必须编写以下Oracle语句

在此查询中,我们创建了一个Sequence对象,该对象从1001开始,每次增加3。由于缓存将值定义为20,因此Sequence_Students对象只能存储20个值。

假设我们想在上面的Student_Record表中插入新记录,那么我们将不得不定义nextval函数,该函数访问Sequence_Students中的下一个值。

以下Oracle查询将学生记录插入Student_Records表中


学生编号 (Student_ID)学生姓名Student_AgeStudent_SubjectStudent_Obtained_Marks
1001Ram20化学99

下一个主题SQL语言