5_mysql查询之选择select列

2020-06-06  本文已影响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 |
+-------------------------------+

上一篇下一篇

猜你喜欢

热点阅读