MySQL中的约束

1)约束(Constraint)
1.1、什么是约束?
  在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性


1.2、常见的约束有哪些?
  非空约束(not null):约束的字段不能为NULL(只有列级约束)
  唯一约束(unique):约束的字段不能重复,可以为NULL(有列级、表级约束)
  主键约束(primary key):约束的字段既不能为NULL,也不能重复(简称PK)(同上)
  外键约束(foreign key):。。。(简称FK) (同上)
  检查约束(check):!!Oracle数据库有check约束,但MySQL目前不支持该约束


1.3、主键约束的一些特性

  • 主键相关的术语
      主键约束:primary key
      主键字段:id添加primary key后,id叫做主键字段
      主键值:id字段中的每一个值都是主键值

  • 主键的作用
      -表的设计三范式中有要求,第一范式要求任何一张表都应该有主键
      -作用:主键值是这一行记录在这张表当中的唯一标识。(和身份证号码一样)

  • 主键分类
    根据主键字段的字段数量划分:
      单一主键(常用)
      复合主键(多个字段联合起来添加成一个主键约束,不推荐
    根据主键性质划分
      自然主键:主键值最好就是一个业务没有任何关系的自然数。(推荐)
      业务主键:主键值和系统的业务挂钩(不推荐)。  因为以后的业务一旦发生改变,主键值可能也需要发生变化,但可能因为主键值重复而导致无法改变

  • 一张表的主键约束只能有一个

  • MySQL提供主键值自增
    格式:
     id  int  primary key  auto_increment,
     id字段自动维护一个自增的数字,从1开始


    1.4外键约束的一些特性

  • 外键约束的相关术语
       外键约束:foreign key
       外键字段:田间有外键约束的字段
       外键值:外键字段中的每一个值

  • 外键值可以为NULL

  • 外键字段引用其他表的某个字段的时候,被引用的字段至少有unique约束(防止该字段出现重复值)

  • 为什么使用外键约束?
       如果只使用一张表来储存所有的数据,会出现冗杂。因此这些数据分为多张表来储存。

  • 表顺序要求:
       删测数据时,先删除子表(外键约束),再删除父表
       添加数据时,先添加父表,在添加子表
       创建表时,先创建父表,再创建子表
       删除表时,先删除子表,在删除父表

eg:

create table t_class(
       cno  int,
       cname  varchar(255),
       primary key(cno)  //表级约束
       );

create table t_student(
       sno  int primary key,  //行级约束
       sname  varchar(255),
       classno  int  ,  
       foreign key(classno) references t_class(cno)  //添加外键
       );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值