首页 > 数据库技术 > 详细

MySQL 列级约束和表级约束

时间:2019-09-26 18:31:42      阅读:136      评论:0      收藏:0      [点我收藏+]

一,六大约束

  • 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) ;
 

MySQL 列级约束和表级约束

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!