SQL数据库建表时怎么设置外键

SQL数据库建表时怎么设置外键,第1张

1> -- 创建测试主表 ID 是主键

2> CREATE TABLE test_main (

3> id INT,

4> value VARCHAR(10),

5> PRIMARY KEY(id)

6> );

7> go

-- 建表时设置外键

1> CREATE TABLE test_sub (

2> id INT,

3> main_id INT,

4> value VARCHAR(10),

5> PRIMARY KEY(id),

6> FOREIGN KEY (main_id) REFERENCES test_main

7> );

8> go

首先,员工和部门一般来说是多对一的关系(一个员工归属一个部门,一个部门包含多个员工),这样的话,在员工表增加外键(部门编号)即可;

项目表和部门表之间已经存在外键,即“所属部门”

可以,这说明这两张表的主键相关联,只是那张是主表(就是该表的主键作为从表的外键),那张是从表(该表的主键同时也是外键),需要自己定义好。

CREATE TABLE `baidispatch_cost` (

`id` varchar(50) NOT NULL COMMENT 'id',

`belong` varchar(15) DEFAULT NULL COMMENT '设计交付日期',

primary key (`id`),

constraint `FK_DISPATCH_ID` foreign key (`id`) references `dispatch_order` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='成本表';

扩展资料:

主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可强制表的实体完整性。当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列。

参考资料来源:百度百科-数据库主键

为数据库表添加外键方法(以SqlSever2005数据库为例):

1、新建两张表,一张为主表,一张为副表。主表里的外键就是连接到副表的主键。

2、首先在主表中添加一个外键字段,如下:

3、在主表上右击,选择关系,如下:

4、点击“添加”。

5、再点击上图中标出的位置,如下:

6、图中标出的“主键表”就选择上面的副表。如下:

7、主键表底下的就选择副表的主键,如下:

8、外键表底下的就选择刚才新建的外键字段。如下:

9、再点击“确定”。

10、点击“是”,即可完成外键的添加。

sql中外键写法格式为 foreign key(列名)。如:create table temp(id int,name char(20),foreign key(id))。

将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)。建立外键的前提是目标关系的主键和参照关系的外键必须定义在一个或同一组的域上。

扩展资料:

外键能够保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。在实际应用中为了便于识别,当主键与相应的外键属于不同关系时,往往取相同的名字。

有很多时候,程序员会发现字段缺少、多余问题或者是创建外键以后就不能添加没有受约束的行(特殊情况下是有必要的),这个时候不想对表结构进行 *** 作,就可以使用约束失效。

多个字段为外键,如下所示,成绩表中学号和课程编号是外键,分别和学生表和课程表连接,代码如下:

create

table

成绩表

(学号

varchar(20)

not

null

constraint

fk_学号

foreign

key

references

学生表(学号),

课程编号

varchar(20)

not

null

constraint

fk_课程编号

foreign

key

references

课程表(课程编号)

constraint

pk_学号_课程编号

primary

key

clustered(学号,课程编号),

成绩

real

null

)

以上就是关于SQL数据库建表时怎么设置外键全部的内容,包括:SQL数据库建表时怎么设置外键、SQL数据库怎么样三个表格通过外键链在一起看网络上的老是错误,作业实在是弄不懂了呜呜呜、请问 sql 字段 可不可以 即是主键又是外键等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9436059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存