已知三个关系分别为: S(学号,姓名,年龄,性别,系) C(课程号,课程名,学时,任课教师) SC( 学号,课程号,成绩) 试写出满足下列要求的关系代数 查询T1老师所授课程的课程号和课程名 查询年龄大于18岁男同学的学号、姓名和系别 查询“李丽”老师所授课程的课程号、课程名和课时 查询学号为S1的同学选修的课程的课程号、课程名和成绩
时间: 2024-02-22 10:01:34 浏览: 118
好的,下面是满足要求的关系代数表达式:
1. 查询 T1 老师所授课程的课程号和课程名:
$$
\Pi_{课程号,课程名}(C \Join_{C.任课教师=T1} SC)
$$
2. 查询年龄大于18岁男同学的学号、姓名和系别:
$$
\Pi_{学号,姓名,系}(S \Join_{S.学号=SC.学号} (\sigma_{年龄>18 \land 性别='男'}(S) \Join SC))
$$
3. 查询“李丽”老师所授课程的课程号、课程名和课时:
$$
\Pi_{课程号,课程名,学时}(C \Join_{C.任课教师='李丽'} SC)
$$
4. 查询学号为 S1 的同学选修的课程的课程号、课程名和成绩:
$$
\Pi_{课程号,课程名,成绩}(C \Join SC \Join_{SC.学号=S1} (\sigma_{S.学号=S1}(S)))
$$
其中,$\sigma$ 表示选择操作,$\Join$ 表示自然连接操作,$\Pi$ 表示投影操作。
相关问题
已知三个关系模式:S(sno, sname, age, sex, dept),其中S表示学生表,5个属性分别表示学号,姓名,年龄,性别和系名;C(cno, cname, credit, teacher),其中C表示课程表,4个属性分别表示课程号,课程名,学分和任课教师;SC(sno, cno, grade),其中SC表示学生选课表,3个属性分别表示学号、课程号和成绩。请用SQL语言完成以下题目。 1. 将计算机科学系全体学生的成绩置零。 2. 查询选修2号课程的所有学生的姓名
1. 更新语句如下:
```sql
UPDATE SC
SET grade = 0
WHERE sno IN (
SELECT sno
FROM S
WHERE dept = '计算机科学系'
);
```
2. 查询语句如下:
```sql
SELECT sname
FROM S
WHERE sno IN (
SELECT sno
FROM SC
WHERE cno = '2'
);
```
注意:以上两个语句分别针对不同的题目,不要混淆。
已知数据库表结构:学生(学号,姓名,年龄,性别,所在系) 课程(课程号,课程名,开课学期,任课教师) 选修(学号,课程号,成绩) 教师(工号,教师名,职称,基本工资)。请编写出 查询每个系的学生数,显示结果为系名,人数。
可以使用如下SQL语句查询每个系的学生数:
```
SELECT 学生.所在系 AS 系名, COUNT(*) AS 人数
FROM 学生
GROUP BY 学生.所在系
```
这条SQL语句会将学生表按照所在系进行分组,然后对每个组内的记录计数,最终输出系名和人数两个字段。注意,这里使用了 GROUP BY 子句来指定按照所在系进行分组,COUNT(*) 函数用于计算每个组内的记录数。
阅读全文