mysql学习六之实体类型的一对一,多对多,一对多关系详解,定义外键后记录的增加删除操作,以及级联删除操作
一、实体与实体之间的一对一关系
字段比较多时可以通过垂直分隔的方法形成两个表,即形成1:1的关系。
二、实体之间一对多的关系
注意:是在多的一端增加一个字段用于指向所属的另外实体情况。
三、多对多的关系
多对多的实现关系需要在中间建立一个对应关系表。这个对应关系表至少包含两个原先表的各自主键。
对于多对多关系还有一个问题。
其实多对多的关系是将多对多转换成两个一对多,那么在visio设计数据库时如何画箭头指向呢?
其实这个问题可以这样思考,
1、多的指向一,加入学生和班级关系,是多对一,如果班级指向学生那么班级表就要为每个学生建立一个字段,大大浪费了空间。
2、要分清那个是多,那个是一。上图所示:一个讲师可以有多个关系,一个关系只能有一个讲师。因此讲师表是一,关系表是多。因此关系表指向讲师。
四、外键 foreign key
1、定义外键
注意:外键的作用很重要。
2、外键的sql语句
注意:此处有个comment列属性,意思是注释,相当于在列的旁边有个注释。
其实在创建表时还应该写一句:如果表存在就删除此表。然后再创建。
[code]drop table if exists tbl_name;
外键的书写:先增加一个外键字段,用foreign key 指定该字段,reference 关联 表的字段。
3、定义外键后,如果想增加记录,首先看父表记录中有没有外键的记录。
问题2:那么还有一个问题,在一对多中,外键加在一中,还是多中?
很明显,外键一般存在多的表中,因为如果在一中,恐怕需要加无数个外键。
五、含有外键的删除操作
由于定义了外键,各表之间产生了关联,随意增加删除,都牵动着各表,删除操作更是复杂。
这就需要表的级联操作。
级联操作包含主表更新和主表删除。步骤:
1、首先你所创建的表要设置成运行级联操作。
修改外键设置:方法是,先删除外键,再添加外键。通过修改表完成
对于删除外键:
首先要知道外键名:通过语句查看
[code]show create table tbl_name\G;
删除外键:
[code]alter table tbl_name drop foreign key 外键名;
增加级联动作:
[code]alter table tbl_name add foreign key (本表外键字段) references tbl2_name (外键字段) on delete set null;
on delete set null;删除主表时,将从表的外键设置为null.
上图可见在删除主表的记录时,从表外键被设置为null了。
on delete cascade;是级联删除,即:如果删除了主表记录内容,那么从表记录也被删除。
on update restrict; 表示更新时严禁操作。其中restrict 是默认值。
这是个默认值,不写也有。而我们的目标是在更新主表主键时,从表的外键值也跟着更改。
只能用 on update cascade;
- liunx中(mysql 索引住主外键关系对数据库的操作深入学习)
- MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- 定义元素类型为int、元素个数不受限制的集合类Set, 包括:<=(包含于)、==(相等)、!=(不等)、 |(并集)、 &(交集)、-(差集)、+=(增加元素)、-=(删除元素)等操作
- Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件)
- MySql入门之一:DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- MySQL学习笔记20150925时间数据类型以及字符集与varchar(M)M最大值关系
- Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件)
- mysql 学习记录(一)--建表,增加,删除,修改,基本查询
- Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件) 【转】
- mysql命名行下对外键的增加删除操作
- mysql删除重复记录语句的方法 作者: 字体:[增加 减小] 类型:转载 时间:2010-06-21 我要评论 查询及删除重复记录的SQL语句,虽然有点乱,但内容还是不错的。 . .
- MySQL在表中增加一列,删除一列,修改列明,修改列类型,以及关键字冲突的解决
- MySQL学习记录(建表+增加+删除+更改)二
- Mysql字段操作—增加字段、删除字段、修改字段名、修改字段类型(约束条件)
- mysql 学习之列类型以及属性特点详解
- ASP.NET 操作Cookie详解 增加,修改,删除
- MYSQL - 增加字段、删除字段、修改字段名、修改字段类型(约束条件)
- Entity Framework 学习初级篇7--基本操作:增加、更新、删除、事务
- Mysql 增加删除列主键外键
- MySql增加字段、删除字段、修改字段名称、修改字段类型