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如果避免从入门到放弃:
https://zhuanlan.zhihu.com/p/56374053
觉得写的还可以动手加关注点个赞
sql语句为什么大写居多_懂EXCEL就会SQL,从此查数不求人相关推荐
- sql 数据库前两列值乘_懂EXCEL就会SQL,从此查数不求人
小白如何学习SQL语言? 大部分的文章都是先从意义原理开始讲,再讲环境搭建.还没看到怎么操作就放弃了. 大部分人学习SQL的需求是什么? 而且,大多数人的使用场景是数据库是现成的,这就不涉及数据库的安 ...
- 怎么将sql语句转化成语法树_数据库如何解析执行SQL
阅读文本大概需要3分钟. 0x01:数据库客户端发送查询SQL 客户端将查询的select sql,按照mysql通信协议传输到数据库服务.数据库服务接受查询sql,执行sql前判断要执行的sql是否 ...
- navicat循环执行上下两行相减sql语句_SQL太难?你离完全理解SQL就差这10步!
- 点击上方"中国统计网"设置⭐星标不迷路!- 很多程序员视 SQL 为洪水猛兽.SQL 是一种为数不多的声明性语言,它的运行方式完全不同于我们所熟知的命令行语言.面向对象的程序语 ...
- 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法以 及SQL语句中日期格式的表示(#).('') 在Delphi中进行字符变量连接相加时单引号用( ...
- (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法...
总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中 ...
- SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法总结一下SQL语句中引号(').quotedstr().('').format()在SQL语句中的 ...
- (走向DBA[MSSQL篇] - 从SQL语句的角度提高数据库的访问性能)一些SQL查询语句应加上nolock
http://kb.cnblogs.com/page/124787/#s8 最近公司来一个非常虎的DBA,10几年的经验,这里就称之为蔡老师吧,在征得我们蔡老同意的前提下 ,我们来分享一下蔡老给我们带 ...
- 总结一下SQL语句中引号()、quotedstr()、()、format()在SQL语句中的用法
View Code 总结一下SQL语句中引号('').quotedstr().('''').format()在SQL语句中的用法以及SQL语句中日期格式的表示(#).('''')在Delphi中进行字 ...
- delphi去掉字段前后的引号_Delphi编程SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法...
Delphi编程SQL语句中引号(').quotedstr().('').format()在SQL语句中的用法 (2011-06-23 12:14:13) 标签: delphi编程 sql语句引号 q ...
最新文章
- python恶搞程序-愚人节恶搞程序源码【两种语言】
- JavaFX 中 FX 一词的由来
- 如果人类的历史共有100万年,假设这等于一天
- mysql close 出错_MySQL错误Forcing close of thread的两种解决方法
- 使用ASP.NET Web API构建Restful API
- 扩展js对象数组的OrderByAsc和OrderByDesc方法
- MRD市场需求文档结构
- linux 命令:nohup 详解
- php 阿里云短信验证码
- Web前端开发之CSS学习笔记5—溢出、浮动、层叠
- steam显示网页错误怎么办?
- css3动画animation属性大全
- 计算机化学博士点,2017年新增博士硕士授予单位公布!各高校博士、硕士学位授权点建设的总体情况如何?...
- 【调剂】2022年燕山大学电气工程学院 程淑红教授“计算机视觉与人工智能”团队调剂招生信息...
- Verilog学习之路(11)—事件控制(时间延迟)
- 拼多多推广没用怎么办?
- PBR基础理论通俗解释
- mysql 从删库到跑路
- 珠海金湾区红旗图书馆 WIFI 连接方法
- Sky光遇云野光之翼在哪获得
热门文章
- 按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录
- Objective-C代码学习大纲
- 秋凉了,大家别加班了,早回吧:)
- 【报告分享】2021年小红书美妆护肤洞察报告.pdf(附下载链接)
- 解压.solitairetheme8文件
- leetcode力扣105. 从前序与中序遍历序列构造二叉树
- 什么?是Transformer位置编码
- ubuntu 12.04 mysql_Ubuntu 12.04 mysql 源码安装--mysql.5.5.x
- resultJP在Java中_java result是如何直接变为对象的
- Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)