分享好友 最新动态首页 最新动态分类 切换频道
join on 后跟or有什么用_关于SQL:除了刷题,还要准备什么?
2024-12-26 19:51

其实不论是哪种考察模式,基本看完《SQL必知必会》,然后在牛客刷完在线SQL题就能够解决70%的问题了。那剩下的30%是什么呢

join on 后跟or有什么用_关于SQL:除了刷题,还要准备什么?

——剩下的30%是对语法进行总结,避免陷入因为长时间不写而忘记的尴尬境地……也避免对某些函数进行混淆…… 那我就直接放上来文字版了,主要是针对我在面试中被问到的一些常见函数用法以及混淆点做了简单总结(敲重点,不是所有常见的语法啦,只是我面试中被问到最多的哦,有事没事看两眼,就当复习咯。

当然,别偷懒,重点还是刷题or实习写代码

inner_join内连接,根据两个表共有的列来匹配其中的行,强调只有两个表共有的列值对应的行才能匹配出来。left join/right join/all join(左,右,全)外连接,以left join 为例,如果指定了需要匹配的列名,无论右表对应行是否包含满足连接条件的数据,左表的数据都会提取出来,则结果会将右表的这些值以空值的形式匹配进来。cross join交叉连接,结果是笛卡尔积,就是第一个表符合查询条件的行数乘以第二个表符合查询条件的行数。

▼索引的作用

索引是为了提高数据库查询数据的速度而增加的标志符号(通过创建唯一性索引,可以保证表中每一行数据的唯一性)。索引主要建立在①经常搜索的列;②主键所在列;③外键所在列索引包括聚集索引与非聚集索引,它们的区别在于索引记录的顺序与表记录的顺序是否一致。聚集索引: 可以理解为索引记录的顺序与表记录的顺序一致,SQL默认在依次递增的主键上建立聚集索引,例如,id为1的数据在第一条,id为2的数据在第二条。聚集索引会按照主键的顺序来排序。(例如,用字典找字,对于认识的字可以通过拼音排序对应正文找到页码)非聚集索引: 可以理解数据存储在一个地方,索引指向数据存储的位置,索引的顺序与表中数据记录的顺序不一定一致。例如说,建立数据表登记学生考试成绩,字段包括姓名,学号与分数。假定该表按照成绩排序、学号信息错乱,可以考虑构建非聚集索引,第一名对应1,第二名对应2……,想要提取第10个学生的学号,查找索引10指向的数据即可。(用字典找字,不认识的字可以采用部首结合笔画等信息在检字表中搜索,找到页码。比如查"张"字,检字表中"张"的页码是60页,检字表中"张"的上面是"驰"字,但页码却是100页"张"的下面是"弩"字,页面是200页。很显然,在正文里面这些字并不是真正的分别位于"张"字的上下方,而检字表中连续的"驰、张、弩"三字实际上就是他们在非聚集索引中的排序

(关于聚集索引和非聚集索引的区别可以百度学习下,我记得好几家面试都直接问了……

▼排名函数与排序函数

排序函数 order by(默认asc升序,指定desc降序,例如将表格数据按照考试成绩从低到高排序。排名函数rank, dense rank, row number,得到的成绩的排序后,根据成绩的高低对学生排名,100分对应第一名,99分第二名。它们的区别在于row number: 根据成绩排序生成连续的序列号,1,2,3,4,5……rank 和row number 不同,rank 考虑了相同分数学生的排名问题。如第一名100分,第2名两个人并列99分,那么98分的同学排名第四。dense rank: 和rank的区别在于,同样考虑了分区内的排名,但dense rank的输出结果是连续的。如第一名100分,第2名两个人并列99分,那么98分的同学排名第三。

▼on和where的区别

前提:数据库在连接多张表返回记录时,都会生成一个中间临时表。在内连接中,使用on或者where没有区别。在外连接里,例如使用left join时:on是在生成临时表时使用的条件,不管on的条件是否为真,都会返回左边表中的全部记录。where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

▼连接多个select

union: 连接select,不允许重复值,而且select的对象要有相同的列以及数据类型;(例如A表中某字段的数据是1,1,2,3,4,B表中对应的数据是(0,0,0,0,0,则提取的数据是(1,0;2,0;3,0;4,0,也就是说(1,0)这个组合只会出现一次。)union all: 作用同union,但是允许重复值(也就是说,与上面一样的操作里,(1,0)这个组合会出现2次)一般来说如果select 字段大于1个,用union all比用union速度快,因为union 会将多个结果中重复的数据合并,union all则是直接合并Intersect: 和 union指令类似,intersect也是合并两个select语句结果的函数。不同的地方是, union的处理结果类似于全集 (如果这个值存在于第一个select或者第二个select,它就会被选出),而 intersect则比较像取出交集 ( 值要同时存在于第一个select和第二个select)。

minus: 先找出第一个 select 语句所产生的结果,然后看这些结果有没有在第二个 select语句的结果中。最后会输出第一个select中没有,但是第二个select中有的数据

▼主键和外键

主键是一张表中能够确定一条记录的唯一标志(数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 ),比如身份证号。

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

▼向表中插入数据

insert into tablename values: 普通插入数据模式insert or ignore into: 如果没有则插入数据,如果有则忽略insert or replace into: 如果不存在就插入,存在就更新

▼删除表中数据

delete : 删除表中数据,可以指定具体数据(where)drop column/ drop table : 删除列数据,与delete 不同,drop函数会将数据以及表的结构全部删除。truncate: 仅删除数据,且默认删除所有数据。和delete不同,truncate不能用where进行筛选,但删除速度比delete快

▼字符串常见操作函数

concat(): 将多个字符串连接成一个字符串,连接符用“”包起来

concat_ws()将多个字符串连接成一个字符串,在最开始的位置指定连接符(指定一次即可

group concat(): 将group by产生的同一个分组中的值连接起来,返回一个字符串。

like(): 需要与通配符一起使用'%'代表任意字符出现任意次数'_'仅能匹配单个字符

substr(): 用于从字段中提取相应位置的字符。

regexp() : 正则表达式匹配函数

▼In/exist的联系与区别

子查询过程中,In和exist函数效率比较当进行连接的两个表大小相似,效率差不多;如果子查询的内表更大,则exist的效率更高(exist先查询外表,然后根据外表中的每一个记录,分别执行exist语句判断子查询的内表是否满足条件,满足条件就返回ture)。如果子查询的内表小,则in的效率高(in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积 (表中的每一行数据都能够任意组合A表有a行,B表有b行,最后会输出a*b行),然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快)。Exist的原理: 使用exist时,若子查询能够找到匹配的记录,则返回true,外表能够提取查询数据;使用 not exist 时,若子查询找不到匹配记录,则返回true,外表能够提取查询数据。


最新文章
主流海外广告投放的渠道有哪些?
主流海外广告投放的渠道有哪些?1、FacebookFacebook是公司国外广告宣传的**选择服务平台。由于这样的平台粉丝基数,新闻报道互动话题*耀眼。公司在这里面开展品牌推广,能够快速提升品牌形象曝光率,为企业的海外推广造就好的开始。除此之
用AI生成美女写真,轻松打造你的数字梦幻女友!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 宝子们,你们有没有想过,能否通过科技的力量,去创造出一位理想中的女神?随着AI技术的飞速
违法广告
  2024年,广州市市场监督管理局扎实开展虚假违法广告专项治理,深入推动相关领域广告经营全链条监管,有效维护了全市广告市场秩序,现公布部分违法广告典型案例。  一、广州市某南网络科技有限公司发布违法广告案  当事人在其开发运
新开店怎么上地图定位(开了个店怎么在地图上显示)
开店后,为了让顾客能够方便地找到店铺的位置,将其在地图上显示是一个非常重要的步骤。以下将详细介绍如何在几种主流地图平台上添加店铺位置。一、百度地图标注二、高德地图标注打开平台打开高德地图的官方网站(amap.com)或者高德地图的
解决手机卡顿反应迟钝的全方位指南:优化性能、提升体验!
一、引言手机卡顿反应迟钝是许多用户经常遇到的问题,这不仅影响了我们的使用体验,还可能导致工作效率降低。那么,面对这一问题,我们应该如何解决呢?接下来,我们将从多个方面为您详细解答。二、分析原因1. 手机存储空间不足:过多的应
轻松实现竞价推广代运营,为您的业务发展添砖加瓦!
随着互联网的普及,竞价推广已成为许多企业寻求业务增长的重要手段。然而,对于许多中小企业来说,运营竞价推广是一项繁重且复杂的任务。这时候,选择专业的竞价推广代运营公司就显得尤为重要。本文将为您介绍如何轻松实现竞价推广代运营,
如何优化关键词百度排名?怎么快速优化到百度首页?
网站关键词优化要快速优化到百度首页,网站应选择合理的关键字进行优化。除了**的关键字外,您还可以适当地制定一些长尾关键字。当然,如果可以结合热门事件,将更容易优化到百度首页。对于企业来说,网络营销不仅可以降低企业的运营成本,
深度解析几款国内主流的磁力搜索引擎
如今在互联网浩瀚的资源海洋里,无论是最新上映的电影还是最流行的音乐专辑,都能通过磁力搜索引擎迅速找到。现在,让我们一起来了解一下目前国内主流的老牌磁力搜索引擎。磁狐搜索:这款搜索引擎基于DHT协议的资源搜索应用,整合了多种磁
美国签证系统更新后更复杂了?!美区申请人注意了!
12月7日美国签证新系统全面启用!很多小伙伴都慌了!各种问题层出不穷!给大家梳理一下新美签系统变化及申请流程!往下看!一篇全搞定!01新美签系统主要变化02新美签系统申请攻略实操申请,大家可以根据如下的步骤一一进行操作,这份保姆级
相关文章
推荐文章
发表评论
0评