SQL Server高级查询

求平均值 avg()

求和sum()

求最大值max()

求最小值min()

统计有多少条记录count()

分组 group by

条件 having +聚合 count()

左向外联接 left join

右表联接 right join

全部联接 full join

内部链接 inner join

求平均值 avg() :

select max(sage) from tb_stu;

求和sum() :

select sum(sage) from tb_stu;

求最大值max() :

select max(sage) from tb_stu;

求最小值min() :

select min(sage) from tb_stu;

统计有多少条记录count() :

select count(*) from tb_stu;

分组 group by:

select 列名(saddress),列名(ssex),count(*) 人数 from 表名 group by 列名(saddress),列名(ssex);

除了统计函数外,group by 后面的列名跟select后面的列名要保持一致,只可多不可少。

saddressssex人数
1小白1
2小黑1
3小兰1
4小红2

条件 having +聚合 count():

select saddress,count(*) 人数 from  tb_stu where ssex= '女' group by saddress having count(*)>1;

saddress人数
1冲冲冲吃2

左向外联接 left join:

简称左链接,即以左表为基表,只要是左表里有的数据都会显示,而不管右表是否包含,左联接使用关键字left join进行联接。

select a.sid a.name,b.grade from tb_stu as a left join tb_grade as b a.sid=b.gid;

sidsnamegrade
12李四NULL
24李阳64
33刘克兰79
45杨晓98
56张可55

右向外联接 right join:

简称右联接,即以右表为基表,只要是右表里有的数据都会显示,而不管左表是否包含,右联接使用关键字right join 进行联接,语法与左联接类似。

select a.sid,a.sname,b.grade from tb_stu as a right join tb_grade as b on a.sid=b.gid;

sidsnamegrade
1NULLNULL88
23刘克兰79
34李阳64
45杨晓98
56张可55

完整外联接 full join:

简称全联接,即将左表和右表的所有数据全部显示,全联接使用关键字 full join 进行联接。

select a.sid,a.sname,b.grade from tb_stu as a full join tb_grade as b on a.sid=b.gid;

sidsnamegrade
1NULLNULL88
22李四NULL
33李克兰79
44李阳64
55杨晓98
66张可55

内部链接 inner join:

简称内联接,最终会显示两个表或多个表中共有的数据(默认),使用关键字 inner join 或直接用 join 进行联接。

select a.sid,a.sname,b.grade from tb_stu as a inner join tb_grade as b on a.sid=b.gid;

sidsnamegrade
13李克兰79
24李阳64
35杨晓98
46张可55

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值