sql中外键怎么写?

sql中外键怎么写?... sql中外键怎么写? 展开
 我来答
仁昌爱娱乐
高粉答主

2020-02-11 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459820

向TA提问 私信TA
展开全部

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

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

扩展资料:

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

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

freechan10
2020-02-11 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.6万
展开全部

1、创建测试表;

create table test_class(class_id varchar2(10), class_name varchar2(30));

create table test_student(student_id varchar2(10), student_name varchar2(30), class_id varchar2(10));

2、表test_class创建主键,test_student添加外键;

-- Create/Recreate primary, unique and foreign key constraints 

alter table TEST_CLASS

  add constraint p_class_id primary key (CLASS_ID);


-- Create/Recreate primary, unique and foreign key constraints 

alter table TEST_STUDENT

  add constraint f_class_id foreign key (CLASS_ID)

  references test_class (CLASS_ID) on delete cascade;

3、主键表中,插入数据;

insert into test_class values (1001,'高一(1)班');

insert into test_class values (1002,'高一(2)班');

insert into test_class values (1003,'高一(3)班');

commit;

4、在外键表中,插入数据,但是class_id在主键表中未定义,则可以发现报错信息;

insert into TEST_STUDENT values (100001,'王二',1004);

5、如果外键表中,插入数据,class_id在主键表中已定义,则可以正常插入;

insert into TEST_STUDENT values (100001,'王二',1001);

insert into TEST_STUDENT values (100002,'王二',1002);

insert into TEST_STUDENT values (100003,'王二',1003);

commit;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大宝妈谈教育
高粉答主

2020-04-23 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:52.2万
展开全部

sql中外键怎么写的方法。

如下参考:

1.创建测试表;创建表test_class(class_idvarchar2(10),class_namevarchar2(30));创建表test_student(student_idvarchar2(10),student_namevarchar2(30),class_idvarchar2(10));

2.表test_class创建主键,test_student添加外键;

创建/重新创建eprimaryuniqueandforeignkeyconstraints

altertableTEST_CLASS

Addconstraintp_class_idprimarykey(CLASS_ID);

创建/重新创建eprimaryuniqueandforeignkeyconstraints

altertableTEST_STUDENT

Addconstraintf_class_idforeignkey(CLASS_ID)

Referencestest_class(CLASS_ID)ondeletecascade;

3.主键在表7a686964616fe58685e5aeb931333433623133中,插入数据;

Insertintotest_classvalues(1001,'class1');

Insertintotest_classvalues(1002,'class2');

Insertintotest_classvalues(1003,'class3');

提交;

4.在外键表中插入数据,但class_id没有在主键表中定义,可以查找错误信息;

InsertintoTEST_STUDENTvalues(100001,'kingtwo',1004);

5.如果将数据插入外键表,并且在主键表中定义了class_id,则可以正常插入;

InsertintoTEST_STUDENTvalues(100001,'kingtwo',1001);

InsertintoTEST_STUDENTvalues(100002,'kingtwo',1002);

InsertintoTEST_STUDENTvalues(100003,'twoKings',1003);

提交;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flower_mlh
推荐于2017-09-05 · 超过19用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:39.9万
展开全部
what do you mean ? 一楼的把我搞糊涂了。
是添加约束吗?
create table xxx(aa int primary key,
bb int ,
cc int,
dd int,
ee char(2),
foreign key(bb,cc) refrences to yyy( bb,cc),
foreign key(dd) references to zzz(kk)
);
外键一定要用()括起来,即使只有一项。
references to 是只的是那个表的外键,以及在那个表中是主键的名字
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
johbjs
2010-12-16 · TA获得超过776个赞
知道答主
回答量:350
采纳率:0%
帮助的人:244万
展开全部
create table 表名(
a ...,
b...,
...
constraint 约束名 primary key(a,b)
);

如果是已建完表则 去添加 alter table table_name add constraint 约束名 primary key(a,b);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式