美文网首页
8_mysql查询之其它子句

8_mysql查询之其它子句

作者: 那是个好男孩 | 来源:发表于2020-06-08 10:52 被阅读0次
  1. GROUP BY子句

GROUP BY子句主要用于根据字段对行分组。通常和聚合函数一起使用

举例一:将xscj数据库中各专业名输出。

select 专业名
    from xs
    group by 专业名;

举例二:求xscj数据库中各专业的学生数。

select 专业名,count(*) as '学生数'   
    from xs
    group by 专业名;

举例三:求被选修的各门课程的平均成绩和选修该课程的人数。

select 课程号, avg(成绩) as '平均成绩' ,count(学号) as'选修人数'    
    from xs_kc
    group by 课程号;

举例四:在xscj数据库上产生一个结果集,包括每个专业的男生人数、女生人数、总人数,以及学生总人数。
注意:使用带rollup操作符的group by子句,指定在结果集内不仅包含由group by提供的正常行,还包含汇总行。

select 专业名, 性别, count(*) as '人数'
   from xs
   group by 专业名,性别
   with  rollup;

举例五:在xscj数据库上产生一个结果集,包括每门课程各专业的平均成绩、每门课程的总平均成绩和所有课程的总平均成绩。

select 课程名, 专业名, avg(成绩) as '平均成绩'
    from xs_kc, kc,xs
    where xs_kc.课程号 = kc.课程号 and xs_kc.学号 = xs.学号
    group by 课程名, 专业名
    with rollup;

  1. HAVING 子句

使用having子句的目的与where子句类似,不同的是where子句是用来在from子句后面之后选择行,而having子句是用来在group by子句后选择行!

举例:查找通信工程专业平均成绩在85分以上的学生的学号和平均成绩。
子查询=>where结果集=>分组

select 学号,avg(成绩) as '平均成绩'
   from xs_kc
   where 学号 in 
         (  select 学号
               from xs
               where 专业名 = '通信工程'          )
   group by 学号
   having avg(成绩) >=85;

  1. ORDER BY子句

排序 关键字ASC表示升序排列,DESC表示降序排列,系统默认值为ASC。
举例一:将计算机专业学生的“计算机基础”课程成绩按降序排列。

select 姓名,课程名,成绩     
    from xs,kc,xs_kc
    where  xs.学号= xs_kc.学号 
        and  xs_kc.课程号= kc.课程号 
        and  课程名= '计算机基础'  
        and  专业名= '计算机'
    order by 成绩 desc;

举例二:将计算机专业学生按其平均成绩排列。

select  学号, 姓名, 专业名
    from xs 
    where  专业名= '计算机' 
    order by ( select avg(成绩)
                     from xs_kc
                     group by xs_kc.学号
                     having xs.学号=xs_kc.学号
               );

  1. LIMIT子句

LIMIT子句,主要用于限制被SELECT语句返回的行数。

举例:查找xs表中从第4位同学开始的5位学生的信息。

select 学号, 姓名, 专业名, 性别, 出生日期, 总学分
    from xs
    order by 学号
    limit 3, 5;

  1. UNION子句

使用UNION语句,可以把来自许多SELECT语句的结果组合到一个结果集合中。
举例:查找学号为081101和学号为081210的两位同学的信息。

select 学号, 姓名, 专业名, 性别, 出生日期, 总学分
    from xs
    where 学号= '081101'
    union
    select 学号, 姓名, 专业名, 性别, 出生日期, 总学分
        from xs
        where 学号= '081210';

相关文章

  • 8_mysql查询之其它子句

    GROUP BY子句 GROUP BY子句主要用于根据字段对行分组。通常和聚合函数一起使用 举例一:将xscj数据...

  • MySQL学习day-34:子查询与分页

    一、子查询 可以将子查询放在许多的 SQL 子句中,包括:WHERE 子句; HAVING 子句;FROM 子句。...

  • mysql高级增删改查

    一、高级查询 select 子句 [from 子句] [where 子句] [group by子句] [havin...

  • 二:SQL查询语言

    ①、查询语句可以分为: select 子句、from 子句、where 子句、order by 子句、group ...

  • sql语句的分类DQL、DML、DDL、DCL

    1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询...

  • SQL 语言 4 大类 (5 类 ?)

    数据查询语言(DQL):是由SELECT子句,FROM子句,WHERE子句组成的查询块 数据操纵语言(DML): ...

  • sql select 语句基本结构:

    select 查询语句的基本结构: 这些句子的排列顺序是固定的,其中除 select 子句外,其它都可省略。

  • HQL操作之DQL命令

    HQL操作之DQL命令 基本查询 where 子句 Where 子句不能使用列的别名 备注:通常情况下NULL不参...

  • 【数据库系列 】| 3.聚合与排序

    3.1创建数据表 3.2聚合查询 ● 只有 SELECT 子句和 HAVING 子句(以及 ORDER BY 子句...

  • 子查询因子化

    可以将子查询放在WITH子句中并在WITH子句的外部引用这些子查询,这就称为子查询因子化。下面的例子在WITH自居...

网友评论

      本文标题:8_mysql查询之其它子句

      本文链接:https://www.haomeiwen.com/subject/lboxtktx.html