CREATE
TABLE
学生表
(学号
VARCHAR(12)
NOT
NULL,
姓名
VARCHAR(20)
NOT
NULL,
性别
VARCHAR(10)
NOT
NULL,
年龄
INT
CHECK(年龄>=0
AND
年龄<=120),
所在系
VARCHAR(20)
NOT
NULL,
PRIMARY
KEY
(学号)
)
CREATE
TABLE
课程表
(课程号
VARCHAR(12)
NOT
NULL,
课程名
VARCHAR(20)
NOT
NULL,
先修课号
VARCHAR(20)
NOT
NULL,
学分
INT
CHECK(学分>0
AND
学分<=20),
PRIMARY
KEY
(课程号)
)
CREATE
TABLE
成绩表
(学号
VARCHAR(12)
NOT
NULL,
课程号
VARCHAR(12)
NOT
NULL,
成绩
REAL
CHECK(成绩>=0
AND
成绩<=100),
PRIMARY
KEY
(学号,课程号),
FOREIGN
KEY
(学号)
REFERENCES
学生表
(学号),
FOREIGN
KEY
(课程号)
REFERENCES
课程表(课程号)
)
不知道你表怎么建的,目测是你数据有问题(第四个字段在这题里没什么用,就没写,另外:你第一个图的语句也不对,会多出来两个null关联起来的情况,所以最后我改了一下)
create table course(cno int,
cname varchar(50),
cpno int)
insert into course values (1,'数据库',5)
insert into course values (2,'数学',null)
insert into course values (3,'信息系统',1)
insert into course values (4,' *** 作系统',6)
insert into course values (5,'数据结构',7)
insert into course values (6,'数据处理',null)
insert into course values (7,'PASCA语言',6)
select firstcno,secondcpno from course first,course second where firstcpno=secondcno and secondcpno is not null
最好把你的插入数据语句发出来,才能看出来问题,我这个得执行结果:
这个是主键约束的问题。
INSERT INTO course VALUES ('A','A','A',1)
表COURSE 的cpno列为主键。
不能插入重复值
假如我执行了上面的SQL语句 再也不能插入在cpno列插入A的值了。
换个别的值就OK。
以oracle 为例:
1、create table student( Sno number(10) primary key,
Sname varchar2(20),
Ssex varchar2(2),
Sage number(10),
Sdept varchar2(20)
);
2、SELECT FROM student FROM Sdept='计算机' ORDER BY Sno DESC
3、SELECT DISTINCT studentSno,studentSname,studentSsex
FROM student,Course,SC
where studentSno=SCSno AND CourseCno=SCCno
AND CourseCcredit=5 AND SCGrade > 60
4、create or replace trigger my_trig
after delete on student
for each row
begin
delete from SC where Sno=:studentSno;
end;
以上就是关于有一个“学生课程”数据库,数据库中包括三个表:全部的内容,包括:有一个“学生课程”数据库,数据库中包括三个表:、数据库系统概论、数据库输入数据问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)