SQL常见面试题

今天刷了一遍牛客里的必知必会题,一共50道题,大部分都比较基础,下面汇总一下易错题。

SQL81 顾客登录名

本题几个关键点:

  • 登录名是其名称和所在城市的组合,因此需要使用substring()和concat()截取和拼接字段。
  • 得到登录名之后需要用upper()转大写。
  • 用as取别名。
sql 复制代码
select cust_id,cust_name,
upper(concat(substring(cust_name,1,2),substring(cust_city,1,3))) as user_login
from Customers

SQL82 返回 2020 年 1 月的所有订单的订单号和订单日期

本题筛选条件和日期有关,需要掌握日期相关的查询条件,有两种方式解此题:

sql 复制代码
# 法一
# select order_num,order_date
# from Orders
# where order_date like '2020-01-%'
# order by order_date ASC

# 法二
select order_num,order_date
from Orders
where YEAR(order_date)='2020' and MONTH(order_date)='01'
order by order_date ASC

SQL86 返回每个订单号各有多少行数

本题要注意返回的是每个订单号的行数。

sql 复制代码
select order_num,count(order_num)
from OrderItems 
group by order_num
order by count(order_num) ASC

SQL88 返回订单数量总和不小于100的所有订单的订单号

having应在group by 之后。

sql 复制代码
select order_num
from OrderItems
group by order_num
having sum(quantity)>=100
order by order_num

SQL100 确定最佳顾客的另一种方式(二)

本题需要注意 HAVING 子句在聚合之后筛选结果。

sql 复制代码
select cust_name,sum(item_price*quantity) as total_price
from OrderItems
inner join Orders on OrderItems.order_num=Orders.order_num
inner join Customers on Orders.cust_id=Customers.cust_id
group by cust_name
having total_price>=100
order by total_price 

SQL108 组合 Products 表中的产品名和 Customers 表中的顾客名

union与union all 都是行合并,前者去重,后者不去重,会全部罗列出来。他们合并后列数不变,行数变多。UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

sql 复制代码
select prod_name
from Products
union all 
select cust_name
from Customers
order by prod_name 

SQL109 纠错4

在用 UNION 组合查询时,只能使用一条 ORDER BY 子句,它必须出现在最后一条 SELECT 语句之后。对于结果集,不存在用一种方式排序一部分,而又用另一种方式排序另一部分的情况,因此不允许使用多条 ORDER BY 子句。

sql 复制代码
SELECT cust_name, cust_contact, cust_email 
FROM Customers 
WHERE cust_state = 'MI' 
UNION 
SELECT cust_name, cust_contact, cust_email 
FROM Customers 
WHERE cust_state = 'IL'
ORDER BY cust_name
相关推荐
Elastic 中国社区官方博客1 小时前
将你自己的密钥用于现有 Elastic Cloud 部署
大数据·数据库·elasticsearch·全文检索
红海云1 小时前
Jev:给智能系统做判断的模型
大数据·数据库·人工智能
wjkjpcba2 小时前
PCBA烧录程序是什么:PCBA包工包料厂家解析烧录与测试
linux·数据库·人工智能·smt贴片加工·pcba贴片加工厂
꯭自꯭闭꯭2 小时前
达梦事物特性及MVCC
linux·运维·数据库
小马同学-2 小时前
MySQL主从复制和读写分离
数据库·mysql
谢亮_vipxieliang2 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
geovindu3 小时前
sql: JSON and XML Data Handling in SQL using sql server 2025
大数据·数据库·sqlserver·数据库开发·数据库架构
IT大白鼠4 小时前
图数据库系列 · 第 02 篇——架构拆解:原生图存储到因果集群
数据库·架构·nosql
EatFan4 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
小蒜学长4 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统