在“学生—选课—课程”数据库中有如下的 3 个关系。 S(S#,SNAME,SEX,DEPARTMENT),主键是 S# C(C#,CNAME,TEACHER),主键是 C# SC(S#,C#,GRADE),主键是(S#,C#) 下列关于保持数据库完整性的叙述中,哪一个是不正确的?( )
时间: 2023-10-07 11:05:11 浏览: 103
关于保持数据库完整性的叙述中不正确的是:
- 在SC表中,S#和C#的组合必须是唯一的,这可以通过将它们作为主键来实现,以保证每个学生只能选择一次同一门课程。
因为一门课程可以有多个学生选修,因此SC表中的S#和C#并不一定是唯一的,可以有多个不同的学生选择同一门课程并获得不同的成绩。因此,SC表的主键应该是一个复合主键,包括S#和C#两个字段。
相关问题
学生关系 S(S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,GRADE) 课程关系 C(C#,CNAME,TEACHER) 查询学习课程号为C2的学生学号与成绩
可以使用如下 SQL 语句查询学习课程号为 C2 的学生学号与成绩:
```sql
SELECT S.S#, SC.GRADE
FROM S, SC
WHERE S.S# = SC.S# AND SC.C# = 'C2';
```
该语句通过内连接(使用 WHERE 子句)将学生关系 S 和选课关系 SC 进行关联,并筛选出选修课程号为 C2 的记录,最后选择学生学号和成绩两个字段进行查询。
15.)基于“学生-选课-课程”数据库中的 3 个关系: S(S#,SNAME,SEX,DEPARTMENT),主码是 S#3 C(C#,CNAME,TEACHER),主码是 C# SC(S#,C#,GRADE),主码是(S#,C#)。 若要查找姓名中第一个字为“王”的学生的学号和姓名,则下面列出的 SOI语句中,哪个(些)是正确的?( A、SELECT S#, SNAME FROM S WHERE SNAME=’王%' B、SELECT S#, SNAME FROM S WHERE SNAME LIKE '王%’ AC SELECT S#,SNAME FROM S WHERE SNAME LIKE’ 王_’ D、全部
正确的 SOI 语句是 A 和 B。SOI语句 A 使用了等于操作符,只会匹配姓为“王”的学生。而SOI语句 B 使用了LIKE操作符和通配符%,可以匹配姓名中以“王”开头的所有学生。SOI语句 C 使用了LIKE操作符和通配符_,只会匹配姓名中第二个字为“王”的学生,不符合要求。因此,正确选项是 A 和 B。