懂EXCEL就会SQL,从此查数不求人

懂EXCEL就会SQL,从此查数不求人

小白如何学习SQL语言?
大部分的文章都是先从意义原理开始讲,再讲环境搭建。还没看到怎么操作就放弃了。

大部分人学习SQL的需求是什么?
而且,大多数人的使用场景是数据库是现成的,这就不涉及数据库的安装。而且只有查询权限,只需要学会查询语句,能得到自己想要的结果就可以。

怎么让小白看一篇文章就了解SQL语句的作用?
用Excel做类比,Excel里的筛选,排序,数据透视表功能白领基本都会,如果能把Excel常用的功能和SQL语句对应上,就可以快速入门SQL!

SQL语句功能本质上和excel做的事很像,SQL语句的难度在于翻译,把制作excel时拖动鼠标干的事翻译成数据库能理解的指令。

本文就是为了想利用sql语句,在公司数据库简单取数的小白而写。做到查数不求人。当然,本文只能帮你把想法和SQL语句对应上,具体规则还需要再去看书补充。

先放一个典型的SQL语句增加感性认识(大写的都是SQL语句),下面会介绍每个语句的具体功能。


SELECT name, score (想取哪列数据)
FROM result (数据来源)
WHERE score >60 (设置条件分数大于60分)
ORDER BY score; (按什么规则排序)

执行结果:
name score
Zhang 100
li 100
wang 90
Zhao 61

一、SQL基本套路:

我们先来学习一张数据表的查询操作,一张数据表相当于Excel里面的一个sheet。

  • 1、查询列数据,SELECT 列名,列名 FROM 表名
    就能输出查询列的全部数据
  • 2、筛选特定条件,WHERE语句
    花头比较多,可以使用符号(<,>,=)和条件判断,(not,and, or, like )

(截图选自SQL基础教程)

  • 3、数据透视表的分类汇总,GROUP BY+HAVING 语句
    另外分组里还能添加条件,使用HAVING


  • 4、排序,ORDER BY
  • 5、计数,COUNT,SUM,AVG,MAX,MIN


  • 6、删除重复项 DISTINCT语句


  • 7、模糊查询——谓词(like, between,in)


  • 8、语句书写顺序,如果不按这个顺序写就会报错
SELECT— FROM— WHERE——GROUP BY—HAVING— ORDER BY

但数据库执行顺序和语句的书写顺序有点不同

FROM—WHERE—GROUP BY—HAVING—SELECT—ORDER BY

可以看到GROUP BY 在SELECT前面执行,所以GROUP BY不能使用别名,因为SELECT语句还没有定义呢。

二,SQL变化套路

变化的套路比较复杂,这里只做简单介绍。

  • 1、两张表、三张表及以上的查询:在FROM语句后面加入联结(join)

关键点是ON语句,ON语句把两张表里一一对应的两列数据关联,把两张表合为一张表。这两列叫联结键。
联结的本质把几张表变成一张表,查询操作和一张表时一样。

  • 2、子查询,查询的查询,能加入更多筛选条件
    查询的条件里放另外一个查询语句。
    执行顺序是先执行最里面的查询。


使用子查询的好处:具体数据改变不需要改语句,容易维护。

  • 3、关联子查询:
    应用场景:分组取平均数,每组商品取大于改组平均数的商品
难点:关联子查询的理解:我自己理解,把子查询和外查询联系在一起,关联子查询的处理逻辑:外查询和内查询匹配,匹配的输出给外查询

关联子查询的理解:理解处理过程,每个数据匹配一次,筛选出匹配条件的数据输出。想深入了解关联子查询联系再看看书。

  • 4、条件语句,CASE语句
    在数据中加入标识


实现行列转换


以上基本可以满足日常需求了,再复杂的语句需要认真学习语句或者直接找技术人员帮你写。你现在了解了SQL语句,你拿到别人写的你大概也知道怎么改,不用每次还得麻烦别人,搭个人情。除非技术小哥哥特别帅我也不拦着你。

三、想深入学SQL怎么学?

如果你看到现在觉得不过瘾,还想更系统的学习SQL语句,推荐按如下方法学习:

  • 先看一遍书,有个大概印象。推荐MICK写的《SQL基础教程》,说的是人话,比较易懂。这篇文章的截图都是来自这本书,可以感受到思路清晰,简单易懂。想买一本书入门的话买她没错。

《SQL必知必会》讲的很细,可以作为补充。

  • 可以在电脑里装个mysql,自己倒入数据玩玩。
  • 关键是自己写SQL语句操练,推荐在Sqlzoo网站练习(百度搜sqlzoo,网站是英文,直接翻译网页为中文),在做题时遇到不会的查书。做一遍题之后再看书感觉就不一样了。
总之学习思路就是在实践中学习:碰到实际问题,转化为sql语言,用电脑输出,将实际输出的结果和自己的想法对比,看看差别在哪里,找到原因再不断修正。

四、扩展进阶

SQL语句只是操作数据库的语言。下面介绍一下数据库在各方面的运用。

  • 如果你学SQL是为了面试,怎么证明你会SQL?面试的话SQL会直接让你做题,所以就要在面试前多做几套SQL题。
  • 了解架构,数据库只是整个系统的一环。比如在数据分析工作中数据库是用来取数的;在网站制作PHP+mysql架构中,数据库是后台,所以你想搭一个网站还要学习前台语言,光会数据库是远远不够的。
  • 数据库的种类,SQL语言只适合于结构化数据库,就是全部都是表格化的数据。互联网公司会搜集大量的图片,自然语言等数据放在数据库里,形成非结构化数据库,比如hbase,SQL语言部分可以用在非结构化数据里里
  • 数据库安全,SQL注入,拖库。就是把你内部的数据都拿走卖钱,比如最近的酒店数据库被脱裤。个人信息遭到泄漏是个很大的问题。
  • 实际的数据库,实际数据库都是公司的机密,想练习的话可以取天池网站上下载数据练习。


觉得看的不过瘾?

可以买本书照着例子打一遍,重要的是亲自操作一遍,看会了只是自己觉得自己会了,实际上还是不会,会操作才是真会。

学python如果避免从入门到放弃:

zhuanlan.zhihu.com/p/56

觉得写的还可以动手加关注点个赞

我的值乎,有问必答。

zhihu.com/consult/peopl

编辑于 2021-03-04 00:26