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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM