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、全部
时间: 2024-04-04 21:30:31 浏览: 103
正确的 SOI 语句是 A 和 B。SOI语句 A 使用了等于操作符,只会匹配姓为“王”的学生。而SOI语句 B 使用了LIKE操作符和通配符%,可以匹配姓名中以“王”开头的所有学生。SOI语句 C 使用了LIKE操作符和通配符_,只会匹配姓名中第二个字为“王”的学生,不符合要求。因此,正确选项是 A 和 B。
相关问题
设有3个关系: S(S#,SNAME,SEX,AGE) SC(S#,C#,GRADE) C(C#,CNAME,TEACHER) 试用关系代数表达式表示下列查询语句:(1)~(8)小题
(1) 查询所有学生的姓名和年龄:
π SNAME, AGE (S)
(2) 查询选了课程C1并且成绩不低于80分的学生的学号和姓名:
π S# SNAME (σ C#='C1' ∧ GRADE>=80 (SC ⨝ S))
(3) 查询选了课程C1或C2并且成绩不低于80分的学生的学号和姓名:
π S# SNAME (σ (C#='C1' ∨ C#='C2') ∧ GRADE>=80 (SC ⨝ S))
(4) 查询没有选课程的学生的学号和姓名:
π S# SNAME (S - π S# (SC ⨝ S))
(5) 查询至少选了两门课程的学生的学号和姓名:
π S# SNAME (σ COUNT(C#)≥2 (SC ⨝ S) ⨝π S# (SC))
(6) 查询选修了张老师教授的课程的学生的学号和姓名:
π S# SNAME (SC ⨝σ TEACHER='张' (C))
(7) 查询选修了至少一门课程的女生的学号和姓名:
π S# SNAME (σ SEX='女' ∧ S# IN (π S# (SC ⨝ S)))
(8) 查询选修了全部课程的学生的学号和姓名:
π S# SNAME (σ COUNT(C#)=(SELECT COUNT(*) FROM C) (SC ⨝ S))
在“学生—选课—课程”数据库中有如下的 3 个关系。 S(S#,SNAME,SEX,DEPARTMENT),主键是 S# C(C#,CNAME,TEACHER),主键是 C# SC(S#,C#,GRADE),主键是(S#,C#) 下列关于保持数据库完整性的叙述中,哪一个是不正确的?( )
关于保持数据库完整性的叙述中不正确的是:
- 在SC表中,S#和C#的组合必须是唯一的,这可以通过将它们作为主键来实现,以保证每个学生只能选择一次同一门课程。
因为一门课程可以有多个学生选修,因此SC表中的S#和C#并不一定是唯一的,可以有多个不同的学生选择同一门课程并获得不同的成绩。因此,SC表的主键应该是一个复合主键,包括S#和C#两个字段。