数据库-多表查询(SQL SERVER)

1降序 desc
升序 asc
2最多的几个,top2 和百分比表达
查询女生人数最多的两个学院,查询结果显示:学院、女生人数。
select top 40 PERCENT s.Sdept,count() AS NUM from s
where s.Ssex=‘女’ GROUP BY S.Sdept ORDER BY COUNT(
) DESC;

3 不重复
distinct
查询最低分低于50分的学生信息
select DISTINCT * FROM S,SC
WHERE S.Sno=SC.Sno AND SC.Score<50

4嵌套查询 in 不能用=
查询与“张三”同岁的“计算机学院”的学生信息
select * FROM S AS S1
WHERE S1.Sdept=‘计算机学院’ AND year(S1.Sbirthday) IN
( select YEAR(S2.Sbirthday) FROM S AS S2
WHERE S2.Sname=‘张三’);

查找“高等数学1”成绩最好的10个学生的信息。
select * FROM S
WHERE S.Sno IN
( SELECT TOP 11 SC.Sno FROM SC,C
WHERE C.Cno=SC.Cno AND C.Cname=‘高数’ order BY SC.Score DESC);

5SOME ALL 子查询
查询其它学院比“计算机学院”的学生年龄都大的学生信息
select * FROM S
WHERE S.Sdept!=‘计算机学院’ and YEAR(S.Sbirthday) >ALL
(SELECT YEAR(S.Sbirthday) FROM S
WHERE S.Sdept=‘计算机学院’)

6子查询+聚集函数
查询只被一个学生选修了的课程信息
select * FROM c
WHERE c.Cno IN
(SELECT SC.cno FROM SC
GROUP BY SC.cno HAVING COUNT(*)=1);

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值