那么,我们想哈。除了主键能保证记录的唯一性,那么,还有没有其他能保证主键的唯一性呢?答:还有唯一约束。
唯一约束
(1)唯一约束UNIQUE KEY
(2)唯一约束可以保证记录的唯一性
(3)唯一约束的字段可以为空值(NULL)
(4)每张数据表可以存在多个唯一约束
唯一约束的字段可以为空值(NULL),这句话怎么理解呢?
答:假设一张数据表有两条或两条以上的记录,则该字段都为空。
如果都为空的话,则值也是相同的。而值相同的话,又和保证记录的唯一性相背离。
唯一约束与主键的区别:
(1)主键,一张表里,只能有一个。
而,唯一约束,一张表里,可以有多个。
(2)在创建索引时,也是有区别;(在后续讲)
create table tb5( id smallint unsigned auto_increment primary key, username varchar(30) not null unique key, age tinyint unsigned );
show columns from tb5;
注意:主键约束,一张表只能有一个,而唯一约束一张表可以有多个。
注意:因为id是自动会赋值,所以,我们只需对username和age进行赋值即可。
insert tb5(username,age) values('zhaosi',42);
insert tb5(username,age) values('zhaosi',42);