sql学习 SQL学习知道这5点,少走很多弯路
一个
SQL逻辑
刚学过SQL的同学一定和我有同样的疑问:为什么先写select,再写from,再写where,然后再写......
我不能从工程师的角度回答这个问题,但是我有一个技巧可以帮助你绕过这个问题。写SQL的时候,脑子没那么别扭。
记住SQL语句的执行顺序。
MySQL的执行顺序如下。当然,各种类似SQL的语言,比如Hive SQL、Teradata SQL等等,执行顺序可能会有一两个不同。
不管你写什么样的SQL,先搞清楚执行顺序,然后就可以按照这个执行顺序写了。
1、表单和连接
首先,当我们查询时,我们必须首先获取一个数据集,并且首先执行From语句和JOIN来获取数据集。
2、哪里
一旦获得数据集,WHERE约束将应用于某些行,未满足的行将被丢弃。此外,这可以用于各种数据类型
3、分组依据
在限定WHERE条件后,接下来是GROUP BY语句,该语句根据某个字段进行分组,并聚合每个组。
想想看,我们从“从”开始,然后是“在哪里”,然后是“分组依据”。因此,上述语句的错误在于,当执行WHERE语句时,GROUP BY语句还没有开始,那么合计值总和仍然未知。
4、拥有
SQL中same语句的主要功能与Where语句相同,但same是过滤聚合值。其实上面正确的写法是这样的
5、选择
经过上面的执行,select语句终于到了,但是不要慌,下面还有更多。
6、独特
对于其余的行,Distinct用于删除重复的行,只保留唯一的行。
7、订购方
此语句用于按升序或降序对选择结果进行排序。
8、极限
用于限制返回的行数
按照这个逻辑,写出每一个子句,最后按照SQL的书写顺序进行排列,然后写出清晰完整的SQL语句!
# SQL编写顺序
选择DISTINCT <。Select _ list & gt
FROM & ltleft_table >& lt左/内/右>JOIN <。right _ table & gt
开& ltjoin_condition>。
哪里& lt其中_条件> 0。
分组依据& ltgroup _ by _ list & gt
带{多维数据集|汇总}
HAVING & lt有条件。
订单方& ltorder _ by _ list & gt
LIMIT <。limit_number>。
2
有必要的规范习惯
不要忘记SQL语句末尾的额外符号;
如果您使用中文作为别名,请使用双引号""
查询日期或字符串时,请使用单引号“”
不等于使用
Order by默认为升序,降序由desc写成Order
Order by是在select之后执行的,因此您可以使用select中定义的别名,但不能在其他地方使用别名,尤其是对于初学者来说,在哪里使用别名都很容易
字符串是按照字典顺序排序的,字典顺序的意思是相同字符开头的字符串比不同字符开头的字符串更接近,例如下面是一个升序:'1'
'12'
'123'
'2'
'23'
'3'
三
公共函数
1.算术函数:
绝对值 ABS求余 MOD四舍五入 ROUND #对m保留n位小数2.字符串函数:
拼接 CONCAT求长度 LENGTH全部大写 UPPER全部小写 LOWER替换 REPLACE #将str中的str1替换成str2截取 SUBSTRING #从str的第k个字符开始取长度为n的子字符串请注意,SQL从1开始计数。与一般的编程语言不同,它们都从0开始计数
3.日期功能:
当前日期 CURRENT_DATE当前时间 CURRENT_TIME当前日期和时间 CURRENT_TIMESTAMP截取时间元素EXTRACT FROM 时间)只取日期 DATE4.转换功能:
类型转换 CAST #将s转换成指定数据类型返回参数中左侧开始第一个不是NULL的值 COALESCE聚结是实际工作环境中非常常见的函数,可以用来将NULL转换为其他值,构造新的字段。
四
述语
1、喜欢
LIKE '%xxx%' 中间一致LIKE 'xxx%' 前方一致LIKE '%xxx' 后方一致LIKE 'xxx_' 查询xxx + 任意1个字符LIKE 'xxx__' 查询ddd+任意2个字符2、在……和之间
BETWEEN a AND b 等于 如果不想要临界值,就只能使用 < 和 >3、输入为空、不为空
判断是否为NULL4、输入
IN ;OR 和 = 一起使用的简单用法NOT IN ;AND 和 <> 一起使用的简单用法NULL不能作为IN的参数,否则无法返回任何记录子查询可以作为IN的参数五
学习技巧
1.保持专注
时间有限,不要把时间花在盲目搜索信息、群聊、吐槽对方上。
2.应该投入适当的资源
比如花钱买一些课程、项目资料、书籍等。
对于新手还没有完整的知识框架前,自学是个痛苦的过程,会浪费大量的时间,走一些弯路,并且更容易使人困惑不知该从何处下手,最后不了了之。前辈带着你梳理知识框架就显得很有效率,并且能大幅提升学习效率,何乐而不为?适当的花点小钱就能节约大量的时间和精力。3.学会自己解决问题的能力
部分问题都能在网上找到解决方法或思路,特别是一些国内外技术网站、博客等。一定要能自己解决问题,这是个很重要的能力,实际工作中会碰到比学习过程中更麻烦的问题。对于自己解决不了的问题,再去求助他人。清晰的问题表述能够更快、更准确的帮助你解答疑惑。可以将【当前故障界面】、你做过的【排故工作】,描述清楚再去求助别人。不然尽管人家愿意解答,但不知道具体怎帮你。是什么阻碍了您的条目数据分析?
没有经验?不明白?迷茫?
现在,这是你的机会!
系统课程+真实数据+职场支持+能力测试
0基本你也可以进入工作数据分析
全程陪伴你找工作