作者:趙英銳
鏈接: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 - 冰凝的日志 - 網易博客