Mysql的约束

2021/7/15 19:08:33

本文主要是介绍Mysql的约束,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Mysql常见约束

1.含义:一种限制,用于限制表中的是数据,为了保证添加到表中的数据的准确和可靠性

2.分类: 六大约束
   ①NOT NULL : 非空,用于保证该字段的值不能为空
      比如:姓名、学号等

   ②DEFAULT:默认约束,用于保证该字段有默认值
      比如:性别

   ③PRIMARY KEY:主键约束,用于保证该字段的值具有唯一性,并且非空
      比如:学号、员工编号

   ④UNIQUE:唯一约束,用于保证该字段的值具有唯一性,但是可以为空
      比如:座位号

   ⑤CHECK:检查约束【MySQL中不支持复制】
      比如:年龄,性别

   ⑥FOREIGH KEY:外键约束,用于限制两个表之间的关系,用于保证该字段的值必须来自于主表的关联列的值
      在从表添加外键约束,用于引用主表中某列的值

      比如:学生表的专业编号,员工表的部门编号,员工表的工种编号

CREATE TABLE 表名{
   字段名 字段类型 约束
}

3.添加约束的时机
  (1)创建表时
  (2)修改表时

4.约束的添加分类:
  (1)列级约束
      六大约束语法上都支持,但外键约束没有效果

  (2)表级约束
      六大约束中除了非空和默认,其他的都支持

创建表时添加约束

添加列级约束

1.语法:
直接在字段名和类型后面追加约束类型即可
只支持:默认、非空、主键、唯一

2.添加列级约束
USE students;

CREATE TABLE stuinfo(
   id INT PRIMARY KEY, #主键
   stuName VERCHAR(20)  NOT NULL, #非空
   gender CHAR(1) CHECK(gender=‘男’ OR gender=‘女’), #检查
   seat INT UNNIQUE, #唯一
   age INT DEFAULT 18, #默认约束
   majorId INT FOREIGN KEY REFERENCES major(id) #外键
);

CREATE TABLE major(
   id  INT PRIMARY KEY,
   majorName VARCHAR(20)
)

添加表级约束

1.添加表级约束语法:
在各个字段的最下面
【CONSTRAINT 约束名】 约束类型(字段名)
注意:【】中的内容可以省略

2.添加表级约束代码实例
CREATE TABLE stuinfo(
   id INT,
   stuName VERCHAR(20) ,
   gender CHAR(1),
   seat INT,
   age INT,
   majorId INT,

   CONSTRAINT pk PRIMARY  KEY(id), #主键
   CONSTRAINT uq UNIQUE(seat), #唯一键
   CONSTRAINT ck CHECK (gender = ‘男’ OR gender =‘女’), #检查约束
   CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCE major(id) #外键
);

SHOW INDEX FROM stuinfo;

通用的写法
CREATE TABLE IF EXISTS stuinfo(
   id INT PRIMARY KEY,
   stuname VARCHAR(20) NOT NULL,
   sex CHAR(1),
   age INT DEFAULT 18,
   seat INT UNIQUE,
   majorid INT,
   CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id)
);

主键和唯一的区别

保证唯一性是否允许为空一个表中可以有多少个是否允许两个列组合成唯一键
主键×至多有1个允许,但不推荐
唯一可以有多个允许,但不推荐


这篇关于Mysql的约束的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程