mysql数据库,外键约束和表关系
Posted 巴蜀秀才
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库,外键约束和表关系相关的知识,希望对你有一定的参考价值。
E-R 图 (实体关系模型)
E-R图也称实体-联系图(Entity Relationship Diagram),
提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
它是描述现实世界关系概念模型的有效方法。
是表示概念关系模型的一种方式。
用“矩形框”表示实体型,矩形框内写明实体名称;
用“椭圆图框”表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;
用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实体型连接起来,同时
在”实心线段“旁标上联系的类型(1:1,1:n或m:n)。
外键约束
数据表的存储引擎只能为InnoDB;
外键列和参照列数据类型一致;
外键必须关联到键上面去,一般情况是关联到,另一张表的主键.
建立外键约束:
建一个表a
再建一个表b,并给它外键约束:
建立外键约束的语句:constraint `外键名` foreign key(ab_id) references `a`(a_id);
foreign key(ab_id) references `a`(a_id); 默认给予外键名,不会重复。
删除外键: alter table `b` drop foreign key dc_id;
增加外键:
注意这里没有指定外键名,我们可以查看它的名字:
给school表插入数据:
给student表插入数据:
如果插入数据时,ss_id 的值在school表的school_id值中没有则会报错;
多对多关系:
举例,学生要报名选修课,一个学生可以报名多门课程,一个课程有很多的学生报名,那么学生表和课程表两者就形成了多
对多关系。对于多对多关系,需要创建第三张关系表,关系表中通过外键加主键的形式实现这种关系。
先建立课程表:
再建立中间表student_course:
s_id对应于学生表的学生学号;c_id 对应于课程表的课程编号。
#求最大年龄 mysql> SELECT MAX(`age`) FROM `student_details`;
#求最小年龄:
#其他一些操作:
mysql数据库查询
以上是关于mysql数据库,外键约束和表关系的主要内容,如果未能解决你的问题,请参考以下文章