mysql dese_Mysql中的DQL查询语句(2)

----------分类汇总 group by --例1 --查询学生表中有哪些专业 select distinct 所在系 from xs --group by 实现 select 家乡 from N2D09003 group by 家乡 --例2 求每个地方的学生数 select 家乡,count (*) as 人

----------分类汇总 group by --例1

--查询学生表中有哪些专业 select distinct 所在系 from xs

--group by 实现 select 家乡 from N2D09003 group by 家乡

--例2 求每个地方的学生数 select 家乡,count (*) as 人数 from N2D09003 group by 家乡  --按照家乡  进行分类汇总

--[例3]求每个地方 男生和女生的人数 select 家乡,性别,count(*) as 人数 from N2D09003 group by 家乡,性别  --按照家乡 和  性别 进行分类汇总

/*` [特别注意:1:select 后面出现的列名,必须出现在group by 后面] 2:group by与order by连用,order by 子句中可包含聚合函数. 3、group by关键字后可以使用多个字段名作为分组字段,这样, 系统将根据这些字段的先后顺序对结果集进行更加详细地分组。

--[例4]求每个地方的总人数,并且按照人数从多到少排序 select 家乡,count(*) as 人数 from N2D09003 group by 家乡 order by 人数 desc    --这里的order by 后面可以是聚合函数(如果需要的话)

select * from xs order by max(年龄) dese --错误  不满足使用要求第二条

-------------09.12.04

-----------group by ...having --作用:分类汇总后,再进行筛选 /*查询每个专业总人数,并且显示 总人数>3人的专业*/ select 所在系 , count(*) as  人数 from  xs group  by 所在系 having count(*)>3  --筛选出人数>3人的专业

----------group by ....with rollup select 所在系, count(*) as 人数 from xs group by 所在系,性别 with rollup  --在分类汇总之后,再次汇总

select 所在系,性别, count(*) as 人数 from xs group  by 所在系,性别 with rollup  --在分类汇总之后,再次汇总

-----------group by .... with cube select 所在系,性别,count(*) as 人数 from xs group by 所在系,性别 with cube --比rollup 汇总的更详细(按照 group by 后面的列进行再次汇总)

-------------链接查询 /*查找选修了课程号为2且成绩在80分以上的学生姓名和成绩*/ select 姓名,xx.成绩 from xs,xx where xs.学号=xx.学号  --两表链接条件 and 课程号=2 and xx.成绩>80

--加了 表名.列名 (一般无需在列名之前加表名前缀,只有当两个表有相同的列名时才加前缀) select xs.姓名,xx.成绩 from xs,xx where xs.学号=xx.学号  --两表链接条件 and xx.课程号=2 and xx.成绩>80

-------------查询  刘德华的成绩 --方式一 省略前缀 select xx.成绩 from xx,xs        where  xx.学号=xs.学号 and 姓名='刘德华'

--方式二 嵌套查询 select 成绩 from xx where 学号=    ( select 学号 from xs where 姓名='刘德华' )

--方式三 内联式查询 select  xx.成绩 from xx      join xs on  xs.学号=xx.学号     --两表连接条件 where 姓名='刘德华'      --其他限制条件

--查询林心如的古汉语成绩 select 姓名, 课程名 ,xx.成绩

from xs  join  xx on  xs.学号=xx.学号          join  kc on  kc.课程号=xx.课程号 and 姓名='林心如' and 课程名='古汉语'

select 姓名 ,课程名 ,xx.成绩 from  xs,xx,kc where xs.学号=xx.学号 and xx.课程号=kc.课程号 and 姓名='林心如' and 课程名='古汉语'

select 成绩 from xx where 课程号= ( select 课程号 from kc where 课程名='古汉语' ) and 学号= ( select 学号 from xs where 姓名='林心如' )

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值