mysql 外键引擎_MySQL开发——【多表关系、引擎、外键、三范式】

多表关系

一对一关系

一对多或多对一关系

多对多关系

MySQL引擎

所谓的MySQL引擎就是数据的存储方式,常用的数据库引擎有以下几种:

Myisam与InnoDB引擎之间的区别(面试)

1 ①批量插入与查询速度2 Myisam引擎相对于InnoDB引擎,在插入与查询时,速度要略快一些。3

4 ②两者的存储方式不同5 myisam:在数据表生成时会自动生成3个文件6 *.frm :结构文件7 *.MYD :数据文件8 *.MYI :索引文件9 innodb :在数据表生成时其结构如下:10 innodb在生成时,只会升恒一个*.frm的结构文件,问题:数据保存在哪里呢?11 答案:mysql->data->ibdata1文件12

13 ③两者支持的功能也是不同的14 myisam不支持事务处理,而innodb支持事务处理,最新说明:据说mysql5.6以后版本也开始支持事务处理。15 myisam支持全文索引,但是innodb在mysql5.5以后才开始支持。16 myisam支持表锁,而innodb支持行锁。17 myisam不支持外键,而innodb支持外键。

外键

外键必须要满足这样的两个前提:①必须是两个表之间的关联字段②这个字段在从表中充当从键(非主键)。

基本语法:

1 第一种:2 createtable数据表名称(3 id int not nullauto_increment,4 title varchar(40) not null,5 category_id int,6 primary key(id),7 foreign key(category_id) references 主表(主键) on delete cascade(关联删除)|set nullon update cascade(关联更新)|set null

8 )engine=innodb default charset=utf8;9

10 第二种:11 alter table 数据表名称 add constraint 外键名 foreign key(外键字段) references 主表(字段) on delete cascade(关联删除)|set null on update cascade(关联更新)|set null;

特别说明:外键操作时,关联操作一共有4种情况

①cascade,级联操作。主表数据被更新(主键值更新),从表也被更新(外键值更新)。主表记录被删除,从表相关记录也被删除。

②set null,设置为null。主表数据被更新(主键值更新),从表的外键被设置为null。主表记录被删除,从表相关记录外键被设置成null。

但注意,要求该外键列,没有not null属性约束。

③restrict,拒绝父表删除和更新,默认情况

④no action,与③效果相同

关联删除

查询外键

删除外键

添加关联删除

关联置空

三范式

第一范式

1 1NF,是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,2 即实体中的某个属性不能有多个值或者不能有重复的属性。3 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。4

5 第一范式:就是数据表中的每一列要满足原子性,不能再划分。

第二范式

1 2NF,在满足1NF的基础上,要求表中的每条记录必须被唯一的区分。2 同时要求,实体属性应该完全依赖于主关键字。而不能是对主关键字形成部分函数依赖。3 因此常用的做法,是为每一条记录一个字段用于表示其主键,就是单关键字主键。这样就没有组合主键,也就没有部分依赖了。

第三范式

1 3NF,满足第二范式的基础上,要求不能出现传递依赖,也就是不能出现属性依赖于非主属性的。2 ①讲师信息依赖讲师主键id3 ②教室信息依赖班级主键id4 ③代课信息依赖上课主键id5 正常情况下,一张表只能有一种关联关系,直接关联。如果出现传递依赖(A依赖B,B依赖C),则代表你设计的数据表不满足第三范式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值