国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

《SQL Server 2005技術內幕:T-SQl查詢》:常見sql問題歸類解答

2019-11-03 08:34:31
字體:
來源:轉載
供稿:網友
    這本書差20頁就看完了。本來以為這本書的主題是sql server 2005的t-sql的講解,讀完后發現不是。書中并沒有系統講解t-sql。前三章講查詢的原理,后面六章把常見的sql問題分類,每章一類:第4章子查詢、表表達式和排名函數,第5章聯接和集合操作,第6章聚合和旋轉數據,第7章TOP和ALLPY,第8章數據修改,第9章圖、樹、層次結構和遞歸查詢。
      作者在序言中說過,仔細閱讀本書,并且花些時間做書中的練習,可以在短時間內掌握作者十幾年積累的經驗。我看完本書并且基本把書中的代碼看過一遍,感覺確實學到了作者的許多經驗,作者經驗非常豐富。許多解決方案表現出來的不光是作者在sql上的技巧,其中的算法也很值得學習。另外許多問題都給出sql server 2000下的解決方案和sql server 2005下的解決方案。下面舉兩個例子:
       1。快速生成一個數據表,只有一列,這一列的值從1到8000,sql只需要執行14次(第一條sql插入數據1,后面12次把2的12次方4096以內的數據插入,后面剩下的8000-4096個數字一次生成)而不是8000次:
SET NOCOUNT ON;
USE tempdb;
GO
IF OBJECT_ID('dbo.Nums') IS NOT NULL
  DROP TABLE dbo.Nums;
GO
CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT;
SET @max = 8000;
SET @rc = 1;

INSERT INTO Nums VALUES(1);
WHILE @rc * 2 <= @max
BEGIN
  INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
  SET @rc = @rc * 2;
END

INSERT INTO dbo.Nums
  SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
GO
      2。對于遞歸結構的表,作者介紹了常見的設計方式(遞歸)之外,還介紹了Joe Celko提出的嵌套集合模型。并給出了自己的更快速的實現方法。這個模型在數的每個節點上設置兩個值:左值和右值。左值小于所有的下級節點的左值,右值大于所有的下級節點的右值,最終計算遞歸關系非常快。當然這種模型中一個節點的改變會導致平均一半的節點需要重新計算左值和右值,因此不適合需要經常實時變化的數據表。具體的sql比較長,有興趣可以看書或者下載本書的源代碼。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 建湖县| 新源县| 那坡县| 海阳市| 林甸县| 浑源县| 游戏| 古田县| 新宾| 任丘市| 道孚县| 江津市| 抚宁县| 阿拉善左旗| 杭州市| 余庆县| 迁西县| 南平市| 忻城县| 壤塘县| 夹江县| 江城| 民勤县| 凯里市| 无棣县| 阿巴嘎旗| 剑阁县| 绥滨县| 平凉市| 准格尔旗| 屏东县| 巧家县| 花垣县| 家居| 阿尔山市| 哈密市| 兴仁县| 肥西县| 台江县| 正定县| 丽水市|