作者:赵英锐
链接:https://www.zhihu.com/question/19552975/answer/138930758
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
链接: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 - 冰凝的日志 - 网易博客
一、基础理论篇
目的:
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 - 冰凝的日志 - 网易博客