datagrid如何获取一行数据中的某个字段值_SQL中常见的面试题

大家在面试数据分析岗或其他岗位的时候,时常会被问到一些SQL题,我今天就将常被问到的一些SQL题及答案整理下,给大家做个参考!

案例所使用的表为:

9fba973f447ec79a437553fe95093abb.png

(一)各种连接函数的区别?

(1)inner join

内连接。返回两个表的交集。根据两个表共有的列来匹配其中的行,强调只有两个表中共有的行对应的行才能匹配出来。

ab628b99760e1ae61fbe2fadf440acb0.png
SELECT 

2ef9718666252c840c06088584f8c9a0.png
查询结果

tips:inner可以省略不写,可以连接后再去重,但是这么做的话,执行下来比较低,我们一般在做表连接之前,先去重。

(2)left join

左连接。以左表为基准,若右表中的对应行不满足条件,则结果会将右表中的这些值以null的形式匹配进来。(right join就是以右表为基准,和left join是相对应的)

a787fbf7ed04d1a6e77a468f873382c0.png
SELECT 

6fbf7c5b6310022848794582f9951b26.png

tips:如果需要的是左表独有的数据,可以使用where条件来过滤掉为null的值。

(3)cross join

交叉连接,结果是笛卡尔积,就是第一个表符合查询条件的行数乘以第二个表中符合查询的行数。

56bc4d461ae060dad446c2cdfdc5ae38.png
部分截图

(4)full join(MySQL中没有,所以我没实现)

全连接。若左表有的数据,而右表中没有,而右表中有的数据,而左表中没有,这种情况会在结果中以空值的形式匹配出来。

182b5411a554d415f7b1a9432a415438.png

tips:虽然MySQL中不支持全连接,但是可以使用union all来实现的。


(二)排序窗口函数?

row_number()、rank()、dense_rank(),这三个函数的作用都是返回相应规则的排序序号。

(1)row_number()

为查询出来的每一行记录都会生成一个序号,依次排序且不会重复。

语法:row_number() over(partition by 字段1 order by 字段2) # 字段1是分组的字段名称

dc7eef6a7897418c839528b7044c05fa.png

(2)rank()

使用rank函数来生成序号,over子句中排序字段值相同的序号是一样的,后面字段值不相同的序号将跳过相同的排名排下一个,rank函数生成的序号有可能是不连续的,即排名可能为1,1,3,是跳跃式排名,有两个第一名时接下来就是第三名。

语法:rank() over(partition by 字段1 order by 字段2)

1c1058b2b940cf9db15fb30b7574a31f.png

(3)dense_rank()

dense_rank函数在生成序号时是连续的,当出现相同排名时,将不跳过相同排名号,有两个第一名时仍跟着第二名,即排名为1,1,2这种。

语法:dense_rank() over(partition by 字段1 order by 字段2)

35f74b87bce2dd711185924e90d6942e.png

(三)on和where的区别?

数据库在连接多张表返回记录的时候,都会生成一个中间临时表。

(1)内连接:使用on或者where没有区别,过滤条件放在on或where中,其返回的结果是一样的。

(2)外连接(以左连接为例):

a. on是在生成临时表时使用的条件,不管on的条件是否为真,都会返回左表中的全部记录。

b. where是在临时表生成之后,再对临时表进行过滤的条件,这时已经没有left join的含义了,条件不为真的就全部过滤掉。


(四)主键和外键的区别?

(1)主键:是一张表中能够确定一条记录的唯一标志(数据库中的一条记录中有若干个属性,若某个属性组具有唯一标识一条记录的特性,那么该属性组就可以作为一个主键)。

(2)外键:用于和另外一张表进行关联。例如,A字段是A表中的主键,那么出现在B表中的A字段能够作为B表的外键,实现A,B表的连接查询。


(五)如何连接多个select?

草莓女孩:SQL中如何连接多个select?​zhuanlan.zhihu.com

(六)字符串常见操作函数?

草莓女孩:SQL中的字符串常见操作函数​zhuanlan.zhihu.com

(七) IN/EXIST的联系和区别?

这部分内容我写在了一个牛客网上的SQL题里了

草莓女孩:牛客网每日一练SQL题——使用含有关键字EXISTS查找未分配具体部门的员工的所有信息​zhuanlan.zhihu.com

(八)数据倾斜是什么?怎么解决?

大量相同的key被分配到同一个区内,一个节点承受着巨大的压力,而其他节点计算完毕后一直在等这个忙碌的节点,拖累了整体的计算时间,效率非常低。

如何解决?

  • 使用小表在左,大表在右的,使用/ + map join(table) / 连接,假设表A为小表,B为大表
# 
  • 连接之前先用group by去重,尽量避免使用distinct
  • 如果是由空值导致的数据倾斜,需要先过滤掉空值

最后,给大家推荐个写简历的好网站wondercv(不是应聘设计类的工作,简历模板不用太花哨,重要的是内容要丰富),我都是直接在上面修改的,很方便!

超级简历​www.wondercv.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【实操手册】一篇文章教你快速开始使用视频点播

摘要: 阿里云视频点播(VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速、视频播放于一体的一站式音视频点播解决方案。 用户可以通过阿里云管理控制台进行基本和高级 VoD 配置、操作,还可以通过视频点播…

流程定义管理

文章目录一、流程定义管理功能有哪些?二、部署流程的时候产生的数据表三、流程实例的挂起激活涉及的表一、流程定义管理功能有哪些? 类名:ApiFlowableProcessDefinitionResource 说明请求url方法名①如何查询流程定义分页列表/page-modelpa…

微服务架构到底是什么鬼?

戳蓝字“CSDN云计算”关注我们哦!摘自《微服务架构设计模式》作者::[美] (Chris Richardson)译者:喻勇 导语:微服务架构如何与更广泛的软件架构概念相结合?什么是服务?服…

厉害了,蚂蚁金服!创造了中国自己的数据库OceanBase

摘要: 两万字长文带你了解关于OceanBase的一切!2008年,王坚从微软亚洲研究院常务副院长的位置上离职后,于当年9月加入了阿里巴巴集团担任首席架构师一职,负责集团技术架构以及基础技术平台建设。加入阿里没多久后&…

模型预测控制 索引超出数组元素的数目(0)。_C++基础总结(二):C++基本数据类型及流控制语句详解...

上次分享了hello world, 今天小编分享 C基本数据类型及流控制语句 ,建议大家收藏慢慢学习,同时希望对大家的C学习有所帮助。C 数组C 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据…

(经验总结)flowable工作流_01_流程实例管理

文章目录一、流程定义管理功能有哪些?二、删除流程实例会删除哪些表中的数据?三、流程实例做什么用?四、流程定义涉及的表一、流程定义管理功能有哪些? 类名:ApiFlowableProcessInstanceResource 说明请求url方法名①…

ajax将数据显示在class为content的标签中_利用selenium实现自动翻页爬取某鱼数据

基本思路:首先用开发者工具找到需要提取数据的标签列表:利用xpath定位需要提取数据的列表然后再逐个提取相应的数据:保存数据到csv:利用开发者工具找到下一页按钮所在标签:利用xpath提取此标签对象并返回:调用点击事件,并循环上述过程:最终效果图:代码:from seleniu…

寻找单身狗和进阶版的单身狗

1.找单身狗 ,一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。 在做这个题目之前要理解一个知识点, 1、相同两个的数字异或得0 例如3^30 2、任何数字和0异或得数字本身 例如3^03#…

实体嵌入(向量化):用深度学习处理结构化数据

摘要: 本文详细阐述了深度学习如何来实现处理结构化数据的方法。嵌入源自于NLP(word2vec)中的单词学习,上图来自Aylien本博文将涉及机器学习中两个重复出现的问题:第一个问题是深度学习在图像和文本中都有较好的表现&a…

arcengine遍历属性表_Excel催化剂-遍历文件夹内文件信息特别是图像、音视频等特有信息...

在过往的功能中,有体现出在Excel上管理文件的极大优势,在文件的信息元数据中,有图片和音视频这两类特有的属性数据,此篇对过往功能的一个补充,特别增加了图片和音视频信息的遍历功能。使用场景在文件管理过程中&#x…

想要成为数据科学家?知道这11种机器学习算法吗?

摘要: 想要成为数据科学家?知道这十几种机器学习算法吗?赶快来了解一下吧,文中附各种算法的资源地址! 机器学习从业者都有不同的个性,虽然其中一些人会说“我是X方面的专家,X可以训练任何类型的…

Docker精华问答 | Consul是什么?

在计算机技术日新月异的今天, Docker 在国内发展的如火如荼。特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,那么今天我们继续关于Docker 的精华问答。1Q:Consul是什么?A:Consul是一个分布式…

2020科目一考试口诀_二级建造师考试科目有哪些2020

2020二级建造师考试科目有哪些:2020年二级建造师考试设《建设工程施工管理》、《建设工程法规及相关知识》两个公共科目和《专业工程管理与实务》科目(包含六个专业类别,任选一科报考)。(一)《专业工程管理与实务》科目分为6个专业类别:建筑工…

机器学习用于金融市场预测难在哪?

摘要: 本文主要讲述了机器学习用于金融市场预测难在哪?——金融间序是典型的部分可见马尔科夫决策过程(POMDP) 数据分布 小样本 难以计算的数据 十分复杂 部分可见马尔科夫决策过程 推荐系统的相似性 结束思索金融市场已经成为最早…

full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序

这是在实现多表关联时想到的。我们现在这套体系,实现多表关联比较复杂。如果Superset能官方支持多表关联,不知道会是什么样的方案,复杂度如何。在公式这个层面,没有关联条件,只有两个列、或者多个列,相互之…

js提交java后台,双引号转义为quot;解决办法……StringEscapeUtils.unescapeHtml4完美解决

//将接收到的jsonStr处理一次,就OK了 String newJson StringEscapeUtils.unescapeHtml4(jsonStr);

异构计算助力客户春节webp图片编码

摘要: 背景与挑战 技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约…

发动机压缩比怎么计算公式_怎么判断发动机有积碳,发动机积碳多的症状有哪些...

经过时间的积累,积碳作为发动机的通病几乎无处不有,很多车主也对此十分头疼。不过,很多车主小白并不了解车辆积碳是如何产生的,更不知道如何判断发动机是否有积碳,其实发动机积碳多的症状很容易让车主误以为车辆出现其…

Kubernetes之路 1 - Java应用资源限制的迷思

摘要: 随着容器技术的成熟,越来越多的企业客户在企业中选择Docker和Kubernetes作为应用平台的基础。然而在实践过程中,还会遇到很多具体问题。本文分析并解决了Java应用在容器使用过程中关于Heap大小设置的一个常见问题。随着容器技术的成熟&…

你家的饮水机,到底可以有多脏?

戳蓝字“CSDN云计算”关注我们哦!作者 | 胡巍巍出品 | CSDN(ID:CSDNnews)几年前,笔者在一所培训学校工作。因为学生多、学校大,老师也多,自然办公室也多。这种情况下,学校为了省事&a…