数据库中对于数据表的约束

该篇主要介绍数据表在使用时的约束。空属性,默认值,列描述,zerofill,主键,自增长,唯一键,外键。
其中详细介绍主键,自增长,唯一键,外键的使用方法。


(一)数据表的约束条件

MySQL数据库6——详谈数据表中主键,外键,唯一键的约束(二)详解主键,自增长,唯一键,外键

1,主键

  • 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。
  • 主键的指定:
    (1)创建表的时候直接在字段上指定主键;
    (2)在创建表的时候,在所有字段之后,使用primary key(主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键;
    (3)当表创建好以后,可以再次追加主键;
//1.在创建表的时候直接指定主键
create table stu4(
id int unsigned primary key comment '学生id',
name varchar(20) not null comment '学生姓名',
age int unsigned comment '学生年龄';)

//2.在创建表的时候,在所有字段之后,使用paimary key创建主键
create table stu4(
id int unsigned  comment '学生id',
name varchar(20) not null comment '学生姓名',
age int unsigned comment '学生年龄',
primary key(id));

//3.在表创建好以后,追加主键
alter table stu4 add primary key(name);
  • 删除主键的方法
alter table stu4 drop primary key;

2,自增长

auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前

  1. 字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。
  2. 自增长的特点:
    (1)任何一个字段要做自增长,前提是本身是一个索引(key一栏有值)
    (2)自增长字段必须是整数
    (3)一张表最多只能有一个自增长
    举例:
create table stu5(
id int unsigned paimary key auto_increament,
name varchar(20));

此时插入数据的时候只需要插入姓名,学生id会自动增长。
3,唯一键

定义:一张表中有往往有很多字段需要唯一性,数据不能重复,但是一张表中只能有一个主键,唯一键就可以解决表中有多个字段需要唯一性约束的问题。
主键不能重复,不能为空;
唯一键不能重复,但可以为空,而且允许多个为空。

空字段不做唯一性比较。

create table stu5(
id int unsigned primary key auto_increament;
name varchar(20) unique;
//此处表示姓名不能重复 

4,外键

外键用于定义主表和从表之间的关系:外键约束主要定义在从表上,主表则必须是有主键约束或unique约束。
当定义外键后,要求外键列数据必须在主表的主键列存在或为null。
MySQL数据库6——详谈数据表中主键,外键,唯一键的约束语法:

foreign key (字段名) references 主表()

举例:

//1,先创建主键表
create table school(
school_num int primary key comment '学校编号',
school_name varchar(20) comment '学校名字');
//2,再创建从表
create table class(
class_name varchar(20) comment '班级名称',
school_num int comment comment '学校编号',
foreign key (school_num) references school(school_num));

此时可以再两个表中正常插入记录。

  • 主表中没有的数据在从表中也不能插入,例如主表school中没有编号为10的学校,则在从表class中就不能插入学校编号为10的记录。
  • 但是对于主表中没有的数据,从表在出入的时候可以将相同字段指定为空就可以插入。例如主表中没有编号为10的学校,则从表在插入的时候可以将不插入学校标号,只插入班级名称就好。

相关文章:

  • 2021-12-16
  • 2021-09-30
  • 2018-09-03
  • 2021-10-18
  • 2021-09-30
  • 2021-12-06
  • 2021-05-25
猜你喜欢
  • 2021-09-30
  • 2021-10-29
  • 2021-09-27
  • 2021-09-30
  • 2021-09-30
  • 2022-01-03
  • 2021-08-13
相关资源
相似解决方案