物理外键

简介: 物理外键

物理外键 foreign key

以下外键都是物理外键(数据库级别的外键),我们不建议使用(避免数据库过多造成困扰)

最佳实践

  • 数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)
  • 想使用多张表的数据时,想使用外键(程序去实现)

概念

  • 公共关键字:一个表(从表)中的主关键字在另外一个表(主表)中作为外键
  • 用于约束,使两个表之间形成关联

创建

方式一

-- 年级表 (从表)

createtable`grade`(

    `gradeid`int(10)notnullauto_incrementcomment`年纪ID`,

   `gradename`varchar(50)notnull commnet `年级名称`,

   primarykey(`gradeid`)

)ENGINE=INNODBdefaultcharset= utf8

 

-- 学生信息表 (学号,姓名,性别,年级,手机,地址,出生日期,邮箱,身份证号)

createtable`student`(

    `studentno`int(4)notnullcomment'学号',

   `studentname`varchar(20)notnulldefault'匿名'comment'姓名',

   `sex`tinyint(1)default'1' commnet '性别',

   `gradeid`int(10)defaultnullcomment'年级',

   `phoneNum`varchar(50)notnullcomment'手机',

   `address`varchar(255)defaultnullcomment'地址',

   `borndate`datetimedefaultnullcomment'生日'

   `email`varchar(50)defaultnullcomment'邮箱',

   `idCard`varchar(18)defaultnullcomment'身份证号',

   primarykey(`studentno`),

   

   key`FK_gradeid`(`gradeid`),  

   -- 定义外键key(可省略)

   

   constraint`FK_gradeid`foreignkey(`gradeid`)references`grade`(`gradeid`)

   -- 给外键Key增加约束

)ENGINE=innodbdefaultcharset=utf8

 

方式二

altertable`student`

addconstraint`FK_gradeid`foreignkey(`gradeid`)references`grade`(`gradeid`);


目录
打赏
0
0
0
0
2
分享
相关文章
通过E-R理解 主键和外键的关系
实例 现有课程和教师两个实体,课程实体的属性有课程名称、课程编号、课程属性、考试类型;教师实体的属性包括姓名、工号、职称;一门课程可以有多个教师,且每一位教师可以教授多门课程。教师每教授一门课有课序号。
5337 1
通过E-R理解 主键和外键的关系
|
11月前
使用外键
使用外键。
46 1
|
11月前
外键
外键。
64 5
|
11月前
外键的设置
外键的设置。
113 6
drds逻辑表与物理解析
drds逻辑表与物理解析
156 5
MySQL聚簇索引物理结构及主键查询过程
数据页分裂的过程,在你不停往表里灌入数据时,会搞出来一个个数据页,若你的主键非自增,他可能会有一个数据行挪动过程,保证你下一个数据页的主键值都大于上一个数据页的主键值。
118 0
MySQL数据库约束与表的设计
本文主要介绍MySQL数据库中一些常用的约束,以及表的设计方法。
173 0
MySQL数据库约束与表的设计
数据库中的主键、外键、索引的区别
数据库中的主键、外键、索引的区别
803 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等