2、现有如下三个关系学生表、课程表和选课表: S(Sno, Sname, Sage, Ssex, Sdept) C(Cno, Cname, Cpno, Ccredit) SC(Sno, Cno, Grade) A、请给出如下查询的关系代数表达式: 1)查询学号为”20101259'”的同学所没有选修的课程的课程名; 2)信息系有不及格课程的学生名单;
时间: 2024-03-19 14:41:29 浏览: 48
1) 查询学号为"20101259"的同学所没有选修的课程的课程名:
πCname((πCno(C) - πCno(σSno='20101259'(SC))) ⋈ C)
其中,σSno='20101259'(SC)表示选课表SC中学号为"20101259"的记录,πCno(σSno='20101259'(SC))表示选课表SC中学号为"20101259"的记录所选修的课程编号,πCno(C)表示课程表C中的所有课程编号,两者做差,得到学号为"20101259"的同学所没有选修的课程的课程编号,再与课程表C做自然连接,得到课程名。
2) 信息系有不及格课程的学生名单:
πSname(σSdept='信息系' ∧ ∃Grade<60(SC ⋈ C)))
其中,σSdept='信息系'表示从学生表S中选择所在系为信息系的学生,SC ⋈ C表示选课表SC和课程表C的自然连接,∃Grade<60(SC ⋈ C)表示选课表SC中存在课程成绩不及格的记录,最后再投影出学生姓名。
相关问题
mysql中 在、” 学生选课”数据库中创建一个基于学生表studentInfo、课 程表course和选课表eletive的视图nopass_ view,该视图要求查询输出所有不及格学生的学号sno,姓名sname,课程名cname,成绩score。心三个关系表Studentinfo, Course, Eletive的表结构如下:学生表: Studentinfo(Sno,Sname,Ssex,Sage,Sdept) 课程表: Course(Cno,Cname,Cpno,Ccredit) 学生选课表: Eletive(Sno,Cno,Score)
可以使用以下SQL语句创建所需的视图:
```
CREATE VIEW nopass_view AS
SELECT Studentinfo.Sno, Studentinfo.Sname, Course.Cname, Eletive.Score
FROM Studentinfo, Course, Eletive
WHERE Studentinfo.Sno = Eletive.Sno
AND Course.Cno = Eletive.Cno
AND Eletive.Score < 60;
```
该视图将查询输出所有不及格学生的学号sno,姓名sname,课程名cname,成绩score。请注意,该视图是基于学生表studentInfo、课程表course和选课表eletive创建的。
在学生表student(sno,sname,sage,ssex,sdept)中插入新元组, 学号:200110101 姓名:Mary 年龄:33
好的,我可以回答这个问题。您可以执行以下 SQL 查询语句来插入新元组:
```
INSERT INTO student (sno, sname, sage, ssex, sdept)
VALUES ('200110101', 'Mary', 33, 'female', 'unknown');
```
请注意,这个查询语句假设 `sno` 是主键,因此必须保证新的学号不重复。同时,我还假设您的年龄是整数类型,性别是字符串类型,系别是字符串类型,并且您想将新学生的系别设为 "unknown"。如果这些假设不成立,请根据您的实际情况作出相应调整。