select 查询(note3)
第四周(select 查询)
-
创建数据库xscj
-
创建三张数据表xs, kc xs_kc;
-
导入数据
-
定义列别名
select 学号 as number,姓名 as name,总学分 as mark from xs where 专业名="计算机"; -- select 列名1 as 列名新名1,列名2 as 列名新名2 from 表名称 where 条件; -- where 后面不能使用列别名,执行where代码时,可能尚未确定列值
-
替换查询结果中的数据
-- 查询xs表中计算机专业各同学的学号,姓名和总学分,对总学分按住奥如下规则进行替换
-- 总学分为空值,替换尚未选课
-- 总学分小于50,替换为不及格
-- 总学分在50-52,替换为合格
-- 总学分大于52,替换为优秀
-- 总学分列标题改为列别名等级
select 学号,姓名,
CASE
WHEN 总学分 is null then '尚未选课'
WHEN 总学分 <50 THEN '不及格'
WHEN 总学分 >=50 AND 总学分 <52 THEN '合格'
WHEN 总学分 >=52 THEN '优秀'
END AS 等级
FROM xs WHERE 专业名='计算机';
select 列名1列名2,
-- 分支语句
case when 列名 情况1 then 备注 (中间情况为空的情况用 is null)
when 列名 情况2 then 备注
when 列名 情况3 and 情况4 then 备注
......
end as 列别名
from 表名 where 条件;
-- 按120分值重新计算,显示xs_kc表中学号为081101的学生成绩信息
select distinct 学号,课程号,成绩*1.2 as 成绩120分制 from xs_kc where 学号='081101';
-- distinct 清除重复行
-- 清除结果中重复行,可用distinct或distinctrow关键字删除重复行