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设为主键,那么外键应该怎么设置,怎么查询这个外键呢?
------解决方案--------------------
LZ你太有才了,exam表中id有重復也可以設為主鍵呀
- SQL code
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)
------解决方案--------------------
应该是study表的id为主键吧? 学员ID应该不会重复
然后exam表的id 对应的是study表的id 相当于外键
查询的时候 如果是要查询每个人的姓名学科分数 直接关联就可以了
------解决方案--------------------
列举简单的例子 查询存在分数的学员姓名学科分数
- SQL code
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.scoresfrom study a,exam b where a.id = b.idorder by a.id id name subject scores---------------------------------1 11001 张三 数学 802 11001 张三 语文 543 11002 李四 数学 904 11002 李四 语文 905 11101 张三 语文 986 11101 张三 数学 677 11202 王五 语文 878 11202 王五 数学 87