字段束缚

目标:保证数据的:有效性、完整性、正确性。
分类:

  • not null: 非空束缚 此列不为null 必须提供
  • unique: 惟一束缚 此列的值不能反复
  • primary key: 主键束缚 惟一标一条数据
  • foreign key: 外键束缚 建设不同表之间的关系

非空束缚&惟一束缚

not null: 非空束缚 此列不为null 必须提供
例如上面带有not null或者带有unique的字段:

 CREATE TABLE students(    -> stu_num char(8) not null unique,    -> stu_name varchar(20) not null,    -> stu_age int not null,    -> stu_tel char(11) not null unique,    -> stu_qq varchar(11) unique    -> );

主键束缚

一张数据表只能有一个主键,不过一个主键能够有多个列组成(联结主键),另外,主键肯定非空且惟一,所以设置主键之后,该字段就没必要加非空和惟一束缚了,比方:
写法一:

 CREATE TABLE students(    -> stu_num char(8) not null primary key,    -> stu_name varchar(20) not null,    -> stu_age int not null,    -> stu_tel char(11) not null unique,    -> stu_qq varchar(11) unique    -> );

写法二:

 CREATE TABLE students(    -> stu_num char(8) not null,    -> stu_name varchar(20) not null,    -> stu_age int not null,    -> stu_tel char(11) not null unique,    -> stu_qq varchar(11) unique,    -> primary key(stu_num)    -> );

创立表之后增加主键束缚
用modify

ALTER table stus modify stu_num char(4) primary key

主键主动增长

CREATE tabletypes(    type_id int primary key auto_increment,    type_name varchar(20) not null,)

留神:主动增长从1开始, 每天夹一条记录,计数器+1,删除某条记录后,计数器不会更新,所以自增只保障唯一性,不保障连续性。

联结主键(应用频率低)

将数据表中的多个字段组合在一起

CREATE table grades(    stunum char(8),    course_id int,    score int,    primary key(str_num, course_id)

外键束缚

前面多表关联再开展

参考:bilibili