高分求一道数据库题目的答案 高手快来啊
设有学生-课程关系数据库,其数据库关系模式为:学生S(学号Sno,姓名SN,所在系SD,年龄SA),其中Sno为主码。课程C(课程号Cno,课程名称CN,先修课号PCno...
设有学生-课程关系数据库,其数据库关系模式为:
学生S(学号Sno,姓名SN,所在系SD,年龄SA),其中Sno为主码。
课程C(课程号Cno,课程名称CN,先修课号PCno),其中Cno为主码。
学生选课SC(学号Sno,课程号Cno,成绩Grade),其中主码为(Sno,Cno)。
1) 写出创建S、C、SC表的SQL语句,并定义每个表的主码
2) 试用关系代数、SQL语言分别写出下列查询:
(1) 查询学生'95001'(为学号)所选的成绩为60以上的课程号
(2) 查询选读了“数据库概论”,并成绩为80或90的学生学号和姓名
(3) 查询选修了全部课程的学生学号、姓名及其所在系名
3) 试用SQL语言写出下列操作:
(1) 找出没有学生选修的课程号及课程名称
(2) 更新表S数据(2005115,Wang,CS,20),将学号改为2004115
(3) 建立视图IS_VIEW(Sno,CN) 展开
学生S(学号Sno,姓名SN,所在系SD,年龄SA),其中Sno为主码。
课程C(课程号Cno,课程名称CN,先修课号PCno),其中Cno为主码。
学生选课SC(学号Sno,课程号Cno,成绩Grade),其中主码为(Sno,Cno)。
1) 写出创建S、C、SC表的SQL语句,并定义每个表的主码
2) 试用关系代数、SQL语言分别写出下列查询:
(1) 查询学生'95001'(为学号)所选的成绩为60以上的课程号
(2) 查询选读了“数据库概论”,并成绩为80或90的学生学号和姓名
(3) 查询选修了全部课程的学生学号、姓名及其所在系名
3) 试用SQL语言写出下列操作:
(1) 找出没有学生选修的课程号及课程名称
(2) 更新表S数据(2005115,Wang,CS,20),将学号改为2004115
(3) 建立视图IS_VIEW(Sno,CN) 展开
1个回答
展开全部
好长。。。这不是书上的题目么。。==我先写写
建表
S表
create table S
(Sno char(9) primary key ,
SN char(20) unique,
SA smallint ,
SD char (20)
);
C表
create table C
(Cno char(4) primary key, //列级完整性约束条件
CN char (40),
Pcno char(4),
FOREIGN KEY Cpno REFERENCES C(Cno) //表级完整性约束条件
);
SC
create table SC
(Sno char (9),
Cno char(4),
Grade smallint,
primary key (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES S(Sno), //表级完整性约束条件
FOREIGN KEY (Cno) REFERENCES C(Cno)
);
(1) 查询学生'95001'(为学号)所选的成绩为60以上的课程号
select Cno
from SC
where Sno='95001' and Grade>=60
2) 查询选读了“数据库概论”,并成绩为80或90的学生学号和姓名
select S.Sno , SN
from SC,S,C
where S.Sno=SC.Sno and
SC.Cno=C.Cno and
C.CN='数据库概论' and
Grade=80 or Grade=90 ;
(3) 查询选修了全部课程的学生学号、姓名及其所在系名
SELECT Sno,SN,SD
FROM S
WHERE NOT EXISTS
( SELECT *
FROM C
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno=S.Sno
AND Cno=C.Cno
));
1) 找出没有学生选修的课程号及课程名称
不会,,怕写错了 就不写了
!!!!!!!!!!!!!!!!!!!!!!!
(2) 更新表S数据(2005115,Wang,CS,20),将学号改为2004115
DELETE
FROM S
WHERE Sno='2005115';
INSERT
INTO S(Sno,SN,SD,SA)
VALUES('2005114','Wang','CS',20);
3) 建立视图IS_VIEW(Sno,CN
CREATE VIEW IS_VIEW
AS
SELECT Sno,CN
FROM S
WHERE SD='IS';
一些标点写的时候要注意
建表
S表
create table S
(Sno char(9) primary key ,
SN char(20) unique,
SA smallint ,
SD char (20)
);
C表
create table C
(Cno char(4) primary key, //列级完整性约束条件
CN char (40),
Pcno char(4),
FOREIGN KEY Cpno REFERENCES C(Cno) //表级完整性约束条件
);
SC
create table SC
(Sno char (9),
Cno char(4),
Grade smallint,
primary key (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES S(Sno), //表级完整性约束条件
FOREIGN KEY (Cno) REFERENCES C(Cno)
);
(1) 查询学生'95001'(为学号)所选的成绩为60以上的课程号
select Cno
from SC
where Sno='95001' and Grade>=60
2) 查询选读了“数据库概论”,并成绩为80或90的学生学号和姓名
select S.Sno , SN
from SC,S,C
where S.Sno=SC.Sno and
SC.Cno=C.Cno and
C.CN='数据库概论' and
Grade=80 or Grade=90 ;
(3) 查询选修了全部课程的学生学号、姓名及其所在系名
SELECT Sno,SN,SD
FROM S
WHERE NOT EXISTS
( SELECT *
FROM C
WHERE NOT EXISTS
(SELECT *
FROM SC
WHERE Sno=S.Sno
AND Cno=C.Cno
));
1) 找出没有学生选修的课程号及课程名称
不会,,怕写错了 就不写了
!!!!!!!!!!!!!!!!!!!!!!!
(2) 更新表S数据(2005115,Wang,CS,20),将学号改为2004115
DELETE
FROM S
WHERE Sno='2005115';
INSERT
INTO S(Sno,SN,SD,SA)
VALUES('2005114','Wang','CS',20);
3) 建立视图IS_VIEW(Sno,CN
CREATE VIEW IS_VIEW
AS
SELECT Sno,CN
FROM S
WHERE SD='IS';
一些标点写的时候要注意
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询