小白如何学习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如果避免从入门到放弃:

https://zhuanlan.zhihu.com/p/56374053

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

sql 数据库前两列值乘_懂EXCEL就会SQL,从此查数不求人相关推荐

  1. sql 数据库前两列值乘_与开发battle有点虚?小白都能看懂的数据库知识来了

    文末领取[SQL面试题及答案] 随着近几年AI智能,大数据的发展,"产品经理是是否需要懂技术?""产品经理应该对技术理解到什么程度?"诸如此类的问题又再次出现在 ...

  2. sql 数据库前两列值乘_数据库的基本概念:

    数据库的相关概念: 数据-data: 1.描述事物的符号 2.多种表现形式:文本,图形,音频,视频. 数据库-Database,DB 1.粮库,车库 2.存放数据的仓库在计算机中,按照一定的格式存放, ...

  3. sql 数据库前两列值乘_SQL注入原理和方法汇总

    本文首发于先知社区 前言: SQL注入是web安全中最常见的攻击方式,SQL注入有很多方法,但如果只知道payload,不知道原理,感觉也很难掌握,这次就总结一下我所遇到的SQL注入方法,原理分析+题 ...

  4. sql 数据库前两列值乘_Sql语句常用关键字

    最近接触sql比较多,发现自己已经遗忘的也差不多,要用到的时候迟迟拿不出来,今天开始会在知乎上纪录一些sql语句学习的内容,内容重在说明查询语句的用法. 一.sql查询语句的初始介绍 1.查询语句的一 ...

  5. sql 数据库前两列值乘_SQL | SQL 必知必会笔记 (一 )

    原文:SQL | SQL 必知必会笔记 (一 ) 作者: PyStaData 基本概念 一些规则 多条 SQL 语句必须以分号分隔. SQL 不区分大小写,但一般习惯关键字用大写,列名和表名使用小写. ...

  6. sql语句为什么大写居多_懂EXCEL就会SQL,从此查数不求人

    小白如何学习SQL语言? 大部分的文章都是先从意义原理开始讲,再讲环境搭建.还没看到怎么操作就放弃了. 大部分人学习SQL的需求是什么? 而且,大多数人的使用场景是数据库是现成的,这就不涉及数据库的安 ...

  7. python读取前两列数据对比_使用Python的Dataframe取两列时间值相差一年的所有行方法...

    在使用Python处理数据时,经常需要对数据筛选. 这是在对时间筛选时,判断两列时间是否相差一年,如果是,则返回符合条件的所有列. data原始数据: data[map(lambda x:dateti ...

  8. c++ 编写函数返回两个值最小值_结合实例来分析SQL的窗口函数

    这篇主要是用举栗子的方式来理解SQL中的窗口函数,加深大家对SQL窗口函数的理解. 样例表 这个样例表是我为了好理解,随便设计的,不符合数据库设计的三范式,请忽略. (一)标准聚合函数 标准的聚合函数 ...

  9. pandas计算dataframe两列数据值相等的行号、取出DataFrame中两列值相等的行号

    pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号 目录 pandas计算dataframe两列数据值相等的行号.取出DataFrame中两列值相等的行号

最新文章

  1. 相机校正与相机内参、外参
  2. 集成ACEGI 进行权限控制
  3. python绘图模块pandas_python绘图:matplotlib和pandas的应用
  4. Netty原理一:ServerBootstrap启动过程全解析
  5. Django(part41)--中间键Middleware
  6. php输入多少数值自动乘,报表数据填报中的自动计算
  7. 第四课-Log的使用
  8. [转载] python内置函数 compile()
  9. 汇编实现冒泡法排序及优化
  10. 声笔码6.00版使用指南
  11. 电脑服务器注册表,(恢复Windows服务器注册表的系统配置单元.doc
  12. win10企业版激活简便方法
  13. imx6ul之LCD驱动移植
  14. 在c语言中的变量分为三种类型,在C语言中的实型变量分为两种类型,它们是_______和__________ 答案:float double...
  15. Shopee卖家如何布局产品合理定价,新手必知的定价策略
  16. PC端调用摄像头录制视频——vue标准写法
  17. 2015阿里巴巴北京年会——马云“北伐”讲话
  18. 数仓建模—数据驱动业务
  19. 怎样把jpg图片转换成pdf
  20. Pyhton3网页爬虫查询快递状况

热门文章

  1. 构建seq2seq模型的常见问题
  2. 云计算厂商的那些赚钱“套路”
  3. [附源码]计算机毕业设计体育器材及场地管理系统Springboot程序
  4. 抖音直播间没人气怎么办?抖音直播间人气怎么升上去?
  5. 2. 饶明新 校示范课六年级上册《数学广角-数与形》照片
  6. 解决:ipad mini4连接无线密码是对的,结果老是提示密码错误
  7. JavaWeb 实现密码修改的案例
  8. window10快捷键大全
  9. 【斯坦福CS224W】图机器学习图神经网络-Task01-图机器学习导论
  10. 第一章 万恶之源Java