看漫画就能学SQL,简直太cool了


对于SQl, 很多人学不会的原因是从一开始就没明白,学这东西能干啥,学会了能有什么用。甚至有些人不知道‘SQL’应该怎么读,以至于一开始兴致勃勃,但是学到一半放弃了。

注意:‘sql’真的不能读成‘烧烤’、‘惜烤’、’撒扣’、’斯购‘,另外,’MYSQL’真的不能读成’卖烧烤’,’卖西裤‘,有学员问:那我卖什么,我回答说:你去死。

如果你真的、实在是、绝对的看不懂英文的音标,那就暂且读’色儿扣‘吧,这是针对英语文盲特别制作的读法。(注意我在这里并没有瞧不起你的意思)

所以,坚持学会的根本,不在于这个知识是否有多难,而在于它带给你的意义有多大。如果做事情没有意义,那么你就没有学习的动力。在数据分析的招聘中,SQL是必考的能力之一。所以学习SQL的意义,就在于你能否通过数据分析的面试,如果不能通过面试,你将穷困潦倒,颠沛流离,别人娶妻生子,儿孙绕膝,而你孤苦伶仃,满目凄凉,垂垂老矣....

想要入门SQL,关键在于有没有一个好的领路人带你入门,所以ladys and乡亲们,放下手头所有的农活,开始喜欢我吧,因为接下来,我将带你轻松搞定SQL的各个语法。记住我最大的特点就是,通俗易懂的解释一个事情。

01.

理论篇

理解重要的概念

【数据】数字,文字,图形,图像,声音这些都叫数据。

【数据库】 理解数据库的一种最简单的方法是 将它想象成一个电子化的“文件柜”,

这个“文件柜”是一个存放数据的物理位置,不管数据是什么形式!就像法海手里的金铂,我管你是什么妖,统统都得收进来!(电视剧里的那个金铂看起来像一个电饭锅的内胆,有没有很像)。也有人说数据库存储数据,就像冰箱是存储食物一样,,什么肉啊,米啊,菜啊,都能存放,对此我也是十分十分的同意!!

有了数据库后,所有终端设备(手机,PAD, PC)都可以直接在这个系统上查找数据和修改数据。有人问我,老师,我是安卓手机,能连接数据库吗,当然能了,不许瞧不起安卓系统!!

【数据表】 表是由行和列组成的一张二维表,这是关系数据库中最基本的数据模型

【主键】用来表示数据的唯一性,是数据库中非常重要的概念。在生活中我们也会使用ID来标识数据的唯一性,例如:国家用身份证来唯一标识一个人,即使你有一个双胞胎兄弟,但只要你们的身份证号不一样,你们就是两个人。再比如银行卡的卡号就是主键,如果两个人卡号重复了,里面有100万,钱算谁的呢?这事就闹大了。

【外键】 关联到其他表主键的字段被称为“ 外键 ”,如果A表的一个字段来源于B表,那么这个字段就是A表的外键。

例如:成绩表中的字段学号 sno 就是外键, 因为这个字段的值来源于学生表的主键sno。

【表关联】什么是联系呢?你是你爸爸的儿子,你是你的儿子的爸爸。这就是生活中的联系。其实,数据之间也是有联系的。数据库里各个表之间如何建立联系呢?

将多张表通过主键+外键关联起来的方式,叫作表关联。

例如学生选课涉及的四张表,通过主键和外键关联在一起,就构成了一个简易的学生选课数据库系统。

表关联是关系数据库中非常核心的理念 ,它可以表达非常复杂的数据关

【概念模型】表示方法:E—R方法(也叫实体联系法)

【一个E-R模型案例】:

【数据模型】(主要指关系模型)

SQL语句的基础是关系数据库,关系数据库的基础是关系模型,关系模型可以由E-R图得到。

在关系数据库中,一张表就是一个关系,所以表格的一些术语和关系的一些术语能表达同样的意思,具体来说,有下面几点不同:

上面讲的都是数据库方面的基本理论。理论有了,当然就得有对应的软件实现才能用起来,不然再强大的理论都是一坨屎。这就好比,如果只有设计草图是无法盖起楼房的,得有具体的施工团队才能盖起楼房。

上面讲的数据库原理就是“设计草图”,那么对应的“施工团队”是谁呢?

实现数据库原理的“施工团队”就是常用的数据库软件,例如MySQL、Oracle、SQLServer等都是实现上面理论的数据库。各个数据库软件的使用差别大同小异,但是因为MySQL是开源的,免费的,所以成为各大公司使用的主流,面试也主要以’卖烧烤‘为主。

02.

SQL基础篇

我经历过很多次数据分析师面试,经常会遇到这样一道经典的SQL笔试题。注意:这可是华为的面试题,上点心吧。

【华为经典面试题】

A(用户购买记录)、B(商品对应ID)、C(ID对应价格)三个表,问本月内购买商品金额最多的前三名用户分别是谁?

【分析】

A表只有用户和商品名字的对应关系,需要关联到C表求得价格,但A表和C表没有公共字段,这时发现A表和B表有公共字段【商品名字】,而B表和C表有公共字段【商品ID】,于是先用A表Join B表,再Join C表得出一张多个字段的关联表,用Group by求出用户购买商品的总金额,再用Order by对用户购买商品的总金额进行降序排列,最后用Limit截取总金额前三位的用户。

这道题看起来很难,但考到了都是一些SQL的基础知识,包括Select、Groupby、Order by、Join、Limit。

所以,作为数据分析狮(有人喜欢把自己叫作分析狗,真是太不尊重自己了,我听了非常气愤),如果你以后的发展方向不是数据工程师的话,SQL只需要掌握基础语句就可以糊弄面试了,具体包括:

查询数据(select语句)

过滤数据(where语句)

汇总数据(group by 语句)

排序数据(order by 语句)

时间函数

1 查询数据(select语句)

【语法】select 列名称 from表名称

【案例】select name from world; (选取world表中‘name’这一列)

select * from world(选取world表中所有列)2 过滤数据(where语句)

【语法】select xxxx from xxx Where 条件表达式

【案例】select * from country where IndepYear >1975

3 使用distinct关键词去重:

【语法】select distinct 字段名 from 表名

【案例】select distinct class from student

汇总数据( Group by 语句)

【定义】什么是group by 子句,“Group By”从字面意义上理解就是根据“By”指定的规则对数据进行分组. 那么,GROUPBY 是如何分组的呢?

【案例】

所以group by也叫分组函数。5 排序语句(order by)

Order by 指的是根据指定的列对结果进行排序,默认升序;如果希望降序,需要加上DESC关键字。

【语法】selectxxx from xxx

where xxx

order by xxx desc

【案例】筛选人口总数大于10万的国家的信息,并且按照人口总数进行降序排序。

select * from countrywhere population > 100000

order by population desc (先筛选符合条件的行,后排序)

使用Orderby 的几种情况:(1)order by 作用于单个字段

(2)加desc关键字实现降序

(3)order by 作用于双字段

先对年龄进行升序排序,然后针对相同年龄的,再根据成绩升序排序

6时间函数

关于阿里,京东,美团,快手等大部分互联网公司,大部分数据需求都是和时间相关的,所以熟练掌握时间函数,非常的重要!!有人告诉我他不想工作,我奉劝你照照镜子,看看镜子中的自己,已经长得这么丑了,难道还要没钱吗?

真是no zuo no die,我不会骂你的,我很有修养

03.

SQL进阶篇

恭喜你,你已经看到进阶篇了,现在你已经get到一个了不起的技能,妈妈再也不用担心你没法装X了。下面这些资料是我们内部的一些分享资料,有人问我什么内部,你在哪个公司上班,拜托大家不要像我二姑妈似的这么八卦,要学会看重点!!进阶部分需要大家了解mysql的执行原理,join的用法,SQL的执行顺序等等,因为这是我们写复杂SQL的基础。你不会走,就想飞吗,真的没这么容易!!

(1)mysql中join的用法

之前网络上流行用韦恩图来表示各种连接查询:

但我觉得用下面这种方式表达连接查询,更容易理解:

有没有觉得连接查询竟然如此简单,还不是多亏了我这几张图吗。

(2)Mysql的执行顺序:

当sql逻辑复杂后,sql的执行顺序就会非常重要,SQL执行顺序和书写顺序又不一样,所以慢慢扣吧,这也是进阶的基础呢。

04.

SQL复杂查询

恭喜你,你都看到复杂查询了,我觉得你很有潜力!!面对大量数据我们时常需要对他们进行汇总,分组,归类,这时候就需要用到一些复杂的查询方法。

1聚合函数:【分类】聚合函数有哪些?

2分组聚合

【定义】指的是先使用group by 分组后,再使用聚合函数对每组数据聚合

分组语句和聚合函数常常一起使用

【案例】:

3 使用having子句

【定义】筛选符合条件的组,常常和group by 一起使用。

【示意图】

4嵌套查询:

(1)【定义】什么是嵌套查询?

如果把一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中,我们就称为嵌套查询。其中外层查询称为主查询,内层查询称为子查询。

(2)【执行顺序】先执行内层查询,再执行外层查询:

(3)嵌套查询用来解决哪些问题?

【Sql 语句】

掌握了上面这些语法,基本上你可以糊弄各种形式的面试了,最常见的考SQL的方法就是,给你一个虚拟的数据库表结构,然后让你按给出的条件查询出数据,并用手写的形式写出在纸上。所以面试前把常用的SQL语句记清楚就OK了。

怎么,觉得自己牛逼的不行,再练点更难的题吧

推荐一个很方便的实践SQL的网站:数据库SQL实战-牛客网

实际上还有很多类似这样的网站,是用来强化SQL练习的,但因为他们并没有给我广告费,我为什么要给他们做广告呢?

原文地址:https://mp.weixin.qq.com/s/t8JCJSP__qh11U2zl8hCeQ

原文地址:https://www.cnblogs.com/jpfss/p/11556714.html

时间: 2024-08-29 19:00:23

看漫画就能学SQL,简直太cool了的相关文章

看漫画学 Redux (转)

1.看漫画学 Redux:http://www.oschina.net/p/a-cartoon-intro-to-redux-cn 2.Redux 核心概念 :http://www.jianshu.com/p/3334467e4b32 3.

Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名

Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.NodeDataEntity" databaseId="oracle"> insert into "NODE_DATA" ( "NODE_ID", "DATA_TIME", "DATA_VALUE"

乐嘉老师送给男生、女生 28句话,简直太精辟了

乐嘉老师送给男生.女生 28句话,简直太精辟了..传说 女孩应该懂的: 1.当你从床上下来那一刻,你在他心中就开始贬值了.如果你把一切都给了现在的男友,那么,除了老公这个称呼你还能留给你未来的丈夫? 2.一个女人的品位在于她身边站着一个怎样品位的男人.女人一生最成功的事情之一,便是选了一个对的男人. 3.一个男人爱你的时候,你往往会感动于细节,同样,一个男人不爱你了,你也可以从细节中来发现. 5.想了解一个男人的好坏,先去看他身边是一群怎样的朋友. 6.女人的友情来的快,去的也快.其实男女感情远

m2014-architecture-imgserver-&gt;Lighttpd +mod_mem_cache的效果简直太好了

公司的图片服务器一直以来负载都比较高,原因是图片比较分散而且比较小.经常把iowait搞的特别的高.但是只有一台机器也法用squid,经测试squid和apache在同一台机器效果会很糟糕的.因为squid要写磁盘,Apache要读磁盘(本公司的情况是大量的随机读). 经过测试,决定用lighttpd加上一个国产的模块mod_mem_cache来缓解次问题.经过一天的运行,通过数据的分析,感觉效果简直太明显了. 之前iowait会达到20-30现在最高维持到6左右. 负载有以前的10下降到1以下

新手学SQL Server pdf

下载地址:网盘下载 内容简介 编辑 <新手学SQL Server>:打开SQL Server数据库技术大门的金钥匙  ◎由浅入深:从基本概念开始讲解,逐步深入到实际开发  ◎示例丰富:讲解知识点时穿插了150个示例,有较强的实用性  ◎面向就业:提供了常见面试题,帮助读者了解入职面试的相关知识  ◎应用典型:介绍了3个方向的数据库应用,提高读者数据库应用水平  ◎视频教学:提供了6小时多媒体教学视频,学习起来更加直观  光盘内容  ◎6小时多媒体教学视频  ◎案例涉及的源代码  ◎教学PPT 

快看漫画下载|快看漫画app下载

快看漫画创始人陈安妮是漫画作者出身,也是微博上拥有千万粉丝的@伟大的安妮.依靠团队的内容基因和数据化驱动,快看漫画在漫画内容的筛选.制作.推广上形成了一套自己的方法论,打造出"有趣.开放.探索人性"的内容基调,凭借多元化的作品,获得过亿年轻用户的认可.快看漫画下载链接应用简介快看漫画是一款以漫画主题为中心的漫画软件,内含丰富的漫画资源,可以让你在闲暇的时间看看漫画消磨时间,简单易懂,漫画超全,体验超好的漫画神器,超快的更新上架速度,为你提供超新的精神食粮,超高清的画质,让你观看更舒服,

看漫画,学 Redux

Flux 架构已然让人觉得有些迷惑,而比 Flux 更让人摸不着头脑的是 Flux 与 Redux 的区别.Redux 是一个基于 Flux 思想的新架构方式,本文将探讨它们的区别. 如果你还没有看过这篇关于 Flux 的文章(译者注:也可以参考这篇),你应该先阅读一下. 为什么要改变 Flux? Redux 解决的问题和 Flux 一样,但 Redux 能做的还有更多. 和 Flux 一样,Redux 让应用的状态变化变得更加可预测.如果你想改变应用的状态,就必须 dispatch 一个 ac

【重磅干货】看了此文,Oracle SQL优化文章不必再看!

听“俊”一席话,胜读十年书.看了这篇由DBA+社群联合发起人丁俊大师(网名:dingjun123)分享的SQL优化大作,其他Oracle SQL优化文章都不必再看了! 专家简介 丁俊 网名:dingjun123 DBA+社群联合发起人 性能优化专家,Oracle ACEA,ITPUB开发版资深版主.8年电信行业从业经验,在某大型电信系统提供商工作7年,任资深工程师,从事过系统开发与维护.业务架构和数据分析.系统优化等工作.擅长基于ORACLE的系统优化,精通SQL.PL/SQL.JAVA等.电子

30 分钟快快乐乐学 SQL Performance Tuning

转自:http://www.cnblogs.com/WizardWu/archive/2008/10/27/1320055.html 有些程序员在撰写数据库应用程序时,常专注于 OOP 及各种 framework 的使用,却忽略了基本的 SQL 语句及其「性能 (performance) 优化」问题.版工曾听过台湾某半导体大厂的新进程序员,所组出来的一段 PL/SQL 跑了好几分钟还跑不完:想当然尔,即使他的 AJAX 及 ooxx 框架用得再漂亮,系统性能也会让使用者无法忍受.以下是版工整理出