`

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 Constraint [^]

    sql完整性约束参数的使用

    实现SQL Server的数据完整性 SQL Server 2000支持下列五类约束: ...(4)FOREIGN KEY约束(外键约束):定义数据库表中指定列上插入或更新的数值必须在另一张被参照表中的特定列上存在。 (5)UNIQUE约束(惟一约束)

    SQL 各种约束

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

    SQL Server 创建约束图解(唯一 主键)

    SQLServer中有五种约束,Primary Key约束、Foreign Key约束、Unique约束、Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创建和使用的方法。 什么是主键? 在数据库中,常常不只是一个表,...

    SQL SERVER 2000中的列级约束与表级约束

    SQL Server 2000中的列级约束与表级约束 在SQL Server 2000中有5 种约束: 主键约束(primary key constraint) 唯一性约束(unique constraint) 检查约束(check constraint...外部键约束(foreign key constraint)

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

    ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails 这是因为你尝试删除的表中的字段被用作了其他表的外键,因此在删除这个表(父表)之前必须先删除具有外键的表(子表)...

    2009达内SQL学习笔记

    set pause "please put an enter key" 且 set pause on:设置带有提示的分屏 oerr ora 904 :查看错误 set head off :去掉表头 set feed off :去掉表尾 保存在oracle数据库中的所有操作细节: spool ...

    数据库SQL语句讲解.pptx

    空值(NULL)约束 主键(PRIMARY KEY)约束 外键(FOREIGN KEY)约束 默认值(DEFAULT)约束 唯一性(UNIQUE)约束和检查(CHECK)约束。 可以对已创建的表进行哪些修改? 添加、修改列和删除列。 数据库SQL语句...

    T-SQL建库建表加约束(主键,外键,检查,唯一等约束,建文件夹)

    T-SQL建库建表的同时加约束,调用DOS cmdshell命令建文件夹, if exists(select * from sysobjects where name ='Result') drop table Result create table Result ( ExamDate datetime default getdatet() not null,...

    SQL Server 资料

    FOREIGN KEY约束(外部关键字及参照关系说明) CHECK约束(同时涉及到多个属性的域完整性约束) 删除属性 删除订购单关系中的“完成日期”属性: ALTER TABLE 订购单 DROP COLUMN 完成日期 注意:有些系统的...

    【原创精华】sql server 约束详解

    3.外键约束foreign key references 表名(列名) OwnerUserId int not null foreign key references Users(UserId) 外键后面添加on delete[updte] cascade,则为级联删除或修改,删除主表记录,从表中相应...

    mysql外键(Foreign Key)介绍和创建外键的方法

    在MySQL中,InnoDB引擎类型的表支持了外键约束。外键的使用条件:1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但...外键的定义语法: 代码如下:[CONSTRAINT symbol] FOREIGN KEY [i

    PL-SQL(由DBA8[1].CN提供,DBA吧,DBA的出没之地) word格式

     使用Foreign Key约束 21  使用Unique约束 21  使用Check约束 21  使用Not NULL约束 22  在创建表的过程中包括约束 22  查看约束 22  禁用约束 23  删除约束 23 第十章 数据操作 24  插入新行 24 ...

    [详细完整版]29数据库.doc

    FOREIGN KEY约束 D. PRIMARY KEY约束 正确答案:D 教师详解:PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值。主键列不能包含 NULL 值。每个表都应该有一个主键,并且每个表只能有一个主键。...

    精通SQL--结构化查询语言详解

    14.2.5 foreign key(外键)约束 287 14.2.6 check(校验)约束 289 14.3 深入探讨外键与完整性检查 290 14.3.1 引用完整性检查 290 14.3.2 match子句 291 14.3.3 更新、删除操作规则 293 14.4 域约束与断言 ...

    Oracle PL/SQL语言初级教程

    外部键约束(Foreign key constraint) 53 延迟约束检验(Deferred Constraint Checking) 54 序列(Sequences) 54 索引(INDEXES) 55 6.Oracle数据库数据对象分析(下) 56 过程和函数 56 包 58 数据字典 60 7.Oracle...

    T-SQL电子书包含PPT及学习笔记、课后作业 非常好的sql学习资料

    外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的哪列 */ /*添加约束的语法*/ alter table 表名 add constraint 约束名 约束类型 具体的约束说明 /*删除约束的语法*/ alter table ...

Global site tag (gtag.js) - Google Analytics