SQL常见面试题

这篇具有很好参考价值的文章主要介绍了SQL常见面试题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       

目录

SQL81 顾客登录名

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

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

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

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

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

SQL109 纠错4


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

SQL81 顾客登录名

SQL常见面试题,Java八股,sql,数据库,牛客

        本题几个关键点:

  • 登录名是其名称和所在城市的组合,因此需要使用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 月的所有订单的订单号和订单日期

SQL常见面试题,Java八股,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常见面试题,Java八股,sql,数据库,牛客

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

select order_num,count(order_num)
from OrderItems 
group by order_num
order by count(order_num) ASC

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

SQL常见面试题,Java八股,sql,数据库,牛客

        having应在group by 之后。

select order_num
from OrderItems
group by order_num
having sum(quantity)>=100
order by order_num

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

SQL常见面试题,Java八股,sql,数据库,牛客

        本题需要注意 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 表中的顾客名

SQL常见面试题,Java八股,sql,数据库,牛客

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

select prod_name
from Products
union all 
select cust_name
from Customers
order by prod_name 

SQL109 纠错4

SQL常见面试题,Java八股,sql,数据库,牛客

在用 UNION 组合查询时,只能使用一条 ORDER BY 子句,它必须出现在最后一条 SELECT 语句之后。对于结果集,不存在用一种方式排序一部分,而又用另一种方式排序另一部分的情况,因此不允许使用多条 ORDER BY 子句。文章来源地址https://www.toymoban.com/news/detail-773009.html

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

到了这里,关于SQL常见面试题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java从入门到精通24==》数据库、SQL基本语句、DDL语句

    2023.8.27 数据库是一个电子化储存数据的系统,它能够以结构化形式组织、存储和管理数据,使得数据的访问、操作和管理变得更为高效、可靠和安全 数据库通常包括数据、数据结构、查询语言、数据存储和检索引擎等多个组成部分,可分为关系型数据库、非关系型数据库等

    2024年02月11日
    浏览(45)
  • JAVA编码规范:安全规约、mysql数据库_java后端的sql编码规范

    7、【强制】如果存储的字符串长度几乎相等,使用 char定长字符串类型 8、【强制】varchar是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text,独立出来一张 表,用主键来对应,避免影响其它字段索引效率。 9、【强制】表

    2024年04月10日
    浏览(49)
  • Java一般用于postgis空间数据库通用的增删查改sql命令

    目录 1 增加 2 删除 3 查询 4 更新 \\\"public\\\".\\\"JGSQGW_Geo\\\"为某模式下得表  一般postgrel有这样的设计模式

    2024年02月13日
    浏览(45)
  • 实战Java springboot 采用Flink CDC操作SQL Server数据库获取增量变更数据

    目录 前言: 1、springboot引入依赖: 2、yml配置文件 3、创建SQL server CDC变更数据监听器 4、反序列化数据,转为变更JSON对象 5、CDC 数据实体类 6、自定义ApplicationContextUtil 7、自定义sink 交由spring管理,处理变更数据         我的场景是从SQL Server数据库获取指定表的增量数据,查

    2024年02月10日
    浏览(87)
  • java八股文面试[数据库]——数据库三范式

    什么是范式? 范式是数据库设计时遵循的 一种规范 ,不同的规范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF): 属性不可分割 ,即每个属性都是不可分割的原子项。(实体的属性即表中的列) 理解:一个列不能包含两个数据 第二范式(2NF):满足第一范式;且不存在

    2024年02月10日
    浏览(37)
  • Microsoft SQL Server 2019 下载、安装及Java JDBC配置连接数据库(多图详解 超详细)

    一、下载 下载链接Microsoft SQL Server 二、安装 1.找到刚刚下载的文件,双击打开后,选择基本并接受 2.选择接受 3.选择安装位置,并点击安装,然后等待下载安装完成 4.正在安装 -5.遇到了一个问题,重启一下(未遇到该问题的可忽略此步) 6.安装成功,点击安装SSMS 7.点击下载

    2024年02月04日
    浏览(105)
  • 24、Flink 的table api与sql之Catalogs(java api操作数据库、表)-2

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月04日
    浏览(55)
  • Cause: java.sql.SQLSyntaxErrorException: Table ‘xxx数据库.xxx表‘ doesn‘t exist

    Cause: java.sql.SQLSyntaxErrorException: Table ‘xxx数据库.xxx表‘ doesn‘t exist 这个错误通常表示在数据库中找不到指定的表。出现这个错误的原因可能有几种,包括以下情况: 表不存在:最明显的原因是表确实不存在于数据库中。这可能是由于表名拼写错误、数据库连接错误或表在数

    2024年02月05日
    浏览(44)
  • Bug解决:获取JDBC连接失败;嵌套异常是java.sql.SQLException:无法从底层数据库获取连接

    出现的问题 Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database! 说白了就是连接数据库出问题了,寻找了一个半小时才发现错误 从头到尾检查了一遍,这里使用的是C3P0连接池。 解决方法 1.如果使用的是c3p0连接池,prop

    2023年04月08日
    浏览(48)
  • 从数据库中取时间值,报错:java.sql.Timestamp cannot be cast to java.lang.Long

    1、问题描述 将数据库中的查询到的 timestamp类型的数据,转成 Long类型报错。 2、解决方案 因为 java.sql.Timestamp 是 java.util.Date 的子类; 所以,直接 将 java.sql.Timestamp 转换为 java.util.Date 类型 即可。 或者将数据转成String类型输出: DateUtil 工具类如下:

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包