mysql外键约束的写法:【[CONSTRAINT ] FOREIGN KEY 字段名 REFERENCES 主键列1】。外键约束是表的一个特殊字段,经常与主键约束一起使用。

在 CREATE TABLE 语句中,通过 FOREIGN KEY 关键字来指定外键。

(推荐学习:mysql教程)

具体的语法格式如下:

MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。

对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。

定义外键时,需要遵守下列规则:

主表必须已经存在于数据库中,或者是当前正在创建的表。如果是后一种情况,则主表与从表是同一个表,这样的表称为自参照表,这种结构称为自参照完整性。必须为主表定义主键。

主键不能包含空值,但允许在外键中出现空值。也就是说,只要外键的每个非空值出现在指定的主键中,这个外键的内容就是正确的。

在主表的表名后面指定列名或列名的组合。这个列或列的组合必须是主表的主键或候选键。

外键中列的数目必须和主表的主键中列的数目相同。

外键中列的数据类型必须和主表主键中对应列的数据类型相同。

举例:

为了展现表与表之间的外键关系,本例在 test_db 数据库中创建一个部门表 tb_dept1,表结构如下表所示。

创建 tb_dept1 的 SQL 语句和运行结果如下所示。

创建数据表 tb_emp6,并在表 tb_emp6 上创建外键约束,让它的键 deptId 作为外键关联到表 tb_dept1 的主键 id,SQL 语句和运行结果如下所示。

以上语句执行成功之后,在表 tb_emp6 上添加了名称为 fk_emp_dept1 的外键约束,外键名称为 deptId,其依赖于表 tb_dept1 的主键 id。

注意:从表的外键关联的必须是主表的主键,且主键和外键的数据类型必须一致。例如,两者都是 INT 类型,或者都是 CHAR 类型。如果不满足这样的要求,在创建从表时,就会出现“ERROR 1005(HY000): Can't create table”错误。

mysql数据库教程 外键_myMySQL数据库外键约束怎么写 MySQL数据库使用教程相关推荐

  1. mysql数据库约束详解_MySQL数据库中的外键约束详解

    使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的表进行创建.检索.更新和删除等操作都是些比较简单的过程.理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器 ...

  2. hibernate mysql 外键_如何在hibernate中设置关联会在数据库中生成外键

    hibernate学习笔记(三) hibernate的一些杂记:1.sessionFactory的用法:SessionFactory是线程安全的,构造 SessionFactory 很消耗资源sess ...

  3. 【数据库1】mysql,DDL/DML,DQL,外键约束,多表/子查询,事务,登陆,连接池,jdbc,redis,crontab,ftp,oracle,数据交换/存储/收集

    文章目录 1.mysql安装:存储:集合(内存:临时),IO流(硬盘:持久化) 1.1 服务端:双击mysql-installer-community-5.6.22.0.msi 1.2 客户端:命令行 ...

  4. mysql 外键查询_mysql 外键查询(mysql数据库多表联查)

    mysql 外键查询(mysql数据库多表联查) 2020-07-24 11:51:00 共10个回答 查看方式主要是通过第三方工具或者是sql语句,主要有以下三种方式1:使用Navicateform ...

  5. 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量

    文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...

  6. Mysql数据库——数据表的优化、外键与三范式

    数据表优化 将商品信息表进行优化 1.创建商品种类表: create table if not exists goods_cates( id int unsigned primary key auto ...

  7. mysql是否需要设置外键_数据库到底需不需要设置外键?

    在大型系统中(性能要求不高,安全要求高),最好使用外键(外键可以增强数据库数据的完整性和一致性) 在大型系统中(性能要求高,安全自己控制),不用外键(有外键约束的话,插入字段会进行检查,影响效率) 小 ...

  8. mysql外键必须是主键吗_mysql数据库外键、主键详解

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号 ...

  9. MySQL—数据库表的完整性约束(非外键约束)

    完整性约束:为防止不符合规范的数据存入数据库,在用户对数据进行插入.修改.删除等操作时,MySQL提供了一种机制来检查数据库中的数据是否满足规定的条件,以保证数据库中数据的准确性和一致性,这种机制就是 ...

最新文章

  1. 中国电子学会图形化四级编程题:绳子算法
  2. oracle从备份提取归档,Oracle归档模式有备份,丢失数据文件的恢复
  3. jvm类加载、初始化
  4. matlab绘图 subplot函数使用方法
  5. OpenCV学习笔记(一)(二)(三)(四)(五)
  6. 给element-ui的steps加点击事件
  7. 重新学习Spring一--Spring在web项目中的启动过程
  8. mysql 拼接_mysql-gt;redis C++
  9. Java课程笔记_3
  10. 千斤顶装配图怎么画_机械制图——绘制千斤顶装配图教程.ppt
  11. 图解数字签名-数字证书-公钥加密-私钥签名原理
  12. ElasticSearch索引生命周期管理(ILM)
  13. Android蓝牙开发系列文章-蓝牙设备类型知多少?
  14. 安卓ttf格式的字体包_【新品】比百思不得姐细一点的小粗黑丨正常大小+小字体...
  15. 手机相机里面的m_手机里面照相机的像素怎么调
  16. 知识兔课程揭秘跨境电商七大骗局!
  17. 代理加速 gradle 构建
  18. 求一个数除 1 和自身以外的因子
  19. HTTP中的options请求详解
  20. cname解析教程_实战!CloudFlare使用CNAME解析并添加SSL教程

热门文章

  1. 【Android 小功能】双击返回键返回桌面(进入后台),再次进入不加载启动页,物理键双击退回桌面
  2. flashcharge充电协议_拆解报告:iQOO 55W FlashCharge2.0超级闪充车充iCH2055
  3. 大数据之 impala教程
  4. 2021-12-10 vue移动端卖座电影项目(十) 使用状态管理模式vuex的state控制选项卡tabbar的显隐,mutation的用法,this.$store.commit()的两个参数
  5. 一款iPhone App推广中得来的经验教训
  6. 计算机设备购置清单,计算机硬件实验室设备采购清单
  7. 迭代器、装饰器、软件开发规范
  8. js怎么将字符串转为数组?字符串数组互转
  9. 【Go】gim IM服务器,支持多业务接入
  10. Autolayout约束动画化-Animating Autolayout Constraints