MySQL 8.x从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

2.3.7 设置表的属性值自动增加

在数据库应用中,需要在每次插入新记录时,系统自动生成字段的主键值的话,可以通过为表主键添加AUTO_INCREMENT关键字来实现。默认情况下,在MySQL中AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLIN、INT、BIGINT等)。

设置表的属性值自动增加的语法规则如下:

     字段名 数据类型 AUTO_INCREMENT

【例2.13】定义数据表tb_emp8,指定员工的编号自动递增,SQL语句如下:

     CREATE TABLE tb_emp8
     (
     id INT PRIMARY KEY AUTO_INCREMENT,
     name VARCHAR(25) NOT NULL,
     deptId INT,
     salary FLOAT
     );

上述例子执行后,会创建名称为tb_emp8的数据表。表tb_emp8中的id字段的值在添加记录的时候会自动增加,在插入记录的时候,默认的自增字段id的值从1开始,每次添加一条新记录,该值自动加1。

例如,执行如下插入语句:

     mysql> INSERT INTO tb_emp8 (name,salary)
        -> VALUES('Lucy',1000), ('Lura',1200),('Kevin',1500);

提示:这里使用INSERT语句向表中插入记录的方法,并不是SQL的标准语法,这种语法不一定被其他的数据库支持,只能在MySQL中使用。

语句执行完后,tb_emp8表中增加3条记录,在这里并没有输入id的值,但系统已经自动添加该值。使用SELECT命令查看记录,如下所示:

     mysql> SELECT * FROM tb_emp8;
     +----+--------+----------+-------------+
     | id | name   | deptId   | salary      |
     +----+--------+----------+-------------+
     |  1 | Lucy   |  NULL    |   1000      |
     |  2 | Lura   |  NULL    |   1200      |
     |  3 | Kevin  |  NULL    |   1500      |
     +----+--------+----------+-------------+