`

SQL FOREIGN KEY 约束

阅读更多

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

让我们通过一个例子来解释外键。请看下面两个表:

"Persons" 表:

Id_PLastNameFirstNameAddressCity
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

"Orders" 表:

Id_OOrderNoId_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1

请注意,"Orders" 中的 "Id_P" 列指向 "Persons" 表中的 "Id_P" 列。

"Persons" 表中的 "Id_P" 列是 "Persons" 表中的 PRIMARY KEY。

"Orders" 表中的 "Id_P" 列是 "Orders" 表中的 FOREIGN KEY。

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

SQL FOREIGN KEY Constraint on CREATE TABLE

下面的 SQL 在 "Orders" 表创建时为 "Id_P" 列创建 FOREIGN KEY:

MySQL:

CREATE TABLE Orders(O_Id int NOT NULL,OrderNo int NOT NULL,Id_P int,PRIMARY KEY (O_Id),FOREIGN KEY (Id_P) REFERENCES Persons(Id_P))

SQL Server / Oracle / MS Access:

CREATE TABLE Orders(O_Id int NOT NULL PRIMARY KEY,OrderNo int NOT NULL,Id_P int FOREIGN KEY REFERENCES Persons(Id_P))

如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders(O_Id int NOT NULL,OrderNo int NOT NULL,Id_P int,PRIMARY KEY (O_Id),CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)REFERENCES Persons(Id_P))

SQL FOREIGN KEY Constraint on ALTER TABLE

如果在 "Orders" 表已存在的情况下为 "Id_P" 列创建 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE OrdersADD FOREIGN KEY (Id_P)REFERENCES Persons(Id_P)

如果需要命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束,请使用下面的 SQL 语法:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE OrdersADD CONSTRAINT fk_PerOrdersFOREIGN KEY (Id_P)REFERENCES Persons(Id_P)

撤销 FOREIGN KEY 约束

如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:

MySQL:

ALTER TABLE OrdersDROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE OrdersDROP CONSTRAINT fk_PerOrders
分享到:
评论
3 楼 csdn_zuoqiang 2010-09-08  
update user set Password = password('123456') where User = 'root';
2 楼 csdn_zuoqiang 2010-09-03  



mysql手册里写的很清楚:“所有的存储引擎均对CHECK子句进行分析,但是忽略CHECK子句。”


1 楼 csdn_zuoqiang 2010-09-03  
mysql修改字段长度

alter table 表名 modify column 字段名 类型;

例如

数据库中user表 name字段是varchar(30)

可以用

alter table user modify column name varchar(50) ;


相关推荐

    INSERT语句与FOREIGN KEY约束冲突

    在SQL数据库设计中,FOREIGN KEY约束是一种重要的机制,它用于维护数据的引用完整性,确保表之间的关联数据是有效的。当我们尝试使用INSERT语句插入数据时,如果违反了FOREIGN KEY约束,就会出现“INSERT语句与...

    SQL Server2008创建约束图解

    在本文中,我们将详细介绍 SQL Server 2008 中的五种约束:Primary Key 约束、Foreign Key 约束、Unique 约束、Default 约束和 Check 约束。 Primary Key 约束 Primary Key 约束是 SQL Server 2008 中的一种基本...

    SQL教程-word版28页

    #### 2.7 SQL FOREIGN KEY 约束 - **功能**:用于建立两个表之间的链接。 - **语法**: ```sql CREATE TABLE table_name ( column1 datatype, ... FOREIGN KEY (column1) REFERENCES other_table(other_column)...

    Hibernate使用外键ForeignKey

    本篇将详细讲解如何在Hibernate中使用外键`ForeignKey`,以及通过一个简单的例子帮助学习者深入理解其配置与操作。 首先,外键是数据库设计中的一个重要概念,它用于建立两个表之间的关联,通常用来维护数据的一致...

    SQL语句约束 添加约束

    ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo) 这条语句将stuNo字段设置为外键约束,以建立stuMarks表和stuInfo表之间的关系。 在实际开发中,我们可以根据需要...

    SQL 各种约束

    SQL Server中约束的介绍 , 数据完整性分类 实体完整性 域完整性 引用完整性 用户定义完整性 PRIMARY KEY约束 DEFAULT约束 CHECK约束 UNIQUE约束 FOREIGN KEY约束

    sqlserver约束详解

    为了维护这种完整性,SQL Server 提供了多种类型的约束机制,包括主键(Primary Key)、唯一键(Unique Key)、外键(Foreign Key)以及检查约束(Check Constraint)。本文将详细介绍这些约束的创建与删除方法。 #...

    Django ForeignKey与数据库的FOREIGN KEY约束详解

    Django的ORM(对象关系映射)提供了ForeignKey字段,它模拟了数据库的外键行为,但允许开发者灵活地控制是否使用数据库级别的外键约束。 Django的ForeignKey字段允许你在两个模型之间建立一对多或多对一的关系。...

    sql,关于约束的知识

    本文将深入探讨SQL中的五种主要约束:主键(Primary Key)、唯一键(Unique Key)、默认值(Default)、检查(Check)以及外键(Foreign Key),并提供实际的例子来帮助理解。 ### 主键约束(Primary Key) 主键是...

    创建与删除SQL约束或字段约束SQL约束控制

    ADD CONSTRAINT FK_stuNo FOREIGN KEY (stuNo) REFERENCES stuInfo (stuNo) ``` 以上就是关于创建与删除SQL约束的相关知识点及示例。通过掌握这些技巧,可以帮助您更好地管理和维护数据库中的数据。

    数据库教程

    - **SQL FOREIGN KEY约束**:用于引用另一个表中的主键。 - **SQL CHECK约束**:用于限制列中的值的范围。 ### SQL进阶功能 - **SQL DEFAULT约束**: - 为某列设置默认值。 - **SQL CREATE INDEX语句**: - ...

    SQL Server中约束与触发器差异比较.pdf

    DEFAULT(默认约束)用于为列提供默认值,CHECK(检查约束)确保列的值满足特定条件,NOT NULL(非空约束)阻止输入NULL值,UNIQUE(唯一约束)确保列值的唯一性,以及FOREIGN KEY(外键约束)用于维护表间的关系和...

    sql的各种约束

    外键约束(Foreign Key Constraint) 外键约束用于建立两个表之间的关系,确保引用完整性。当一个表(子表)的某一列引用另一个表(父表)的主键或唯一键时,就形成了外键约束。例如: ```sql ALTER TABLE ...

    SQL数据库为表格建立约束

    2. 外键约束(Foreign Key) 外键约束是指对表格中某一列或多列的参照完整性约束,即这些列的值必须来自其他表格中的某一列。例如,在 course 表中,我们可以将 cpno 列设为外键约束,参照 course 表中的 cno 列。 ...

    MySQL删除表的时候忽略外键约束的简单实现

    为了解决这个问题,我们可以利用MySQL中的一个系统变量`FOREIGN_KEY_CHECKS`来临时禁用外键约束检查。 首先,你可以通过以下SQL查询生成所有表的DROP语句,只需将`MyDatabaseName`替换为你的实际数据库名: ```sql...

    SQL内置约束

    - 可以为某个表定义外键约束(`FOREIGN KEY`),确保员工所在部门的ID存在于部门表中。 总之,正确使用SQL内置约束能够显著提高数据库系统的稳定性和可靠性,是数据库设计中的重要组成部分。通过对这些约束的理解和...

    SQL表,约束

    - **外键约束 (FOREIGN KEY)**:用于建立表间关系,保证参照完整性,引用其他表的主键。 - **非空约束 (NOT NULL)**:不允许字段值为NULL。 - **检查约束 (CHECK)**:指定列的值必须满足特定条件。 - **默认约束 ...

Global site tag (gtag.js) - Google Analytics