SQL经典面试题1

第1题 考查group by 、case when**

test_2 表内容:

riqishengfu
2005-05-09
2005-05-09
2005-05-09
2005-05-09
2005-05-10
2005-05-10
2005-05-10

如果要生成下列结果, 该如何写sql语句?

日期
2005-05-0922
2005-05-1012

解答:

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 表
语文,数学,英语。其中有3条记录分别表示语文70分,数学80分,英语58分,
请用一条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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值