mysql_

数据库中的约束:限制列的内容
意义:保证数据的有效性和完整性.可以确保数据满足业务规则

1.主键约束

主键约束:primary key
作用:设置某一个字段为主键,主键的特性是唯一(不能重复),且不能为空
一般使用一个没有任何意义的字段作为主键,比如id作为主键(没有意义的字段就不用修改了)

如果主键是int类型,还可以设置主键自增长(即在插入数据时,可以不插入主键值,让其自动以递增形式添加),(部分数值型可以设置自增长,例如varchar是无法设置自增长,会报错1063错误)

注意:一张表中只能有一个主键

1.1 主键示例

create table primarykey_demo
(
 id int primary key auto_increment,
 name varchar(20)
)
insert into primarykey_demo (name) values ('jack');

虽然我们没有设置id的值,但是结果中id被赋值了,这就是设置了主键自增的效果
在这里插入图片描述
同时我们也能主动给主键赋值

insert into primarykey_demo (id,name) values (3,'tom');

在这里插入图片描述
给主键赋值后,当我们再执行主键自增时,会根据已存在的最大的主键值+1

insert into primarykey_demo (name) values ('b');

在这里插入图片描述

1.2 主键约束的第二种方式

此种方式主要用于设置组成主键

create table primarykey_demo2
(
 id int not null auto_increment,
 name varchar(20),
 PRIMARY key (id) 
);

1.3 复合主键(了解)

所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键。

create table primarykey_demo
(
 id int,
 name varchar(20),
 value varchar(20),
 PRIMARY key (id,name) 
);

当设置id和name为复合主键后,可以理解为id和name组成了一个字段,且这个字段因为是主键,所以只能出现1次

insert into primarykey_demo (id,name) values (1,'tom');
insert into primarykey_demo (id,name) values (1,'jack');   ok
insert into primarykey_demo (id,name) values (2,'tom');    ok
insert into primarykey_demo (id,name) values (1,'tom');    error

上面的name和id字段组合起来就是你demo表的复合主键 ,它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 ,一般情况下,主键的字段长度和字段数目要越少越好 。

1.4联合主键

添加链接描述

猜你喜欢

转载自blog.csdn.net/qq_24099547/article/details/84038821