一、基础理论篇
目的:
1.了解建立数据库的意义,为什么不能用excel而需要用数据库?以及有哪些方面的应用?
2.数据库系统在整个网站中处于一个什么位置?在数据后台如何调用数据库的数据?
3.数据库的应用范围?什么时候才不得不使用数据库?什么时候数据库也不灵了?(大概10万条就可以使用了,千万级的就到极限了,这玩意谁知道了)
4.表与表之间存在着怎样的逻辑?理解实体、关系、主键、外键。
推荐资料:
数据库原理(第5版)—清华大学出版社—赵艳铎和葛萌萌翻译的这本书讲的比较通俗易懂,很快就能理解数据库是怎么回事。
其次再看看知乎里面关于数据库的性能评价。
二、基础操作篇
目的:
1.学会操作一些基本的select的操作:
重点注意:
where和having的区别,
还有null与空格的区别order by的局限group by
如何在count等命令下分组,
mid如何正向反向查询字符串位置
基本做到给你一堆数据,你可以查到你想要的
2.了解索引,知道如何建立索引,应用索引
3.了解数据类型,知道如何给各个数据建立对应的模型(兄弟连视频教学讲的比较明白)重点了解:char与varchar的区别tinyint、smallint的范围float与double的区别date相关类型的输入条件与输出效果。
推荐资料:
w3school链接:SQL CREATE TABLE 语句
sql执行顺序 - qanholas - 博客园
数据库系统概论第四版
w3school介绍了一些基本的操作指令,浅显易懂,但是远远不够,需要再看看数据库系统概论第四版的第三章和第九章作为补充。对了,安装也是个事,看附件吧。
三、练习篇推荐:
链接1
链接2
链接3-终极版
SQL查询语句练习题27道 - friendan的专栏 - 博客频道 - CSDN.NETsql 经典试题先做前面的,不会的再到网上查,后面的确实比较难。
四、原理篇(这里主要是HIVE的原理)
这是我们内部的分享资料,重点是需要大家了解HIVE的执行原理,join的用法,SQL的执行顺序等等,这是我们写复杂SQL的基础。
学到这时候,你基本就算入门了,可以上手写SQL了,但是SQL中会遇到一些有难度的问题,需要掌握一些牛逼的函数,把他们学会,再练一下复杂的SQL,那么恭喜你,你的SQL技能已经完全可以经得起任何面试和工作了(查询部分哈)
五、高阶段语句掌握
case when then else end
个人认为性价比最高
对于分组查询非常有用。
例如你想要查各个时间段各数据出现的次数,你只有07:28这样的时间,而你需要的是07:00~08:00这样的时间段,这时就需要case来转化SQL中的case when then else end用法开窗函数(row_number()over(partition by 分组字段 order by 排序字段)是最常用的)
sql中的开窗函数over() - CSDN博客
HIVE时间函数汇总(这个是HIVE的哈)对于美团,滴滴,快手等大部分互联网公司,大部分数据需求都是和时间相关的,所以熟练掌握时间函数非常的重要。
赵立生:SQL进阶–hive中的时间函数正则表达式
做文本挖掘的时候经常会用到正则表达式,比如说我想查订单地址中含有赵立生这三个字的订单明细
怎么样?又感觉自己牛逼的不行了?再练点更难的题吧!