作用

  • 限定某一列的值非空且唯一, 主键就是表中记录的唯一标识。

    特点

  • 被修饰的字段 唯一且非空

    关键词:primary key

添加主键的几种方式

  • 方式1:在创建表的时候,声明主键约束

    1. create table pk1 (
    2. id int primary key,
    3. username varchar(20)
    4. );
  • 方式2:在创建表的时候,在约束区域声明主键约束

    create table pk2 (
          id int,
      username varchar(20),
      -- 所有字段声明之后,后面的这个区域就是 约束索引区域
      primary key(id)
    );
    
  • 方式3:通过修改表结构,添加主键约束 ```sql create table pk3 (

      id int,
    

    username varchar(20) );

— 修改表结构添加主键约束 alter table pk3 add primary key(id);


- 方式4:建表后单独添加主键约束
```sql
ALTER TABLE 表名 MODIFY 列名 数据类型 PRIMARY KEY;

删除主键约束

ALTER TABLE 表名 DROP PRIMARY KEY;

一张表最多只能有一个主键,主键可以作用在多个字段上(联合主键).

联合主键

CREATE TABLE pk4 (
        username VARCHAR(20),
        birthday DATE,
        sex VARCHAR(2),
        PRIMARY KEY(username,birthday)-- 通过名字和生日确定一条记录,联合主键
);

INSERT INTO pk4 VALUES('tom','1990-09-09','男');-- 成功
INSERT INTO pk4 VALUES('tom','1991-09-09','女');-- 成功
INSERT INTO pk4 VALUES('tom','1990-09-09','女');-- 失败 
                                                                                                已经存在 tom和1990-09-09

主键自增约束

  • 建表时添加主键自增约束 ```sql CREATE TABLE 表名( 列名 数据类型 PRIMARY KEY AUTO_INCREMENT, … 列名 数据类型 约束 )AUTO_INCREMENT=自增开始的值 ;
> 可以设置自增开始的值.

- 删除主键自增约束
```sql
ALTER TABLE 表名 MODIFY 列名 数据类型;
  • 建表后单独添加主键自增约束
    ALTER TABLE 表名 MODIFY 列名 数据类型 AUTO_INCREMENT;