小白如何学习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 数据库前两列值乘_懂EXCEL就会SQL,从此查数不求人

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

  2. 怎么将sql语句转化成语法树_数据库如何解析执行SQL

    阅读文本大概需要3分钟. 0x01:数据库客户端发送查询SQL 客户端将查询的select sql,按照mysql通信协议传输到数据库服务.数据库服务接受查询sql,执行sql前判断要执行的sql是否 ...

  3. navicat循环执行上下两行相减sql语句_SQL太难?你离完全理解SQL就差这10步!

    - 点击上方"中国统计网"设置⭐星标不迷路!- 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语 ...

  4. 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法以 及SQL语句中日期格式的表示(#).('') 在Delphi中进行字符变量连接相加时单引号用( ...

  5. (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法...

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中 ...

  6. SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法

    总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的 ...

  7. (走向DBA[MSSQL篇] - 从SQL语句的角度提高数据库的访问性能)一些SQL查询语句应加上nolock

    http://kb.cnblogs.com/page/124787/#s8 最近公司来一个非常虎的DBA,10几年的经验,这里就称之为蔡老师吧,在征得我们蔡老同意的前提下 ,我们来分享一下蔡老给我们带 ...

  8. 总结一下SQL语句中引号()、quotedstr()、()、format()在SQL语句中的用法

    View Code 总结一下SQL语句中引号('').quotedstr().('''').format()在SQL语句中的用法以及SQL语句中日期格式的表示(#).('''')在Delphi中进行字 ...

  9. delphi去掉字段前后的引号_Delphi编程SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法...

    Delphi编程SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 (2011-06-23 12:14:13) 标签: delphi编程 sql语句引号 q ...

最新文章

  1. python恶搞程序-愚人节恶搞程序源码【两种语言】
  2. JavaFX 中 FX 一词的由来
  3. 如果人类的历史共有100万年,假设这等于一天
  4. mysql close 出错_MySQL错误Forcing close of thread的两种解决方法
  5. 使用ASP.NET Web API构建Restful API
  6. 扩展js对象数组的OrderByAsc和OrderByDesc方法
  7. MRD市场需求文档结构
  8. linux 命令:nohup 详解
  9. php 阿里云短信验证码
  10. Web前端开发之CSS学习笔记5—溢出、浮动、层叠
  11. steam显示网页错误怎么办?
  12. css3动画animation属性大全
  13. 计算机化学博士点,2017年新增博士硕士授予单位公布!各高校博士、硕士学位授权点建设的总体情况如何?...
  14. 【调剂】2022年燕山大学电气工程学院 程淑红教授“计算机视觉与人工智能”团队调剂招生信息...
  15. Verilog学习之路(11)—事件控制(时间延迟)
  16. 拼多多推广没用怎么办?
  17. PBR基础理论通俗解释
  18. mysql 从删库到跑路
  19. 珠海金湾区红旗图书馆 WIFI 连接方法
  20. Sky光遇云野光之翼在哪获得

热门文章

  1. 按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录
  2. Objective-C代码学习大纲
  3. 秋凉了,大家别加班了,早回吧:)
  4. 【报告分享】2021年小红书美妆护肤洞察报告.pdf(附下载链接)
  5. 解压.solitairetheme8文件
  6. leetcode力扣105. 从前序与中序遍历序列构造二叉树
  7. 什么?是Transformer位置编码
  8. ubuntu 12.04 mysql_Ubuntu 12.04 mysql 源码安装--mysql.5.5.x
  9. resultJP在Java中_java result是如何直接变为对象的
  10. Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)