SQL学习过程推荐

作者:赵英锐
链接:https://www.zhihu.com/question/19552975/answer/138930758
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

我是看了这个回答来慢慢学习的,一共用了一个月时间,走了很多弯路总结一下这一个月的努力。希望大家少走点弯路

一、基础理论篇

目的:

1.了解建立数据库的意义,为什么不能用excel而需要用数据库?以及有哪些方面的应用?
2.数据库系统在整个网站中处于一个什么位置?在数据后台如何调用数据库的数据?
3.数据库的应用范围?什么时候才不得不使用数据库?什么时候数据库也不灵了?
(大概10万条就可以使用了,千万级的就到极限了,这玩意谁知道了)
4.表与表之间存在着怎样的逻辑?理解实体、关系、主键、外键。

推荐资料:

数据库原理(第5版)

这本书讲的比较通俗易懂,很快就能理解数据库是怎么回事。其次再看看知乎里面关于数据库的性能评价。

二、基础操作篇

目的:

1.学会操作一些基本的select的操作:

重点注意:
where和having的区别,
join需要注意用on,
like、=、is null的区别 还有null与空格的区别
order by的局限
group by如何在count等命令下分组,
mid如何正向反向查询字符串位置

基本做到给你一堆数据,你可以查到你想要的

2.了解索引,知道如何建立索引,应用索引

3.了解数据类型,知道如何给各个数据建立对应的模型(兄弟连视频教学讲的比较明白)

重点了解:

char与varchar的区别
tinyint、smallint的范围
float与double的区别
date相关类型的输入条件与输出效果。

推荐资料:

w3school
链接:SQL CREATE TABLE 语句

sql执行顺序
sql执行顺序 - qanholas - 博客园

数据库系统概论第四版

w3school介绍了一些基本的操作指令,浅显易懂,但是远远不够,需要再看看数据库系统概论第四版的第三章和第九章作为补充。
对了,安装也是个事,看附件吧。

三、练习篇

推荐:

SQL查询语句练习题27道 - friendan的专栏 - 博客频道 - CSDN.NET

sql 经典试题

先做前面的,不会的再到网上查,后面的确实比较难,妈的,我就做反了。

四、优化篇

目的

数据库做的好坏,主要是看执行效率,别人查询需要扫描20万的数据,而你只需要扫描5000,那你就是牛逼。
不然就算你会算,但是卡的半死也是不行的。

推荐:

sql执行顺序
sql执行顺序 - qanholas - 博客园

数据库系统概论(第四版)第九章

五、高阶段语句掌握

case when then else end

个人认为性价比最高 对于分组查询非常有用。
例如你想要查各个时间段各数据出现的次数,你只有07:28这样的时间,而你需要的是07:00~08:00这样的时间段,这时就需要case来转化

SQL中的case when then else end用法

explain

此函数可以看到查询函数用到的索引等信息。用法很简单:explain+sql 查询语句

SQL语句优化-explain分析问题-nba76ers-ChinaUnix博客

weekday

将日期转化为星期数 星期日就是6,星期一就是0

MySQL weekday()函数

floor、round、trunc

数值取整 floor是取整数部分,而round是四舍五入,trunc是取x位小数

SQL中的取整函数FLOOR、ROUND、CEIL、TRUNC、SIGN_郑来轶_新浪博客

row_number()over

做排行榜的函数

SQL ROW_NUMBER() OVER函数的基本用法用法

convert

数据类型转换

substr和mid

字符串截取

SQL函数:substr - 冰凝的日志 - 网易博客
posted @ 2017-02-16 15:47  飞教主  阅读(3982)  评论(0编辑  收藏  举报