study表:
id    name class
11001 张三 110
11002 李四 110
11101 张三 111
11202 王五 112
exam表:
id    subject scores
11001 数学    80
11002 数学    90
11101 数学    67
11201 数学    87
11001 语文    54
11002 语文    90
11101 语文    98
11201 语文    67
我已经将EXAM表的id设为主键,那么外键应该怎么设置,怎么查询这个外键呢?

解决方案 »

  1.   

    LZ你太有才了,exam表中id有重復也可以設為主鍵呀alter table study add constraint pk_study(id) primary keyalter table exam add constraint pk_exam(id,subject) primary keyalter table exam add constraint fk_exam_id foreign key(id)
    references study(id)
      

  2.   

    应该是study表的id为主键吧?  学员ID应该不会重复 然后exam表的id 对应的是study表的id  相当于外键 
    查询的时候  如果是要查询每个人的姓名学科分数  直接关联就可以了
      

  3.   

    列举简单的例子  查询存在分数的学员姓名学科分数
    create table study (id number(10),name varchar2(20),class number(5));
    insert into study values (11001,'张三',110);
    insert into study values (11002,'李四',110);
    insert into study values (11101,'张三',111);
    insert into study values (11202,'王五',112);create table exam (id number(10),subject varchar2(20),scores number(5));
    insert into exam values (11001,'数学',80);
    insert into exam values (11002,'数学',90);
    insert into exam values (11101,'数学',67);
    insert into exam values (11202,'数学',87);
    insert into exam values (11001,'语文',54);
    insert into exam values (11002,'语文',90);
    insert into exam values (11101,'语文',98);
    insert into exam values (11202,'语文',87);
    commit;select a.name,b.subject,b.scores
    from study a,exam b 
    where a.id = b.id
    order by a.id      id    name   subject  scores
    ---------------------------------
    1 11001 张三 数学 80
    2 11001 张三 语文 54
    3 11002 李四 数学 90
    4 11002 李四 语文 90
    5 11101 张三 语文 98
    6 11101 张三 数学 67
    7 11202 王五 语文 87
    8 11202 王五 数学 87