SQL Server中的连接查询

单表查询中的GROUP BY子句

求各课程相应选课人数

select Cno,COUNT(Sno)
from SC
GROUP BY Cno;

在这里插入图片描述

带有HAVING短语指定筛选条件的查询

select Sno
from SC
GROUP BY Sno
HAVING COUNT(*)>3;

此处是先用GROUP BY子句进行分组,再用聚焦函数COUNT对每一组计数,在此基础上使用HAVING短语进行筛选,因为插入的数据没有满足此条件的,所以结果显示没有。

查询平均成绩达到条件的学生学号与平均成绩

在这里插入图片描述

此处因为WHERE子句不能用聚焦函数作为条件表达式,所以报错。
正确的查询语句如下:

select Sno,AVG(Grade)
from SC
GROUP BY Sno
HAVING AVG(Grade)>=90;

因为插入的数据中无满足条件的,所以没有结果截图

WHERE子句与HAVING短语的区别在于作用对象不同,前者作用于基本表或视图选择其中满足条件的元组,后者作用于组,选择其中满足条件的组。

连接查询

等值连接
当连接运算符为=时,称为等值连接,使用其他运算符的称为非等值连接。
查询学生及其选修课程的信息,该查询涉及两个表,此处通过其公共属性Sno来实现

select Student.*,SC.*
from Student,SC
WHERE Student.Sno=SC.Sno;

在这里插入图片描述
在本例中,WHERE子句中的属性名都加上了前缀,这是为了避免混淆,如果属性名在参与连接的各表中是唯一的,则可以省略,但在SQL Server中显示结果时前缀不会被显示。

使用自然连接来实现上述例子(在等值连接中吧目标列中重复的属性列去掉则为自然连接):

select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值