Skip to content

初级面试题

写 SQL 查询成绩⼩于 60 分的所有学⽣名单

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

写 SQL 查询成绩⼩于 60 分的所有学⽣名单

公司

  • 传音控股

招聘类型

社招

题目解析

  1. 考察在之前⼯作中是否会数据库的条件查询操作
  2. 考察是否能熟练掌握了 SQL 条件查询语句解题思路

答案

-- 1)在纸上画出该表的形状,就是⼀个⾮常简单的三个字段的表
-- 2)关注查询成绩⼩于 60 分的所有学⽣名单
-- A)只显示成绩⼩于 60 分的学⽣名单,这是条件查询
-- B)使⽤条件查询三步法就能轻松做出题⽬
--(3)答案
select name from students where score < 60

查询 2022 年销售订单的数据

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

有一个名为 "sales" 的表,其中包含以下字段:order_id, customer_id, order_date, product_id, quantity, price。查询 2022 年销售订单的数据

数据表

公司

某金融公司

招聘类型

  • 社招
  • 校招

答案

  • SQL 解法 1
SELECT *
FROM sales
WHERE order_date BETWEEN '2022-01-01' AND '2022-12-31';

注意,这个查询假设 order_date 列包含日期时间戳,而不是仅包含日期。如果 order_date 列仅包含日期,则可以将日期字符串中的时间部分设置为 00:00:00 或使用 DATE(order_date) 函数来提取日期部分。

  • SQL 解法 2
SELECT *
FROM sales
WHERE order_date >= '2022-01-01' AND order_date < '2023-01-01';

从表 "sales" 中选择所有字段,并筛选出 "order_date" 在 2022 年的订单数据。

注意,查询条件使用了大于等于 2022 年 1 月 1 日并且小于 2023 年 1 月 1 日的日期范围,这样可以确保仅返回 2022 年的数据。

  • SQL 解法 3
SELECT *
FROM sales
WHERE YEAR(order_date) = 2022;

这个查询语句将从 "sales" 表中选择所有 "order_date" 字段年份为 2022 的数据,即查询 2022 年的销售订单数据。

如果只想选择特定字段,可以将 "*" 替换为您需要选择的字段名称。

  • SQL 解法 4
SELECT *
FROM sales
WHERE date_format(order_date, '%Y') = '2022';

使用 date_format 函数来提取日期中的年份,然后将其与 2022 进行比较。

date_format 函数返回的是字符串类型的年份值,将其与字符串 "2022" 进行比较。

请写出⼀个 SQL 语句来查询分数前 5 的所有⼈

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

请写出⼀个 SQL 语句来查询分数前 5 的所有⼈

公司

  • 传音控股

招聘类型

社招

题目解析

  1. 考察对取值指令 limit 的应⽤
  2. 考察对 order by 指令的使⽤
  3. 考察对 SQL 语句中的指令顺序的掌握程度

答案

-- 1)limit 的应⽤
-- limit ⽤法 1:限定查询记录(从第⼀条到指定的数量)
select * from 表名 limit 5
-- limit ⽤法 2: 获取指定区间的数据(从第⼀条到指定的数量)
select * from 表名 limit 0,5
-- 2) order by命令的使⽤
select * from 表名 order by 列 1 asc|desc,列 2 asc|desc,..
-- asc 从⼩到⼤排列,即升序(升序是默认的,也就意味着可写可不写)
-- desc 从⼤到⼩排序,即降序
-- 3)SQL 语句中的命令顺序
select *
from 表名
where 条件 1
group by 依据列
having 条件 2
order by 依据列
limit 0,1
-- 4)答案:
select * from students order by score desc limit 5

如何创建数据表?

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

如何创建数据表?

公司

  • 传音控股

招聘类型

社招

题目解析

  1. 考查⾯试者是否掌握了 SQL 语句的建表语法
  2. 考查⾯试者是否掌握了 SQL 语句建表的常⻅错误
  3. 考查⾯试者是否掌握了 MySQL 中建表时常⽤数据类型
  4. 考查⾯试者是否掌握了主键设置

答案

-- 1)建表语法
-- create table 表名(
-- 字段名 类型 约束,
-- 字段名 类型 约束
-- )
-- 2)建表 5 个常⻅错误
-- A)标点符号必须是英⽂状态下的
-- B)靠近最后⼀个括号的语句不能加标点符号
-- C)不能创建和现有表同名的表
-- D)类型在约束前⾯
-- E)不相关的语句⼀定要注释掉
-- 3)MySQL 中常⽤数据类型和约束
-- * 整数 int (没有负数就是⽆符号),unsigned关键字用于指示一个整数数据类型是无符号的,即只能存储非负整数(0及正整数),不包括负数
-- * ⼩数 decimal(5,2)
-- * 字符串 varchar(10)
-- * ⽇期时间 datetime
-- 4)建表语句中主键的设置
id int unsigned primary key auto_increment
-- 5)答案
create table stu_info(
 no int unsigned primary key auto_increment,
 name varchar(10),
 age int unsigned,
 score decimal(4,1),
 grade int unsigned
)

什么是关系型数据库,主键、外键、索引分别是什么

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

什么是关系型数据库,主键、外键、索引分别是什么?

公司

  • 传音控股

招聘类型

社招

题目解析

考察对于数据库相关概念的了解。

答案

关系型数据库是指:存储数据时有多个数据表格,表格之前有关联信息

常⻅的关系数据库有:

  • Oracle:在⼤型项⽬中使⽤,例如:银⾏、电信等项⽬
  • MySQL:Web 项⽬中使⽤最⼴泛的关系型数据库
  • Microsoft SQL Server:在微软的项⽬中使⽤

概念:

  • 主键:数据库表唯⼀标识,不能为空。
  • 外键:表与表之间关联的字段。
  • 索引:对数据库表中⼀列或多列的值进⾏排序的⼀种结构(相当于图书的⽬录)作⽤是快速访问数据库表中的特定信息。

数据库的增删改查去重命令是什么

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

数据库的增删改查去重命令是什么

公司

  • 传音控股

招聘类型

社招

题目解析

考查对数据库的基本操作的熟练度,看是否真的有⼯作经验

答案

-- 1)增:
insert into (列名,列名,列名,...) values(值,值,值,....)
insert into 表名 values(值,值,值,值,....)
-- 2)删:
delete from 表名——删除全部数据
delete from 表名 where 条件——这⾥的条件是跟 select 的条件是⼀样的。
-- 3)改:
update 表名 set 列名=值,列名=值..... where 条件
-- 4)查:
-- 简单查询
select * from 表名
select 列名,列名,...from 表名
-- 等值与不等值查询
-- 等值查询
select * from 表名 where 列名=值
-- 不等值查询
select * from 表名 where 列名 <> 值
select * from 表名 where 列名 > 值 >=
select * from 表名 where 列名 < 值 <=
-- 多条件查询 逻辑与(and),逻辑或(or)
select * from 表名 where 条件 1 and 条件 2 ...
select * from 表名 where 条件 1 or 条件 2 ...
-- 如果在 where 筛选条件中,既出现 and ⼜出现 or,则先运算 and,除⾮使⽤⼩
括号改变优先级。
-- 范围查询
select * from Car where Price >=30 and Price<=50
select * from Car where Price between 30 and 50
select * from Car where Oil=7.4 or Oil=8.5 or Oil=9.4
select * from Car where Oil in(7.4,8.5,9.4)
-- 模糊查询,⼀般不⽤=,⽽是⽤ like
-- %:任意多个任意字符
-- _:⼀个任意字符
select * from Car where Name like '宝⻢%'
-- 宝⻢%:以宝⻢开头的
-- %宝⻢:以宝⻢结尾的
-- %宝⻢%:只要含有宝⻢这两个字就可以。
-- __宝⻢%:代表第三个字符以宝⻢开头的。
-- 去重:
select distinct 列名 from car

mysql 聚合函数有哪些

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

mysql 聚合函数有哪些

公司

  • 快手

招聘类型

社招

题目解析

MySQL 中常用的聚合函数包括 SUM、AVG、MAX、MIN、COUNT 等

答案

MySQL 中的聚合函数有 SUM(求和)、AVG(平均值)、MAX(最大值)、MIN(最小值)、COUNT(计数)等

mysql 怎么去重

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

mysql 怎么去重

公司

  • 快手

招聘类型

社招

题目解析

在 MySQL 中去重可以使用 DISTINCT 关键字或 GROUP BY 语句

答案

在 MySQL 中可以使用 SELECT DISTINCT 列名 FROM 表名去重,也可以使用 GROUP BY 语句实现去重

SQL 语句中 where 与 having 的区别

面试题目

  • 级别: L1
  • 知识模块: SQL 语法与数据库

  • 如果你在面试过程中,被面试官问到:请谈谈 SQL 语句中 where 与 having 的区别,你会如何回答呢?

公司

  • 某金融公司

招聘类型

  • 社招
  • 校招

答案

简单来说,WHERE 用于筛选整个表中的记录,HAVING 用于筛选聚合函数(如 COUNT, SUM, AVG)筛选分组后的记录。

存在以下几点差异:

  1. 一般情况下,WHERE 用于过滤数据行,而 HAVING 用于过滤分组。
  2. WHERE 查询条件中不可以使用聚合函数,而 HAVING 查询条件中可以使用聚合函数。
  3. WHERE 在数据分组前进行过滤,而 HAVING 在数据分组后进行过滤 。
  4. WHERE 针对数据库文件进行过滤,而 HAVING 针对查询结果进行过滤。也就是说,WHERE 根据数据表中的字段直接进行过滤,而 HAVING 是根据前面已经查询出的字段进行过滤。
  5. WHERE 查询条件中不可以使用字段别名,而 HAVING 查询条件中可以使用字段别名。