MYSQL高级-外键&事务&实体间关系

外键

概念: 外键约束指两个表之间的跨表的条件约束


要求:
  1. 表引擎必须为 innodb
  2. 分为主表(parent table)和从表(child table), 从表引用主表数据;
  3. 要求主表和从表关联字段的数据类型严格一致.(大小,类型是否有无符号 都要一致)


外键约束作用:
  主要是保证主表和从表数据的完整性:
  1. 从表的关联字段不能随意添加数据,必须以主表为准
  2. 主表的关联字段不能随意修改和删除(从表如果使用就不能随意动)

外键使用的语法:
  1. 添加外键
     alter table 从表名 add [constraint `约束名`] foreign key (从表关联字段)
     references 主表名(主表关联字段) [高级语法];
     
    案例: 学生表中添加外键
    alter table student add foreign key(class_id) references class(class_id);
 

事务

概念: 事务是指连续不可分割的多条sql语句,要么全部都执行成功,要么全部回滚到初始状态.
作用: 事务是保证数据完整性,一致性,安全性的重要技术.

事务操作 三步:
1. 开启事务: begin; start transaction;
2. 提交事务: commit;
3. 回滚事务: rollback;

例:八戒给貂蝉每日转200元
添加一个money字段:  alter table student add money decimal(7,2) default 0 comment '零花钱';
八戒给貂蝉每日转200元:
# 开启事务
start transaction;
# 八戒钱少200	
update student set money=money-200 where name="猪八戒";
# 貂蝉钱多200	
update student set money=money+200 where name="貂蝉";
# 提交
commit;

# 开启事务
start transaction;
# 八戒钱少200	
update student set money=money-200 where name="猪八戒";
# 貂蝉钱多200	
update student set money=money+200 where name="貂蝉";
# 回滚
rollback;

事务的特点,ACID

事务的四个特性:原子性,一致性,隔离性,持久性!
1)原子性(Atomicity)
	事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
2)一致性(Consistency)
	事务前后数据的完整性必须保持一致。
3)隔离性(Isolation)
	多个用户并发访问数据库时,一个用户的事务不能被其它用户的事物所干扰,多个并发事务之间的数据要相互隔离。
4)持久性(Durability)
	一个事务一旦被提交,它对数据库中的数据改变就是永久性的。

实体间关系

三种关系:
一对一:
      使用相同的主键即作为各自主键也作用关联字段
一对多:
       在多的一方的表中设计一个字段保存一的一方的主键id.
多对多:
        新建一张中间关系表,保存两个表的主键id
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值