您的位置 首页 数据库

mysql数据类型约束(PK,UK,NN,FK )主键外键

mysql数据类型约束(PK,UK,NN,FK )主键外键

在数据库服务中进行数据存储时,类似于在一个execl表中存储数据一样,如果没有对表的字段进行约束和限制,是可以随意存储数据的;

但是,在数据表的某些字段上,是有特殊含义的,如果随意进行存储数据,会造成存储信息的混乱,因此引入了约束与属性概念;

通过数据类型设置的约束与属性,可以让数据库服务限制人类录入的数据信息,从而避免录入数据信息混乱的局面;

并且,通过数据类型的约束与属性设置,还可以避免数据信息输入的重复与输入数据信息不能为空;

常见的约束定义:

序号 约束方法 解释说明
01 PK(primary key) 表示主键约束,非空且唯一(表中只能有一个主键)
02 UK(unique key) 表示唯一约束
03 NN(not null) 表示非空约束
04 FK(foreign key) 表示外键约束,多表之间关联使用

 

外键约束(FK)

概念介绍:
外键: 外面的键, 一张表的一个字段(非主键)指向另外一个表的主键, 那么该字段就称之为外键.
外键所在的表称之为子表(附表); 外键所指向的主键所在的表称之为父表(主表)

外键应用:
参考文档:
约束01:外键对子表的数据写操作约束(增加和更新)
约束02:外键对父表也有数据约束

 

常见的属性定义:

序号 属性信息 解释说明
01 default 设定默认数据信息,可以实现自动填充
02 auto_increment 设定数值信息自增,可以实现数值编号自增填充(一般配合主键使用)
02 comment 设定数据注释信息
03 unsigned 设定数值信息非负,可以实现数值信息列不能出现负数信息

 

完整建表语句参考:

CREATE TABLE `student` (
  `id` int NOT NULL COMMENT '学号信息',
  `name` varchar(45) NOT NULL COMMENT '学生名',
  `age` tinyint unsigned NOT NULL COMMENT '学生年龄',
  `gender` enum('M','F','N') NOT NULL DEFAULT 'N' COMMENT '学生性别',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='学生表'
CREATE TABLE `student` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '学号信息',
  `name` varchar(45) NOT NULL COMMENT '学生名',
  `age` tinyint unsigned NOT NULL COMMENT '学生年龄',
  `gender` enum('M','F','N') NOT NULL DEFAULT 'N' COMMENT '学生性别',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='学生表'

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章