广告
返回顶部
首页 > 资讯 > 数据库 >SQL创建表外键约束的语句怎么写
  • 939
分享到

SQL创建表外键约束的语句怎么写

2024-04-02 19:04:59 939人浏览 八月长安
摘要

这篇文章主要介绍sql创建表外键约束的语句怎么写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SQL外键约束可通过FOREIGN KEY关键字来指定,创建语句为“ALTER TABL

这篇文章主要介绍sql创建表外键约束的语句怎么写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

SQL外键约束可通过FOREIGN KEY关键字来指定,创建语句为“ALTER TABLE 表名 ADD CONSTRaiNT 外键名 FOREIGN KEY(列名) REFERENCES 主表名 (列名);”。

教程操作环境:windows7系统、Mysql8版本、Dell G3电脑。

mysql 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。

外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。

创建表外键约束

可以在ALTER TABLE语句中,通过 FOREIGN KEY 关键字来指定外键;添加外键约束的前提是:从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。

具体的语法格式如下:

ALTER TABLE <数据表名> ADD CONSTRAINT <外键名>
FOREIGN KEY(<列名>) REFERENCES <主表名> (<列名>);

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

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

  • 必须为主表定义主键。

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

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

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

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

示例:

修改数据表 tb_emp2,将字段 deptId 设置为外键,与数据表 tb_dept1 的主键 id 进行关联,SQL 语句和运行结果如下所示。

mysql> ALTER TABLE tb_emp2
    -> ADD CONSTRAINT fk_tb_dept1
    -> FOREIGN KEY(deptId)
    -> REFERENCES tb_dept1(id);
Query OK, 0 rows affected (1.38 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> SHOW CREATE TABLE tb_emp2\G
*************************** 1. row ***************************
       Table: tb_emp2
Create Table: CREATE TABLE `tb_emp2` (
  `id` int(11) NOT NULL,
  `name` varchar(30) DEFAULT NULL,
  `deptId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `fk_tb_dept1` (`deptId`),
  CONSTRAINT `fk_tb_dept1` FOREIGN KEY (`deptId`) REFERENCES `tb_dept1` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.12 sec)

注意:在为已经创建好的数据表添加外键约束时,要确保添加外键约束的列的值全部来源于主键列,并且外键列不能为空。

以上是“SQL创建表外键约束的语句怎么写”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: SQL创建表外键约束的语句怎么写

本文链接: https://www.lsjlt.com/news/55934.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL创建表外键约束的语句怎么写
    这篇文章主要介绍SQL创建表外键约束的语句怎么写,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SQL外键约束可通过FOREIGN KEY关键字来指定,创建语句为“ALTER TABL...
    99+
    2022-10-18
  • sql怎么创建外键约束
    在SQL中,可以使用以下语法来创建外键约束:1. 在创建表时添加外键约束:```CREATE TABLE 表名 (   &...
    99+
    2023-09-28
    SQL
  • 怎么使用sql语句创建表约束
    在使用SQL语句创建表时,可以使用以下约束来限制表中数据的规则和完整性:1. PRIMARY KEY约束:用于定义一个或多个列作为表...
    99+
    2023-09-05
    sql
  • MySQL添加外键约束语句怎么写
    要向MySQL表中添加外键约束,可以使用ALTER TABLE语句。语法如下:ALTER TABLE 表名ADD CONSTRAIN...
    99+
    2023-10-23
    MySQL
  • MySQL查询外键约束语句怎么写
    要查询外键约束,可以使用以下语句:SHOW CREATE TABLE table_name;其中,`table_name`是要查询外...
    99+
    2023-10-24
    MySQL
  • SQL约束控制语句怎么写
    SQL约束控制语句可以使用CREATE TABLE或ALTER TABLE语句来实现。下面是一些常见的约束控制语句的示例:1. PR...
    99+
    2023-09-22
    SQL
  • SQL Server主键约束怎么创建
    这篇“SQL Server主键约束怎么创建”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看...
    99+
    2022-10-19
  • sql怎么给表添加外键约束
    在SQL中,可以使用ALTER TABLE语句来给表添加外键约束。语法如下:ALTER TABLE 表名ADD CONSTRAINT...
    99+
    2023-10-24
    sql
  • mysql创建表时设置外键约束的方法
    MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。...
    99+
    2022-10-18
  • mysql创建外键约束总不成功怎么办
    如果MySQL创建外键约束总是不成功,可能有以下几个原因:1. 字段类型不匹配:外键约束的字段类型必须与参照表的字段类型相同。确保两...
    99+
    2023-10-12
    mysql
  • mysql创建外键约束总不成功怎么解决
    创建外键约束失败可能有多种原因,下面列举了一些常见的解决方法:1. 数据类型不一致:外键字段和参照表的字段数据类型必须完全一致。如果...
    99+
    2023-08-30
    mysql
  • 使用sql语句怎么创建一个外键关联
    本篇文章为大家展示了使用sql语句怎么创建一个外键关联,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。学生表: student教师表: teachersql语句 :USE school;CR...
    99+
    2023-06-14
  • mysql主键,外键,非空,唯一,默认约束及创建表的方法
    目录一、操作前提二、mysql创建/新建表1、首先我们需要创建一个数据库;2、然后进入这个数据库;3、创建表;4、查看表;三、使用主键约束1、单字段主键2、多字段联合主键四、使用外键约束1、mysql中外键是什么?2、什...
    99+
    2022-07-26
    mysql主键 mysql外键 mysql非空 mysql唯一 mysql默认约束 mysql表创建
  • SQL创建视图的语句怎么写
    小编给大家分享一下SQL创建视图的语句怎么写,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL创建视图的语句是什么使用crea...
    99+
    2022-10-18
  • sql语句创建外键关联的完整实例
    以创建学生教师表为例: 学生 id 关联教师 tid 学生表: student 教师表: teacher sql语句 : USE school; CREATE TABLE ...
    99+
    2022-11-11
  • SQL语句中怎么创建外部链接
    本篇文章给大家分享的是有关SQL语句中怎么创建外部链接,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SQL语句之外部链接的创建:左连接(lef...
    99+
    2022-10-18
  • 怎么用SQL语句创建视观表
    本篇内容介绍了“怎么用SQL语句创建视观表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!视观表(Views...
    99+
    2022-10-18
  • oracle创建表空间语句怎么写
    这篇文章给大家分享的是有关oracle创建表空间语句怎么写的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。在创建用户之前,先要创建表空间:格式:create tablespace ...
    99+
    2022-10-18
  • 数据库怎么用SQL语句创建表
    要使用SQL语句创建表,你可以按照以下步骤进行操作:1. 使用CREATE TABLE语句创建一个新的表,并指定表的名称。例如:CR...
    99+
    2023-08-12
    SQL
  • 怎么在mysql使用sql语句创建表
    这篇文章将为大家详细讲解有关怎么在mysql使用sql语句创建表,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、语句说明可以使用CREATE TABLE语句创建表。允许NULL值,则说明在...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作