SQL常见面试题
2024-01-01 23:14:40
? ? ? ? 今天刷了一遍牛客里的必知必会题,一共50道题,大部分都比较基础,下面汇总一下易错题。
SQL81?顾客登录名
? ? ? ? 本题几个关键点:
- 登录名是其名称和所在城市的组合,因此需要使用substring()和concat()截取和拼接字段。
- 得到登录名之后需要用upper()转大写。
- 用as取别名。
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 月的所有订单的订单号和订单日期
? ? ? ? 本题筛选条件和日期有关,需要掌握日期相关的查询条件,有两种方式解此题:
# 法一
# 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?返回每个订单号各有多少行数
? ? ? ? 本题要注意返回的是每个订单号的行数。
select order_num,count(order_num)
from OrderItems
group by order_num
order by count(order_num) ASC
SQL88?返回订单数量总和不小于100的所有订单的订单号?
? ? ? ? having应在group by 之后。
select order_num
from OrderItems
group by order_num
having sum(quantity)>=100
order by order_num
SQL100?确定最佳顾客的另一种方式(二)
? ? ? ? 本题需要注意?HAVING
子句在聚合之后筛选结果。
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 语句的结果集。
select prod_name
from Products
union all
select cust_name
from Customers
order by prod_name
SQL109?纠错4
在用 UNION 组合查询时,只能使用一条 ORDER BY 子句,它必须出现在最后一条 SELECT 语句之后。对于结果集,不存在用一种方式排序一部分,而又用另一种方式排序另一部分的情况,因此不允许使用多条 ORDER BY 子句。
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
文章来源:https://blog.csdn.net/m0_61028090/article/details/135306797
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!