MySQL数据库基础
目标
- 数据的修改操作(update)
- 数据的删除操作(delete、truncate)
- 数据表的修改(alter)
- 约束(constraint)
- 主键(primary key)
- 唯一键(unique)
- 缺省约束(default)
- 非空约束(not null)
- 外键(foreign key)
一、回顾
-
主键(primary key)
- 唯一标识数据库表中的每条记录
- 主键列不能出现重复值
- 主键列不能包含 NULL值
- 每个表只能有一个主键
- 主键可以由一个字段构成,也可以由多个字段组合构成(联合主键/复合主键)
-
自动递增(auto_increment)
- auto_increment是数据列的一种属性,只适用于数字类型
- auto_increment对应数据列必须具备not null
- 一个表只能有一个字段使用auto_increment
- 将字段设置成auto_increment之后,是需要将其设置成主键/或者主键的一部分
- 用户添加数据时,该字段的值可不用添加
- 可在建表时可用auto_increment =n选项来指定一个自增的初始值
- 可用alter table 表名 auto_increment =n命令来重设自增的起始值,默认的起始值、步长均是14
示例:
- 建表时更改本表自动递增字段起始值
#创建表
create table Test(
a bigint unsigned auto_increment primary key,
b CHAR(5) not null
)auto_increment=1000;#为Test表构建自动递增字段起始值1000
#提醒:上边的操作仅对本表有效
#添加数据
insert into Test(b) values('中国');
#查看表中数据
select * from Test;
效果如下图所示:
- 数据表已存在的情况下更改本表自动递增字段新的起始值
#更改Test表自动递增字段起始值为10
alter table Test auto_increment=10;
#添加数据
insert into Test(b) values('美国');
#查看表中数据
select * from Test;
效果如下图所示:
发现:语句alter table Test auto_increment=10;执行成功,但是新添加的数据并未按照新的起始值进行呈现,还是按照之前的起始值进行计算(+1)。
#更改Test表自动递增字段起始值为10000
alter table Test auto_inc