这么一张SQL面试题,你能否在要求的15分钟内完成?

举报
数据分析与统计学之美 发表于 2021/09/28 09:48:24 2021/09/28
【摘要】 MySQL系列第十八课

这是别人发的一道MySQL面试题,别人要求你在15分钟内完成。一眼看过去,这张面试题并不是很难,但是你能不能很快做出来呢?可以看到,最下方的第3题可能不太全,但是影响不大,后面的那就先不管。
在这里插入图片描述

1. 第一题

1)建表语句

create table test1(
	id varchar(20),
	name varchar(20)
) charset=utf8;

insert into test1(id,name) 
values
("1001","张三"),
("1002","李四"),
("1003","王五"),
("1003","王五"),
("1004","陈六");

结果如下:
在这里插入图片描述

2)请用一条SQL语句,查询去重后的人员信息清单

select 
	id,name
from test1
group by id,name;
----------------------
----------或者---------
select 
	distinct(id),name
from test1

结果如下:
在这里插入图片描述

3)请用一条SQL语句,查询出存在重复记录的人员id

select 
	id,count(id) counts
from 
	test1
group by 
	id
having 
	counts >=2;

结果如下:
在这里插入图片描述

2. 第二题

1)建表语句

# math_table表
create table math_table(
	id int,
	name varchar(20),
	math_score int
) charset=utf8;

insert into math_table(id,name,math_score) 
values
(1,"李明",83),
(3,"张建国",76),
(5,"王华",57);

=============================================

# english_table表
create table english_table(
	id int,
	name varchar(20),
	english_score int
) charset=utf8;

insert into english_table(id,name,english_score) 
values
(2,"陈斌",73),
(3,"张建国",65),
(5,"王华",89);

结果如果:
在这里插入图片描述

2)请用一条SQL语句,查询出两项比赛都参加了的学生的name清单

select 
	a.id,a.name,a.math_score,b.english_score
from 
	math_table a
join 
	english_table b
on 
	a.id = b.id

结果如下:
在这里插入图片描述

3)请用一条SQL语句,查询出参加了数学竞赛但是没有参加英语竞赛的学生的name清单

select 
	a.id,a.name,a.math_score            
from 
	math_table a
left join 
	english_table b
on 
	a.id = b.id    
where
	b.english_score is null;

结果如下:
在这里插入图片描述

4)请用一条SQL语句,查询出两项竞赛得分均大于60分的学生的两项竞赛的平均分

select 
	a.id,a.name,a.math_score,b.english_score          
from 
	math_table a
join 
	english_table b
on 
	a.id = b.id    
where
	a.math_score >=60 and b.english_score >=60;

结果如下:
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。