table
aa
(
value1
int
pk,
value2
int
foregin
key
refreences
on
bb(values2)
)
create
table
bb
(
value2
int
pk
)
具体就是这样,我这里只是模拟一下,你试试看看
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);
提交;
alter table 表 add constraint 外键约束名称 foreign key (列) references 表 (主键列)
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
设F是基本关系R的一个或一组属性,但不是关系的键,Ks是基本关系S的主键。如果F与Ks相对应,则称F是R的外键,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
换而言之,如果关系模式R中的某属性集不是R的主键,而是另一个关系R1的主键则该属性集是关系模式R的外键,通常在数据库设计中缩写为FK。
在实际 *** 作中,将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)。[1]
显然目标关系的主码和参照关系的外码必须定义在一个或同一组的域上。关系R和S不一定是不同的关系,即外键不一定要与相应的主键同名。如在学生(学号,姓名,性别,专业号,年龄,班长)关系中,“学号”是主键,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系中“学号”属性,因此“班长”是外键,这里学生关系既是参照关系也是被参照关系。不过在实际应用中为了便于识别,当主键与相应的外键属于不同关系时,往往取相同的名字。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)