主键

顾名思义:主要的键,primary key,在一张表中,有且只有一个字段,里面的值具有唯一性。

创建主键

随表创建

系统提供了两种增加主键的方式。

  1. 方案一:直接在需要当做主键的字段之后,增加primary key属性来确定主键

    create table my_pri1(
    name varchar(10) primary key
    )charset=utf8;
    
  2. 方案二:在所有字段之后增加primary key选项:primary key(字段信息)

    create table my_pri2(
    name varchar(10),
    primary key(name)
    )charset=utf8;
    

表后增加

基本语法:alter table 表名 add primary key(字段);

create table my_pri3(
username varchar(10)
)charset=utf8;

alter table my_pri3 add primary key(username);

查看主键

  1. 方案一:查看表结构

    desc my_pri2;
    

    02-07-列属性(主键)

  2. 方案二:查看表的创建语句

    show create table my_pri3;
    

删除主键

基本语法:alter table 表名 drop primary key;

02-07-列属性(主键)

复合主键

案例:有一张学生选修课表:一个学生可以选修多个选修课,一个选修课也可以由多个学生来选:但是一个学生在一个选修课中只有一个成绩。

create table my_score(
student_no char(10),
course_no char(10),
score tinyint NOT NULL,
primary key(student_no,course_no)
)charset=utf8;

02-07-列属性(主键)

主键约束

主键一旦增加,那么对对应的字段有数据要求

  1. 当前字段对应的数据不能为空

  2. 当前字段对应的数据不能有任何重复

    • 插入正常数据
    insert into my_score values('00000001','course001',100);
    insert into my_score values('00000002','course001',90);
    insert into my_score values('00000001','course002',95);
    
    • 插入重复主键
    insert into my_score values('00000002','course001',98);
    

    02-07-列属性(主键)

主键分类

主键分类采用的是主键所对应的字段的业务意义分类

业务主键:主键所在的字段,具有业务意义(学生ID,课程ID)

逻辑主键:自然增长的整型(应用比较广泛)

02-07-列属性(主键)

相关文章: