`

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) ;


相关推荐

    SQL教程-word版28页

    目录 1 SQL基础 1.1 SQL简介 1 1.2 SQL语法 2 1.3 SQL SELECT 语句 ...SQL SELECT DISTINCT 语句. ...SQL WHERE 子句 ...SQL AND & OR 运算符. ...SQL FOREIGN KEY 约束. 19 2.8 SQLALTER TABLE 语句 21 2.9 SQL 数据类型 23

    INSERT语句与FOREIGN KEY约束冲突

    阅读此书以了解根本原因:SQL FOREIGN KEY Constraint [^]

    SQL Server2008创建约束图解

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

    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语句...

    SQL语句总结,包括增删改查,建库,表,修改表结构,增删约束与字段等

    + 外键约束:alter table 从表名 add constraint 约束名 foreign key (字段名) references 主表名 (字段名) + 检查约束:alter table 表名 add constraint 约束名 check (条件) * 删除约束:alter table 表名 drop...

    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,...

    MySQL约束(三).pdf

    FOREIGN KEY约束:介绍外键及其在维护参照完整性中的重要性。 UNIQUE约束:解释唯一性约束,确保列中的所有值都是不同的。 NOT NULL约束:确保列不接受NULL值。 CHECK约束:用于确保列中的值满足特定条件。 级联规则...

    SQL Server 2014数据库项目案例教程习题参考答案

    常见的约束有 PRIMARY KEY 约束、UNIQUE 约束、FOREIGN KEY 约束、CHECK 约束等。DEFAULT 约束是指在插入操作中如果没有提供输入值时,则 SQL Server 系统会自动为该列指定一个值。 本资源为读者提供了一个关于 SQL...

    数据库SQL 创建 查询语句

    约束是数据库中的数据完整性实现的具体方法,在 SQL Server 中,包括 5 种约束类型:primary key 约束、foreign key 约束、unique 约束、check 约束和 default 约束。 四、数据查询 数据查询是数据库中最基本的...

    SQL Server 资料

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

    数据库应用软件:第5章 数据库完整性约束.ppt

    3. FOREIGN KEY 约束:定义值与同一个表或另一个表的主键值匹配的一列或多列组合。 4. CHECK 约束:指定列的允许值。 5. DEFAULT 约束:指定列的默认值。 6. NULL 约束:指定是否允许为 NULL。 在 SQL Server 中...

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

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

Global site tag (gtag.js) - Google Analytics