如何在sql中建立两个表之间的关系

如何在sql中建立两个表之间的关系,sql,oracle11g,Sql,Oracle11g,我想建立这两个表之间的关系,我已经创建了两个表emp和dept,如下所示 create table emp ( empno number(4) constraint empnopk primary key, ename varchar(10) constraint enamenn not null, mgrno number(4) constraint mgrnofk references emp(empno), sal number(10) constraint

我想建立这两个表之间的关系,我已经创建了两个表emp和dept,如下所示

create table emp (
    empno number(4) constraint empnopk primary key,
    ename varchar(10) constraint enamenn not null,
    mgrno number(4) constraint mgrnofk references emp(empno),
    sal number(10) constraint salck check(sal between 2000 and 5000),
    age number(2) constraint ageck check(age>20),
    mobno number(10) constraint mobuq unique
); 

create table dept (
    deptno number(10) constraint deptnopk primary key,
    dname varchar(10) constraint dnamenn not null,
    loc varchar(10) default 'xyz'
);
由于emp表是主表,dept表是子表,为了建立这两个表之间的关系,我给出了查询

alter table emp
add constraint deptnofk foreign key(deptno) references dept(deptno);
当我给出这个查询时,它显示ORA-00904:DEPTNO:invalid identifier


可能有什么问题?

您的emp表没有deptno字段。将其作为数字10添加,效果会更好。

您需要在emp表中添加deptno字段,因为您正在创建一个从表emp到dept by droptno字段的外键。

请确保您的要求正确无误。一个人可以在多个部门工作吗?在一些公司,经理可以管理两个部门。有时,员工可以在两个不同的部门兼职。最后一个查询不添加deptno列,它只尝试添加外键约束。它仅指定列,以便外键约束知道如何建立关系。在创建外键之前,列必须存在。