MySQL表约束--主键约束 (欢迎大家一起交流)

定义:主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。

在关系数据库,一个表中,只能有一个主键(primary key),有些数据库没有主键,系统报错。在MySQL数据库中,建立表时,可以有主键,也可以没有(推荐建立表时必须要有主键)。

主键列,再插入数据时候,必须填写,不能为null,不能重复。

复合主键不能包含不必要的多余列。当把复合主键的某一列删除后,如果剩下的列构成的主键仍然满足唯一性原则,那么这个复合主键是不正确的,这是最小化原则。

-- 建立表,并且使用主键
create table tt1(
          t int primany key
					);
					
create table tt2(
           t int,
					 primary key(t)
					 );

create table tt3(
           t int unsigned auto_increment primany key
					 );
					 
create table tt4(
           t char (5)
 );
-- 在tt4表格中插入数值,并且查询
insert tt4 values(1),(2),(2),(3),(2),(5);
select * from tt4;
-- 因为tt4有重复的数据,所以无法增加主键约束。
alter  table tt4 add primary key(t);

-- 删除主键
lter table tt4 drop primary key;

当表中只有一个主键的时候它是唯一索引,但是当表中有多个主键时,这个时候其中的单个主键是可以存在相同值的,复合主键一样可以保证唯一索引。下面这段代码中,id字段和name字段都设置为主键,name字段可能会出现重名,但是加上id字段后一样能保证索引的唯一性。

-- 复合主键 就是指你表的主键含有一个以上的字段组成,目的是保证记录的唯一性。
create table tt5(
     id int unsigned,
     name varchar(30) not null,
     age tinyint unsigned default 18,
     primary key(id,name)
);
select *  from tt5;
select * from tt5 where id=2 and name='k';

MySQL表约束--主键约束 (欢迎大家一起交流)_第1张图片MySQL表约束--主键约束 (欢迎大家一起交流)_第2张图片

 

 如有错误恳请指正,非常感谢你的浏览。

你可能感兴趣的:(mysql,数据库,database)