检索至少选修课程号为C2和C4的学生学号
我靠,这么简单你不会?
学生表s(学号s#,姓名sname,性别sex,年龄age)
课程表c(课程号c#,课程名cname)
成绩表sc(学号s#,课程号c#,分数grade)
select s.s#,count(c#)as 选课门数 from s,sc
where s.s#=sc.s#
group by s.s#
having count(c#)>=3,我们这几天也正学呢!
检索至少选修课程号为C2和C4的学生学号总式为π1(σ1=4∧2='C2'∧5='C4'(SC×C))。
已知学生关系S(SNO,SNAME,AGE,SEX),学习关系SC(SNO,CNO,GRADE),课程关系C(CNO,CNAME,TEACHER)。
需要检索的是选修课程的学生学号,所以要做学习关系SC和课程关系C的迪卡尔积即SC*C。然后从这个关系表以第1列=第1列为标准,检索是否存在第4列为课程号为C2且第5列为课程号为C4,即σ1=4∧2='C2'∧5='C4'。
再得到投影的列,只剩下学生学号π1。总式为π1(σ1=4∧2='C2'∧5='C4'(SC×C))。
扩展资料:
关系代数的五个基本运算:
1、并,设有两个关系R和S具有相同的关系模式,R和S的并是由属于R和S的元组构成的集合,记为R∪S。
2、差: 设有两个关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。
3、笛卡尔积: 设关系R和S的元数分别为r和s。定义R和S的笛卡尔积是个(r+s)元的元组集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S。
4、选择: 从关系中找出满足给定条件的所有元组称为选择。其中的条件是以逻辑表达式给出的 ,该逻辑表达式的值为真的元组被选取。这是从行的角度进行的运算,即水平方向抽取元组。
5、投影: 从关系中挑选若干属性组成的新的关系称为投影。这是从列的角度进行运算。经过投影运算能得到一个新关系,其关系所包含的属性个数往往比原关系少,或属性的排列顺序不同。如果新关系中包含重复元组,则要删除重复元组。
做SC的迪卡尔积即SC*SC,然后从这个关系表中选择出第一列=第四列并且第二列的属性值为C2且第五列的属性值为C4的关系,最后的投影操作是消去多余的列,只剩下学号。这个操作所起到的作用是检索至少选修课程号为C2和C4课程的学生学号。
select cno sno
from sc s
where ‘c=c02’and ‘c=c04’
简单
SELECT SA.SNO
FROM SC AS SA,SC AS SB
WHERE SA.SNO=SB.SNO
AND SA.CNO='C2'
AND SB.CNO='C4'
检索至少选修课程号为C2和C4的学生学号
检索至少选修课程号为C2和C4的学生学号总式为π1(σ1=4∧2='C2'∧5='C4'(SC×C))。已知学生关系S(SNO,SNAME,AGE,SEX),学习关系SC(SNO,CNO,GRADE),课程关系C(CNO,CNAME,TEACHER)。需要检索的是选修课程的学生学号,所以要做学习关系SC和课程关系C的迪卡尔积即SC*C。然...
数据库系统概论关系代数语句问题
(5) 检索至少选修课程号为C2或C4的学生学号。π1(σ1=4∧2='C2'∧5='C4'(SC×SC))这里(SC×SC)表示关系SC自身相乘的乘积操作,其中数字1,2,4,5都为它的结果关系中的属性序号。
mysql小练习,求助,设教学数据库Education有三个关系:
(3)检索选修课程名为“DS”的学生学号与姓名;SELECT SNO,SNAME FROM S WHERE SNO IN (SELECT SNO FROM SC WHERE CNO IN (SELECT CNO FROM C WHERE CNAME='DS'))(4)检索选修课程号为C2或C4的学生学号;SELECT SNO FROM SC WHERE CNO IN ('C2','C4')(5)检索至少选修课程号为C2和C...
SQL语言查询
不知道你的 至少选修了课程号为c3和c4的。 是不是 c3 或者 c4 中的一门选择了就可以了的意思。select 姓名 from 学生 where exists ( select 1 from 选课 where 选课.学号 = 学生.学号 and 选课.课程号 IN ( 'c3' , 'c4' ) )...
关系模型的基本术语共有几个?
3.检索选修课程名为MATHS的学生学号和姓名。4.检索选修课程号为C2或C4的学生学号。5.检索至少选修课程号为C2或C4的学生学号。6.检索不学C2课的学生姓名有年龄。7.检索学习全部课程的学生姓名。1. ∏S#,GRADE(δC#=‘C2’(SC))或∏1,3(δ2=‘C2’...
数据库的关系代数表达式
在关系代数运算中,把由并(∪)、差(-)、笛卡尔积(×)、投影(π)、选择(σ)五个基本操作经过有限次复合的式子称为关系代数表达式。关系代数表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的各种数据查询和更新操作。关系代数表达式用到的运算符包括集合运算符、专门的关系运算符、算术...
查询李明同学的最低分的课程号
查询李明同学的最低分的课程号步骤:1、打开关系表;2、对student按姓名建立索引;3、查询所有姓“李”的同学的姓名和年龄。4、查询李明所选修的课程门数;查询李明的选修的课程名及分数,按分数从低到高排列,找到最低分课程号。
关系数据库关系代数表达式怎么写
(4) 检索选修课程号为C2或C4的学生学号 --- SELECT SNO FROM SC WHERE CNO='C2'OR CNO='C4'--- π SNO (σ CNO='C2'∨CNO='C4' (SC))(5) 检索至少选修课程号为C2或C4的学生学号 --- SELECT SA.SNO FROM SC AS SA,SC AS SB WHERE SA.SNO=SB.SNO AND SA.CNO='C2'AND SB....
常见的SQL面试题:经典50例
查询汇总统计分组分析面试题:查询课程编号为“0002”的总成绩 查询选了课程的学生人数 查询各科成绩最高和最低的分,以如下的形式显示:课程号,最高分,最低分 查询每门课程被选修的学生数 查询男生、女生人数 查询平均成绩大于60分学生的学号和平均成绩 查询至少选修两门课程的学生学号 查询同名同性...
数据库数据查询之嵌套查询与集合查询
(2)使用IN谓词查询讲授课程号为C1的教师姓名 (3)使用ALL谓词查询其他系中比计算机系所有教师工资都高的教师姓名、工资和所在系 (4)使用EXISTS谓词查询没有讲授C1课程的教师姓名、所在系 (5)使用NOT EXISTS谓词查询至少选修了学生S2选修的全部课程的学生学号 查询年龄不大于19岁或者是计算机系的学生...
雀英妇科: [例]设教学数据库中有3个关系:学生关系S(SNO,SNAME,AGE,SEX)学习关系SC(SNO,CNO,GRADE)课程关系C(CNO,CNAME,TEACHER) 下面用关系代数表达式表达每个查询语句.(1) 检索学习课程号为C2的学生学号与成绩.πSNO,...
上城区18030407760: mysql小练习,求助,设教学数据库Education有三个关系: - ?
雀英妇科: (1)检索计算机系的全体学生的学号,姓名和性别; SELECT SNO,SNAME,SEX FROM S WHERE SNO IN ( SELECT SNO FROM SC WHERE CNO IN (SELECT SNO FROM C WHERE CDEPT='计算机') )(2)检索学习课程号为C2的学生学号...
上城区18030407760: 7.查询不学c2课程的学生姓名与年龄 - 上学吧普法考试?
雀英妇科: 括号里面的S▷◁SC表示的是自然连接,当查询的选择条件涉及的属性和查询结果要求的属性不在同一张表里的时候,这时就需要使用连接查询将条件和结果关联起来.
上城区18030407760: 数据库SQL查询语句 - ?
雀英妇科: (我不太清楚你说的课程号是指CNO还是CNAME,我这里假定你说的课程号为CNO,以下语句均未考虑字段数值类型) 1、SELECT A1.SNO,A1.SNAME,A2.GRADE FROM S A1,SC A2 WHERE A1.SNO = A2.SNO AND A2.CNO = C2 AND A2...
上城区18030407760: 设有三个关系:S(s#,sname,age,sex) SC(s# ,c#,gread) C(c#,cname,teacher)请用元组关系演算 - ?
雀英妇科: select distinct sc.s# from sc where sc.c#='c2' and sc.c#='c4'select distinct s.sname,s.sex from s where s.s# in (select sc.s# from sc where sc.c#<>'c2')select distinct sc.s# from sc where sc.c# in (select c.c# from c where teacher='wang') 孩子,多看看书啊,书上都有的!
上城区18030407760: sql语句面试题?
雀英妇科: 1.SELECT s.SNO,SNAME FROM S s,SC sc WHERE s.SNO=sc.SNO AND sc.CNO IN(SELECT CNO FROM C WHERE TNO= (SELECT TNO FROM T WHERE TNAME='LIU')); 2.SELECT SNO FROM SC WHERE CNO IN('C2','C4'); 3.SELECT s....