电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

SQL从熟练到掌握_光环大数据python培训

  • 资源ID:49833653       资源大小:42.91KB        全文页数:6页
  • 资源格式: DOCX        下载积分:0金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要0金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

SQL从熟练到掌握_光环大数据python培训

光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cnSQLSQL 从熟练到掌握从熟练到掌握_ _光环大数据光环大数据 pythonpython 培训培训我们知道,数据库由多张表组成,表与表之间可以实现关联。 上图就是一个简单的关联模型: Students.addressId=Address.id Students.id=Scores.studentId Scores.courseId=Courses.id 那么,如何在 SQL 查询语句中将两个表联接起来?我们将运用最重要的语法 Join。 select*fromStudents joinAddressonStudents.addressId=Address.id 上面语句,join 将 Students 和 Address 两表关联,关联需要一个或多个字段作为联接桥梁。例子中的桥梁就是 addressid,我们使用 on 语句,将Students 表的 addressId 字段和 Address 的 id 字段匹配。 这里需要注意的是,因为字段可能重名,所以一旦使用了 Join,字段前应该加上表名,如 Students.addressId 和 Address.id,这种用法是为了字段的唯一性,否则遇到重名,系统不知道使用哪个字段,就会报错。 select*fromStudentsass joinAddressasaons.addressId=a.id 上图是更优雅的写法,将表命名为一个缩略的别名,避免了语句过于冗余。不要使用拼音做别名,不是好习惯。 Join 语法有很多不同的变形,LeftJoin,OuterJoin 等,新人很容易混淆。这个我们可以用数学中的交集和并集掌握。 上图很清晰地解释了各 Join 语法。 InnerJoin 最常见,叫做内联接,可以缩写成 Join,找的是两张表共同拥有的字段。 LeftJoin 叫做左联接,以左表(join 符号前的那张表)为主,返回所有的光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cn行。如果右表有共同字段,则一并返回,如果没有,则为空。 我们以 W3School 上的数据为例: selectPersons.LastName,Persons.FirstName,Orders.OrderNo fromPersons leftjoinOrdersonPersons.Id_P=Orders.Id_P orderbyPersons.LastName 于是输出结果为: 结果集中,Bush 那一行的 OrderNo 为空,就是因为 Id_P 无法匹配上,返回了 Null。如果改成 Innerjoin,则不会返回整个 Bush 所在行。这是InnerJoin 和 LeftJoin 的区别,也是面试中经常会问到的题目。 RightJoin 和 LeftJoin 没有区别,ALeftJoinB 等价于 BRightJoinA。 FullJoin 叫做全联接,也叫做 FullOuterJoin,意思是不管有的没的,只要存在,就返回。 还是以之前的例子演示,下面是 FullJoin: 最后两行就是所谓的不管有的没的,只要存在字符串,就返回的结果,它们 Id_P 并没有匹配上,但还是给出了返回,只是为空字段不同。 这三者的关系,我们可以理解为:AFullJoinB=ALeftJoinB+ARightJoinB-AInnerJoinB,这就是数学上的集合运算,虽然 SQL 的表并不能加减法。如果还一知半解,看最上面的 Join 示例图,用面积的角度看也明白了。 通过上面的例子,我们已经掌握了 Join 的主流语法,其他无非是变种。比如加约束条件 whereXXisnull,这里的 XX 可以是结果为空的字段。拿上文LeftJoin 的例子演示: selectPersons.LastName,Persons.FirstName,Orders.OrderNo fromPersons leftjoinOrders onPersons.Id_P=Orders.Id_P whereOrders.Id_PisNull 最终返回的结果就是 Bush 这一行。 光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cn当我们有多个字段要匹配时,on 后面可以通过 and 进行多项关联。 select*fromA joinBonA.name=B.nameandA.phone=B.phone 上图就是一个简单的适用场景,将用户姓名和手机号进行多项关联。它也可以加入其他的条件判断。 select*fromA joinBonA.name=B.nameandA.phone=B.phoneandB.sex='男 我们再加一个 and,将 B 表的用户性别限定为男。这种用法等价于whereB.sex='男'。当数据量大到一定程度,通过这种约束条件,能优化查询性能。 到这里,SQL 的常用语法已经讲解的差不多了,我们进行实战吧。leetcode.com 网站是知名的算法竞赛题,去上面刷 SQL 吧。 注册完后进入 leetcode.com/problemset/database 页面。那里有几道MySQL 题目。因为时间关系,我只讲解 Join 相关,大家有兴趣可以刷其他题,都不难的。SQLZoo 也能刷,就是页面丑了点,所以我十分感动地拒绝了它。 我们从 Easy 开始,选择题目 CombineTwoTables。 红色字符是表名,第一列是字段名,第二列是数据类型。题目希望我们通过两张表输出:FirstName,LastName,City,State 四个字段。 单纯的 InnerJoin 就能完成了。记住噢,答案需要完全一致,也就是说最终的结果必须是四个字段,不能多不能少,顺序也不能乱,大小写要严格。这一题大家自己做吧。通过后会有个绿色的 Accepted 提示。 接下来选择 Medium 难度的 DepartmentHighestSalary。 这里有两张表,员工表和部门表,我们希望找出各个部门的最高薪水。 部门信息单独为一张表,首先我们需要 Join 关联起来,将部门分组求出最大值: selectd.Id,#这是部门 ID d.NameasName,#这是部门名字 max(e.Salary)asSalary#这是最高薪水 光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cnfromDepartmentd joinEmployeee one.DepartmentId=d.Id groupbyd.Id 上述的查询语句找出了最高薪水的部门,我们是否能直接使用其作为答案?不能。这里有一个逻辑的小陷阱,当最高薪水非单个时,使用 max 会只保留第一个,而不是列举所有,所以我们需要更复杂的查询。 因为已经有了各部门最高薪水的数据,可以将它作为一张新表,用最高薪水关联雇员表,获得我们最终的答案。 上面就是最终解法(#是解释给你们看的,中文会报错的) ,当然解法应该不是唯一的,大家有兴趣可以继续研究。 最终,我们选 Hard 模式的 DepartmentTopThreeSalaries。 范例数据没有一丁点变化,它需要我们求出各部门薪水前三的数据。如果最高薪水只有两个,则输出两个。 上图是给的范例结果。 排名前三的数据,我们可以使用 orderby 降序排列出来,然后通过 limit限定为 3,但是新的问题是:既要各部门前三,也存在排名并列的情况。此时orderby 就无能为力了。 如果是 SQLServer 或者 Oracle,我们可以使用 row_number 分组排序函数,但是 MySQL 没有,其中的一种思路是利用 set 语法设置变量,间接应用row_number。我们还能使用另外一种思路。 select*fromEmployeease where( selectcount(distincte1.Salary) fromEmployeee1 wheree1.Salarye.Salary ande1.DepartmentId=e.DepartmentId )e.Salary 则是逻辑判断,通过 count 函数,逐行计算出 e 表中有多少薪水比 e1 的薪水低。 因为 e1 表和 e 表实际上是等价的。所以返回的 count(distincte1.Salary)代表 e1 表有中多少薪水比 e 表的高,上图的例子,答案是 2(90000 和 85000 比它高) 。如果是 0,则代表 e 表中该行薪水最高(没有比它高的) ,1 代表第二高,2 代表第三高。于是便过滤出 Top3 的薪水。最后通过 join 计算出结果。 在实际查询过程中,不建议大家使用这种运算方式,因为运算效率不会快。其实换我,我更可能 groupby 后导出结果用 Excel 处理。 到这里,大家对 Join 已经有一个大概的了解了吧。真实的数据查询场景中,Join 会用到很多,业务复杂用五六个 Join 也是常态,如果算上各类逻辑处理,SQL 代码行数可以破百。这时候,考验的就是熟练度了。 SQL 只要多加训练,并不是一门很难掌握的语言。除了技巧,还要看你对业务表的熟悉程度,一般公司发展大了,百来张表很正常,各类业务逻辑各种Join,各字段的含义,这是同样要花费时间的苦功夫。 希望大家对 SQL 已经有一个初步的掌握了。SQL 学好了,以后应用大数据的 Hive 和 SparkSQL 也是轻而易举的。 为什么大家选择为什么大家选择光环大数据光环大数据!大数据培训、人工智能培训、Python 培训、大数据培训机构、大数据培训班、数据分析培训、大数据可视化培训,就选光环大数据!光环大数据,聘请专业的大数据领域知名讲师,确保教学的整体质量与教学水准。讲师团及时掌握时代潮流技术,将前沿技能融入教学中,确保学生所学知识顺应时代所需。通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识,成就上万个高薪就业学子。光环大数据光环大数据-大数据培训知名品牌大数据培训知名品牌http:/hadoop.aura.cn 光环大数据光环大数据 http:/hadoop.aura.cn【报名方式、详情咨询报名方式、详情咨询】光环大数据官方网站报名:光环大数据官方网站报名:http:/hadoop.aura.cn/http:/hadoop.aura.cn/手机报名链接:手机报名链接:http:/http:/ hadoop.aura.cnhadoop.aura.cn /mobile/mobile/

注意事项

本文(SQL从熟练到掌握_光环大数据python培训)为本站会员(gua****an)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。

分享当前资源【SQL从熟练到掌握_光环大数据python培训】到朋友圈,您即可以免费下载此资源!
微信扫一扫分享到朋友圈
二维码
操作提示:任选上面一个二维码,打开微信,点击“发现”使用“扫一扫”,即可将选择的网页分享到朋友圈
您可能感兴趣的------------------------------------------------------------------------------------------------------



关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.