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

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

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


image.png

1. 第一题

1)建表语句

create table test1(
  id varchar(20),
  name varchar(20)
) charset=utf8;
insert into test1(id,name) 
values
("1001","张三"),
("1002","李四"),
("1003","王五"),
("1003","王五"),
("1004","陈六");


结果如下:


image.png

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

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


结果如下:

image.png


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

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


结果如下:

image.png

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);


结果如果:

image.png


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


结果如下:

image.png


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;


结果如下:

image.png


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;


结果如下:

image.png

相关文章
|
4月前
|
SQL 数据库
SQL面试50题------(初始化工作、建立表格)
这篇文章提供了SQL面试中可能会遇到的50道题目的建表和初始化数据的SQL脚本,包括学生、教师、课程和成绩表的创建及数据插入示例。
SQL面试50题------(初始化工作、建立表格)
|
7月前
|
SQL 关系型数据库 MySQL
MYSQL-SQL语句性能优化策略以及面试题
MYSQL-SQL语句性能优化策略以及面试题
147 1
|
4月前
|
SQL
sql面试50题------(1-10)
这篇文章提供了SQL面试中的前10个问题及其解决方案,包括查询特定条件下的学生信息、教师信息和课程成绩等。
sql面试50题------(1-10)
|
1月前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
4月前
|
SQL
sql面试50题------(11-20)
这篇文章提供了SQL面试中的50道题目,其中详细解释了11至20题,包括查询与学号为“01”的学生所学课程相同的学生信息、不及格课程的学生信息、各科成绩统计以及学生的总成绩排名等问题的SQL查询语句。
|
4月前
|
SQL
sql面试50题------(21-30)
这篇文章是SQL面试题的21至30题,涵盖了查询不同老师所教课程的平均分、按分数段统计各科成绩人数、查询学生平均成绩及其名次等问题的SQL查询语句。
sql面试50题------(21-30)
|
5月前
|
存储 SQL 索引
面试题MySQL问题之使用SQL语句创建一个索引如何解决
面试题MySQL问题之使用SQL语句创建一个索引如何解决
56 1
|
6月前
|
SQL 大数据
常见大数据面试SQL-每年总成绩都有所提升的学生
一张学生成绩表(student_scores),有year-学年,subject-课程,student-学生,score-分数这四个字段,请完成如下问题: 问题1:每年每门学科排名第一的学生 问题2:每年总成绩都有所提升的学生
|
6月前
|
SQL 关系型数据库 MySQL
sql面试题库
sql面试题库
|
5月前
|
SQL Java 关系型数据库
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
Java面试题:描述JDBC的工作原理,包括连接数据库、执行SQL语句等步骤。
82 0