分三大塊,資料庫基礎概念,SQL語言實用技巧,資料庫設計技巧和執行個體。
--------------------------------------------------------------------------------
資料庫基礎概念:
資料庫,表,列,主鍵,外鍵, 資料類型。
事務。http://www.cnblogs.com/samwu/archive/2011/09/07/2169851.html
鎖機制。http://www.cnblogs.com/samwu/archive/2011/09/19/2181506.html其中,事務的隔離機制 會影響 增刪查改的鎖機制。
完整性條件約束,包括主鍵約束,外鍵約束,唯一約束,資料類型約束,不為空白約束,自訂約束。
範式。http://www.cnblogs.com/samwu/archive/2011/09/07/2169629.html
E-R圖。http://www.cnblogs.com/samwu/archive/2011/09/07/2169842.html
資料庫生命週期。http://www.cnblogs.com/samwu/archive/2011/09/07/2169829.html
資料流程圖,資料字典(可不瞭解)。
14個資料庫設計中技巧(轉)。http://www.cnblogs.com/samwu/archive/2011/09/07/2169631.html
書籍推薦:《資料庫原理及設計》
--------------------------------------------------------------------------------
SQL語言實用技巧:
分頁預存程序。
觸發器使用。
資料庫自訂函數使用。
遊標使用。
連續日期查詢。http://www.cnblogs.com/samwu/archive/2011/09/15/2177176.html
產生連續日期。http://www.cnblogs.com/samwu/archive/2011/09/27/2192953.html
綜合SQL查詢,一道員工與部門查詢的SQL筆試題。http://www.cnblogs.com/samwu/archive/2011/09/27/2192934.html
SQL養成一個好習慣是一筆財富。http://kb.cnblogs.com/page/103705/
插入,更新,刪除,
查詢:
SQL彙總函式,MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM (和)、COUNT(數量)。
資料排序,ORDER BY子句位於SELECT語句的末尾,它允許指定按照一個列或者多個列進行排序,還可以指定排序方式是升序(從小到大排列,ASC)還是降序(從大到小排列,DESC)。
萬用字元過濾 ,單字元匹配的萬用字元為半形底線“_”,多字元匹配的萬用字元為半形百分比符號“%”,它匹配任意次數(零或多個)出現的任一字元。
空值處理,資料庫中,一個列如果沒有指定值,那麼值就為null,這個null和C#中的null,資料庫中的null表示“不知道”,而不是表示沒有。SQL中使用is null、is not null來進行空值判斷。
多值匹配,SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge IN (23,25,28)。
資料分組,GROUP BY子句必須放到WHERE語句的之後,沒有出現在GROUP BY子句中的列是不能放到SELECT語句後的列名列表中的 (彙總函式中除外)。
Having語句,在Where中不能使用彙總函式,必須使用Having,Having要位於Group By之後,注意Having中不能使用未參與分組的列,Having不能替代where。作用不一樣,Having是對組進行過濾。
限制結果集行數,也就是top關鍵字,SQLServer2005後增加了Row_Number函數簡化實現,通常用於分頁。
去掉資料重複,DISTINCT是對整個結果集進行資料重複處理的,而不是針對每一個列。(忘了)
聯合結果集,union關鍵字,基本的原則:每個結果集必須有相同的列數;每個結果集的列必須類型相容。union關鍵字合并兩個查詢結果集,並且將其中完全重複的資料行合并為一條。union關鍵字因為要進行重複值掃描,所以效率低,因此如果不是確定要合并重複行,那麼就用union all關鍵字。
各種查詢函數:
數字函數,
ABS() ,求絕對值。CEILING(),舍入到最大整數 。3.33將被舍入為4、2.89將被舍入為3、-3.61將被舍入為-3。
FLOOR():舍入到最小整數。3.33將被舍入為3、2.89將被舍入為2、-3.61將被舍入為-4。
ROUND():四捨五入。 例如,select round(3.14666,2)結果是3.15000,select round(3.14666,3)結果是3.14700。
字串函數,日期函數,類型轉換函式,空值處理函數,caes函數。
索引,
全表掃描:對資料進行檢索(select)效率最差的是全表掃描,就是一條條的找。使用索引能提高查詢效率,但是索引也是佔據空間的,而且添加、更新、刪除資料的時候也需要同步更新索引,因此會降低Insert、Update、Delete的速度。只在經常檢索的欄位上(Where)建立索引。即使建立了索引,仍然有可能全表描,比如like、函數、類型轉換等。http://www.cnblogs.com/xioxu/archive/2010/10/20/1857119.html
表串連,join是和哪個表串連,on後是串連的關係是什麼。內串連inner join,左串連left join,右串連right join,
http://www.cnblogs.com/doucontorl/archive/2010/09/06/1819419.html
子查詢:http://www.cnblogs.com/edisonfeng/archive/2011/07/02/2096403.html
書籍推薦:《SQL Cookbook》
--------------------------------------------------------------------------------資料庫設計執行個體:
分類菜單的表設計和添加額外商品屬性的表設計:http://blog.csdn.net/luyysea/article/details/5068157