第1题 考查group by 、case when**
test_2 表内容:
riqi | shengfu |
---|---|
2005-05-09 | 胜 |
2005-05-09 | 胜 |
2005-05-09 | 负 |
2005-05-09 | 负 |
2005-05-10 | 胜 |
2005-05-10 | 负 |
2005-05-10 | 负 |
如果要生成下列结果, 该如何写sql语句?
日期 | 胜 | 负 |
---|---|---|
2005-05-09 | 2 | 2 |
2005-05-10 | 1 | 2 |
解答:
select riqi '日期' ,
sum(case when shengfu='胜' then 1 else 0 end)'胜',
sum(case when shengfu='负' then 1 else 0 end) '负'
from test_2
group by riqi;
第2题 考查case when
第一种 test_1 表
请用一条sql语句查询出这三条记录并按以下条件显示出来:
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文 | 数学 | 英语 |
---|---|---|
及格 | 优秀 | 不及格 |
答案:
select
(case when '语文' >80 then '优秀'
when '语文' >60 then '及格'
else '不及格' end) as '语文',
(case when '数学' >80 then '优秀'
when '数学' >60 then '及格'
else '不及格' end) as '数学',
(case when '英语' >80 then '优秀'
when '英语' >60 then '及格'
else '不及格' end) as '英语'
from test_3;
第二种:test_1表
course score
语文 70
数学 80
英语 58
大于80分为优秀,60-80 及格,<60为不及格
select course '课程',
(case when score >80 then '优秀'
when score >60 then '及格'
else '不及格' end)'评级'
from test_1;
第3题:考查
(1)学生表(学号,姓名,年龄,性别)
test_student(SS,Sname,Sage,Ssex)
(2)课程表(课程编号,课程名称,教师编号)
test_course(CC,Cname,TT)
(3)成绩表(学号,课程编号,分数)
test_student_score(SS,CC,score)
(4)教师表(教师编号,教师名称)
test_teacher(TT ,tname)
答:创建表:
#创建student表
CREATE TABLE test_student (
SS bigint(12) NOT NULL COMMENT '学号',
Sname varchar(20) DEFAULT NULL COMMENT '姓名',
Sage int(3) DEFAULT NULL COMMENT '年龄',
Ssex varchar(4) DEFAULT NULL COMMENT '性别',
PRIMARY KEY (SS)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
#创建test_cource 课程表
create table test_cource(
CC bigint(12) not null comment '课程编号',
Cname varchar(20) default null comment '课程名称',
TT bigint(12) default null comment '教师编号',
primary key(CC)
)ENGINE=InnoDB DEFAULT CHARSET=utf8
#创建test_student_score 课程表
create table test_student_score(
SS bigint(12) not null comment '学号',
CC bigint(12) not null comment '课程编号',
score double default null comment '分数',
primary key(SS,CC)
)ENGINE=InnoDB DEFAULT CHARSET=utf8
#创建test_teacher 课程表
create table test_teacher(
TT bigint(12) not null comment '教师编号',
tname varchar(20) default null comment '教师名称',
primary key(TT)
)ENGINE=InnoDB DEFAULT CHARSET=utf8