数据库的约束详解(2) —— 外键

数据库的约束详解(2) —— 外键

    外键约束主要用于保证一个或两个数据表之间的参照完整性。从表外键参照的只能是主表主键列或者唯一键列,这样才能保证从表记录可以准确定位到被参照的主表记录。同一表内可以有多个外键。其中,增加外键列的表被称为从表。
    建立外键约束时,MySQL也会为该列建立索引。

    
    1. 给表的某一列添加外键约束  
  alter table table_name [contraint 约束名] foreign key(字段名) references 参照表名(参照表字段);
    参照表的字段必须具有unique或primary key约束,否则创建外键会失败,而且可以创建多列组合的外键约束。
    2. 删除外键   
 alter table table_name drop foreign key 约束名
    如果你忘了约束名是啥,或者创建外键时压根就没有起名子,那就用“show create table 表名”这个命令来查看吧。
    
    3. 创建表的时候添加外键
    MySQL支持列级外键创建的语法,但是不起作用,所以如果在创建表时添加外键,要采用表级语法来创建:     
    1. 先建立主表
    create table t_teacher(
	tea_id int auto_increment primary key,
	name varchar(10)
    )character set utf8;
    2. 再创建从表
    create table t_student)
	stu_id int auto_increment primary key,
	name varchar(10)
	age int,
	birthday date,
	address varchar(30),
	java_teacher int,
	constriant 约束名 foreign key(java_teacher) references t_teacher(tea_id)
    );

    注意事项:
    1. 从表参照主表的那个字段必须是主键或者具有unique约束,否则不成功!
    2. 如果从表是参照主表的非主键列来创建外建,那么主表unique约束的属性值可以为null,所以当你在从表中插入一条记录时,外键的字段为null也是可以插入成功的。
    3. 对于2中的情况的正常情况是,主表中有相应的字段值,那么在从表中插入记录时,在外键的列上赋这个字段值才能插入成功。
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值