做数据分析不可能不和数据库打交道,因此必须掌握相关的数据库和SQL基础。
学习目标:了解数据库的基础概念,掌握SQL语法的基础操作,并掌握一些进阶函数的使用。
学习对象:应届毕业生或是对SQL无基础的学员。
下面我们按照下面步骤和要求进行相关的学习。
一、基础理论
SQL是指结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
所谓”数据库”,就是存放数据的库.现实中,大家都知道仓库,粮食库,车库,快递库,它们是放各种实体东西的库.而数据库,放的只有数据.
关系型数据库主要包括ORACLE、DB2、Sybase、SQL Server、MySQL,虽然SQL查询语法上有差异,但是基本上都是大同小异。
可以通过百度的方式学习,有条件也可以查看相关书籍《数据库原理》
1.了解建立数据库的意义,为什么不能用excel而需要用数据库?以及有哪些方面的应用?
2.数据库系统在整个网站中处于一个什么位置?在数据后台如何调用数据库的数据?
3.数据库的应用范围?什么时候才不得不使用数据库?什么时候数据库也不灵了?
4.表与表之间存在着怎样的逻辑?理解实体、关系、主键、外键。
5.了解事实表、维表结构和应用。
二、基础操作
这里我们主要学习SQL语法的基本操作。我们需要学习的重点内容和知识点包括如下:
1.掌握操作一些基本的select的操作:
根据http://www.w3school.com.cn/sql/index.asp地址查询SQL语法。
重点难点:
- where和having的区别
- join需要注意用on
- like、=、in、is null的区别 ,还有null与空格的区别
- order by的局限
- group by如何在count等命令下分组
- mid如何正向反向查询字符串位置
2.了解索引,知道如何建立索引,应用索引
3.了解数据类型,知道如何给各个数据建立对应的模型(兄弟连视频教学讲的比较明白)
重点了解:
- char与varchar的区别
- tinyint、smallint的范围
- float与double的区别
- date相关类型的输入条件与输出效果。
三、进阶函数
说明:对于部分函数,不同的数据库类型使用上会有差别。
我们需要掌握一些进阶函数的使用。
- case when then else end。用于分组查询,使用频率非常高。
- explain。此函数可以看到查询函数用到的索引等信息。用法很简单:explain+sql 查询语句
- weekday。将日期转化为星期数 星期日就是6,星期一就是0
- floor、round、trunc。用于数值取整。
- row_number()over。做排行榜的函数
- convert。数据类型的转换
- substr和mid字符串截取。数据库
四、推荐资料
日后若想深入学习,还可以参考下面资料:
- 数据库原理(第5版):主要介绍数据库基础知识。
- 知乎、百度:查看数据库的性能评价。
- w3school:介绍了一些基本的操作指令。http://www.w3school.com.cn/sql/index.asp
- sql执行顺序的博客:介绍SQL执行的顺序,百度搜索即可。
- 数据库系统概论第四版:主要介绍基本和优化的操作,可以作为加强学习内容。