我建的oracle下的表学生表
create table student
(sno varchar2(10) primary key,
sname varchar2(10));课程表
create table course
(cno varchar2(10) primary key,
cname varchar2(10)
);分数表
create table score
(sno varchar2(10) primary key,
cno varchar2(10),
score int
constraint student_fk foreign key(sno) references student(sno) on delete cascade,
constraint course_fk foreign key(cno) references course(cno) on delete cascade
);就三张表,一张学生student(sno+sname),一张课程course(cno+cname),一张分数score(sno+cno+sorce)...constraint student_fk foreign key(sno) references student(sno) on delete cascade,这里报错,第 5 行出现错误:ORA-02253: 此处不允许约束条件说明想查找一个叫张三的学生,选了哪些课程的sql语句-,-张三,语文课程的成绩(这我瞎了)请大家帮助下苦逼的楼主,楼主用的是Oracle

解决方案 »

  1.   


    create table score
    (sno varchar2(10) primary key,
    cno varchar2(10),
    score int,--少个逗号
    constraint student_fk foreign key(sno) references student(sno) on delete cascade,
    constraint course_fk foreign key(cno) references course(cno) on delete cascade
    );
      

  2.   

    谢谢纠错哈-,-能问下,怎么写sql语句呢?
    比如找一个叫张三的学生,修了哪些课程
    select sno from student,course,score where student.sno=score.sno and course.cno=score.cno and student.sname='张三';
    Oracle报,ORA-00918: 未明确定义列(sno)Oracle我只会单表查询,不好意思了-,-大学里学的是sql server2000,好像有点不一样
      

  3.   


    select s.sname,c.cname
    from student s,course c,score sc
    where sc.sno=s.sno and sc.cno=c.cno 
    and s.sname='张三';
      

  4.   

    你的:Oracle报,ORA-00918: 未明确定义列(sno)是因为student和score都有sno列,因此你要加个前缀select student.sno --这样就不会有错了
    from student,course,score where student.sno=score.sno and course.cno=score.cno and student.sname='张三';
      

  5.   


    select student.sno,student.sname,course.cname,score.score 
    from student,course,score where student.sno=score.sno and course.cno=score.cno and student.sname='张三';
    最后代码-,-结贴了- -