美文网首页
5_mysql查询之选择select列

5_mysql查询之选择select列

作者: 那是个好男孩 | 来源:发表于2020-06-06 08:34 被阅读0次
    1. 选择指定的列
      select Sname,Sage from student;
    2. 定义列别名
      select Sname as 姓名,Sage as '学生 年龄' from student;
      注意:当自定义的列标题有空格的时候,必须用' '引号包裹起来
      不允许在where语句中使用列别名!
    3. 替换查询结果中的数据

    case
    when 条件1 then 表达式1
    when 条件2 then 表达式2
    ......
    else 表达式
    end

    举例:查询xs表中计算机专业各同学的学号、姓名和总学分,对总学分按如下规则进行替换 => 若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50~52之间,替换为“合格”;若总学分大于52,替换为“优秀”。总学分列的标题更改为“等级”。

    select 学号, 姓名,
        case 
            when 总学分 is null then '尚未选课'
            when 总学分 < 50 then '不及格'
            when 总学分 >=50 and 总学分<=52 then '合格' 
            else '优秀'
        end as 等级
    from xs
    where 专业名 = '计算机';
    
    1. 计算列值
      按120分制重新计算成绩,显示xs_kc表中学号为081101的学生成绩信息。
      select 学号,课程号,成绩*1.20 as 成绩120 from xs_kc where 学号= '081101';
    2. 清除结果集中的重复行 (distinct关键字)
      select distinct 专业名,总学分 from xs;
    3. 聚合函数
    函数名 说明
    COUNT 求组中项数,返回int类型整数
    MAX 求最大值
    MIN 求最小值
    SUM 返回表达式中所有值的和
    AVG 求组中值的平均值
    STD或STDDEV 返回给定表达式中所有值的标准差
    VARIANCE 返回给定表达式中所有值的方差
    GROUP_CONCAT 返回由属于一组的列值连接组合而成的结果
    BIT_AND 逻辑或
    BIT_OR 逻辑与
    BIT_XOR 逻辑异或

    求学生总人数
    select count(*) as 学生总数 from student;
    注:count(*) 返回检索行的总数目,不论其是否包含Null值
    统计总学分在50分以上的人数
    select count(总学分) as '总学分50分以上的人数' from xs where 总学分>50;
    Ⅰ. 检查总学分这列 其字段值不为null
    Ⅱ. 其字段值>50
    Ⅲ. 返回满足上述两个条件的行数


    求CS系的学生 最大与最小的年龄
    select max(Sage),min(Sage) from student where Sdept='CS';


    求CS系的学生 年龄总和以及年龄平均值
    select sum(Sage),avg(Sage) from student where Sdept='CS';


    求CS系所有学生的学号
    select group_concat(Sno) from student where Sdept='CS';

    +-------------------------------+
    | group_concat(Sno)             |
    +-------------------------------+
    | 96001,96002,97002,97004,97005 |
    +-------------------------------+
    

    相关文章

      网友评论

          本文标题:5_mysql查询之选择select列

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