自动增长:
为每条记录提供一个唯一的标识。
每次插入记录时,将某一个字段的值自动增加1。
语法:
Auto_increment
使用要求,
1.必须是使用整型
2.有索引(例如,主键)
3.此外,在insert时可以选择是否插入null,可以省去输入字段名
而主键不能为空,因而null也没有实际作用。
Id 自增规则:
若insert的值中 t_id 没有设置值(默认值),t_id将从最大的存在值开始自增
例如(已经有t_id=2,t_id=5,此时若输入一个默认值,得到t_id=6)
若insert的值中t_id有设置固定的值,重复且是主键则不能插入,否则,按插入的t_id
大小插入所有记录中,而不一定排在最后;
可以设置自动增长的初始值,默认是1;
通过修改表选项
Alter table表名称auto_increament n;
如过n小于已有值,则忽略此次操作。
语句是否可以更新?
答案是可以的。
Update 表名称 set 字段=值 where 条件。
show databases;
use php_one;
create table t8(
t_id int primary key auto_increment,
t_name varchar(10),
class_name varchar(5),
days tinyint unsigned
);
insert into t8 values(null,'han','0332',32);
select * from t8; /*id仍然显示 :1*/
insert into t8 values(5,'han','0332',32);
select * from t8; /*id显示 :5*/
insert into t8 (t_name,class_name,days) values ('han','0332',31);
select * from t8; /*id显示:6*/
insert into t8 values (2,'han','0332',31);
select * from t8; /*id显示:2,并且排列在第二行*/
insert into t8 (t_name,class_name,days) values ('han','0332',31);
select * from t8; /*id显示:7*/
create table t82(
t_id int primary key auto_increment,
t_name varchar(10),
class_name varchar(5),
days tinyint unsigned
);
insert into t82 (t_name,class_name,days) values ('han','0332',31);
select * from t82; /*id显示:1*/
insert into t82 values(null,'han1','0325',54);
select * from t82;
insert into t82 values(20,'han1','0325',55);
select * from t82;
update t82 set t_id=21 where days=31; /*修改成功*/
select * from t82;
alter table t82 auto_increment 10; /*显示成功*/
insert into t82 values(null,'han1','0325',23);
select * from t82; /*但是没有实际的作用*/
alter table t82 auto_increment 20;
delete from t82 where t_id>20;
insert into t82 values(null,'han1','0325',83);
select * from t82; /*此时虽然21,22删除了,但是仍然显示23*/