SQL语句之分组查询

#SQL支持并操作,等价于或操作,但是或操作会出现重复项
SELECT * FROM student WHERE Sdept='CS' UNION SELECT * FROM student WHERE Sage <=10;
#
SELECT * FROM student WHERE Sdept='CS' OR  Sage<=10;

SELECT Sno FROM sc WHERE Cno='1' UNION SELECT Sno FROM sc WHERE Cno='2';

SELECT DISTINCT Sno FROM sc WHERE Cno='1' OR Cno='2';

#交集相当于and,mysql不支持交集
SELECT Sno From student WHERE Sdept='CS';
#表连接实现交集
SELECT DISTINCT sc1.Sno,sc2.Sno FROM sc sc1,sc sc2
WHERE sc1.Cno=1 and sc2.Cno=2 and sc1.Sno=sc2.Sno;
#子查询实现交集
SELECT sno From sc Where cno=1
and sno in(SELECT sno from sc Where cno=2);

#差集,mysql不支持差集

#基于派生表的查询
SELECT Sno,Cno FROM SC,(SELECT Sno,AVG(grade) FROM sc GROUP BY Sno) AS Avg_sc(avg_sno,avg_grade)
WHERE sc.Sno=Avg_sc.avg_sno AND sc.Grade>=Avg_sc.avg_grade;

#SELECT语句的一般形式
/* SELECT 【ALL|DISTINCT】 <目标列表达式>[别名][,<目标列表达式>[别名]].... 
FROM <表名或视图名>[别名] [, <表名或视图名>[别名] ]|(SELECT)[AS]<别名>
[WHERE<条件表达式>]
[GROUP BY<列名>[HAVING<条件表达式>]]
[GROUP BY<>[ASC|DESC]]
*/
/*
目标表达式的可选格式
*/
#集合函数

#Where字句的条件表达式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈勇劲

你的鼓励实我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值