k_0711

2020-07-29   阅读量: 674

Mysql

MySql约束条件汇总

扫码加入数据分析学习群

约束条件

  • 约束条件是在表上强制执行的数据检验规则

  • 用来保证创建的表的数据完整性和准确性

  • 主要在两方面对数据进行约束:空值和重复值

主键约束(primary key):

  • 每个表只能由一个主键

  • 主键值须非空不重复

  • 可设置单字段主键,也可设置多字段联合主键

(联合主键中多个字段的取值完全相同时,才违反主键约束)

  • 添加主键约束:

列级添加主键约束:create table <表明>(<字段名><字段类型1>primary key,……<字段名n><字段类型n>;

表级添加主键约束:create table <表名>(<字段名1><字段类型1>,……<字段名n><字段类型n>,[constraint 主键约束名] primary key(字段名1[字段名2…字段名n]));

外键约束必须在最后

=========================================================

唯一约束(unique):

  • 指定字段的取值不能重复,可以为空,但只能出现一个空值

  • 添加唯一约束:

    • 列级添加唯一约束:create table <表名>(<字段名1><字段类型1>unique,<字段名n><字段类型n>);

    • 表级添加唯一约束:create table <表明>(<字段名1><字段类型1>,……<字段名n><字段类型n>,[constraint唯一约束名] unique (字段名1[,字段名2…,字段名n]));

自动增长列(auto_increment):

  • 指定字段的取值自动生成,默认从1开始,每增加一条记录,该字段的取值会加1

  • 只适用于整数型,配合主键一起使用

  • 创建自动增长约束:creat table<表名>(<字段名1><字段类型>primary key auto_increment,……<字段名n><字段类型n>);

非空约束(not null):

  • 字段的值不能为空

  • 创建非空约束:create table<表名>(<字段名1><字段类型1>not null,……<字段名n><字段类型n>);

默认约束(default):

  • 如果新插入一条记录时没有为该字段赋值,系统会自动为这个字段赋值为默认约束设定的值

  • 创建默认约束:create table<表名>(<字段名1><字段类型1>default vaule,……<字段名n><字段类型n>);

外键约束(foregin key):

在一张表中执行数据插入、更新、删除等操作时,DBMS都会跟另一张表进行对照,避免不规范的操作,以确保数据存储的完整性。

  • 某一表中某字段的值依赖于另一张表中某字段的值

  • 主键所在的表为主表,外键所在的表为从表

  • 每一个外键值必须与另一个表中的主键值相对应

  • 创建外键约束:create table<表名>(<字段名1><字段类型1>,……<字段名n><字段类型n>,[constraint 外键约束名] foreign key(字段名) references<主表>(主键字段));


28.3792 4 5 关注作者 收藏

评论(0)


暂无数据

推荐课程