在学生-课程数据库中,有三张表,请用关系代数表达式查询如下问题

2024-11-28 01:06:26
推荐回答(1个)
回答1:

自己写的,亲测可用。请给分。
3、已知三个关系模式:
学生 S(S#,SNAME,AGE,SEX),其属性的含义为:学号,姓名,年龄,性别;
学习成绩 SC(S#,C#,GRADE) ,其属性的含义为:学号,课程号,成绩;
课程 C(C#,CNAME,TEACHER),其属性的含义为:课程号,课程名,教师。
(1)请用关系代数表达式描述查询:学号为‘S2’的学生所选课程的课程号。
答: Pi C#(Delta S#=‘S2’(S))其中Pi表示投影,Delta 表示选择
(2)完善下面的SQL语句片断。
答:
CREATE TABLE SC(
S# CHAR(10),
C# CHAR(10),
GRADE NUMBER(2),
primary key (S#,C#), /*建立主码约束*/
FOREIGN KEY REFERNCES S(S#), /*在S#列上建立外码约束*/
……
)
(3)用SQL查询块描述下列查询:
学生“李勇”所选选修的课程名。
答: SELECT C.CNAME
FROM S, SC, C
WHERE S. SNAME='李勇'
AND S.S#=SC.S#
AND C.C#=SC.C#;
统计每门课程的选课人数。
答:SELECT C.CNAME, COUNT(S.S#)
FROM SC, C, S
WHERE C.C# = SC.C#
AND SC.S# = S.S#
group by C.CNAME;
在学生表中插入数据(‘1001’,‘王勇’,‘男’,19)
答:INSERT INTO S VALUES ('1001','王勇','男',19);
COMMIT;