mysql的表级约束_MySQL 列级约束和表级约束

一,六大约束

NOT NULL 非空

PRIMARY KEY 主键

UNIQUE 唯一

CHECK 检查约束,MySQL 不支持,语法不报错但无效果

FOREIGN KEY 外键.限制两表关系,通常在从表引入外键约束,引入主表中某列的值,保证从表该字段的值必须来源于主表关联列的值

DEFAULT默认值/系统设定值

二,表级约束和列级约束的定义:

表级约束:对多个数据列建立的约束,称为表级约束表级约束只能在列定义后声明

列级约束:对一个数据列建立的约束,称为列级约束列级约束既可以在列定义时声明,也可以在列定义后声明

ps:简单来理解的话就是列级约束针对的是单列,表级约束针对的是整个表,如此引伸出来

六大约束都可在列级约束使用,但外键无效果(外键是约束两个表之间的关系)

显而易见,非空和默认不可在表级约束中使用

三,添加约束的时机:

创建表时:

#创建主表,实验外键

CREAT  TABLE  IF  NOT  EXISTS  major(

id INT,

major_name varchar(20)

);

#创建从表,实验表级/列级约束

CREAT  TABLE  IF  NOT  EXISTS  students(

#添加表级约束,直接在类型后添加即可

id INT PRIMARY KEY,

student_name VARCHAR(20),

sex CHAR(1),

age INT DEFAULT 18,

majorid INT,

#添加表级约束,直接添加在列创建结束后

CONSTRAINT pk PRIMARY KEY(id).#主键,constraint用来命名,不加也可以

CONSTRAINT fk_student_majory FOREIGN KEY(majorid) REFERENCES major(id)#外键

);

修改表时:

#添加非空,其他列级约束可仿照此方法

ALTER  TABLE  students  MODIFY  COLUMN  student_name  VARCHAR(20)  NOT  NULL;

#添加外键,其他表级约束也可使用同样方法添加

ALTER  TABLE  students ADD  FOREIGN  KEY(majorid)  REFERENCES  major(id) ;

原文:https://www.cnblogs.com/WIFI-365/p/11593416.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值