SQL Server 数据查询 至少的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 04:37:24
设学生选课库中有3个数据表:
S(sno,sname,birthday,sdeptartment,tel,sex),
SC(sno,cno,grade), C(cno,cname,teacher,pcno)。
检索至少选修课程“数据结构”和“C语言”的学生学号;
给个代码,还有类似的问题是怎么思考的。至少 至多 最少 最多之类的
查询里加 至少 加与不加一样的
比如说 查询选修课程“数据结构”和“C语言”的学生
结果应该一样的 只要他选修的课程里包含这两门就可以了

SELECT s1.sno
FROM sc AS s1,sc as s2,c AS c1,c as c2
where s1.cno = c1.cno
and s2.cno=c2.cno
and c1.cname='数据结构'
and c2.cname='C语言'
and s1.sno=s2.sno

S(sno,sname,birthday,sdeptartment,tel,sex)
SC(scno,sno,cno,grade)--这里要添个scno也是主键。
C(cno,cname,teacher,pcno)

select s.sno from S s ,SC sc ,C c where s.sno=sc.sno and sc.cno=c.cno and cname in ('数据结构','C语言');

这不是书上的例题吗?!
select s.sno from S s ,SC sc ,C c where s.sno=sc.sno and sc.cno=c.cno and (cname = '数据结构' or cname = 'C语言');

至少问题:
select s.sno from S a,SC b ,C c where s.sno=b.sno and b.cno=c.cno and cname = '数据结构' and cname='C语言'

至多问题:
select s.sno from S a,SC b ,C c where s.sno=b.sno and b.cno=c.cno and (cname = '数据结构' or cname='C语言')

1、至少即:
结果集={“数据结构”AND“C语言”}U{其他集合}

2、至多即:
结果集={无选课}U{有且仅有“数据结构”}U{有且仅有“C语言”}U{有且仅有“数据结构”和“C语言”}