Terminei este livro em 20 páginas. Originalmente pensei que o tema deste livro fosse a explicação do t-sql no sql server 2005, mas depois de lê-lo descobri que não era. Não há explicação sistemática do t-sql no livro. Os primeiros três capítulos falam sobre os princípios da consulta, e os próximos seis capítulos classificam problemas SQL comuns em uma categoria para cada capítulo: Capítulo 4 subconsultas, expressões de tabela e funções de classificação, Capítulo 5 junções e operações de conjunto, Capítulo 6 agregação e rotação de data, Capítulo 7 TOP e ALLPY, Capítulo 8 Modificação de dados, Capítulo 9 Gráficos, árvores, hierarquias e consulta recursiva.
O autor disse no prefácio que se você ler este livro com atenção e passar algum tempo fazendo os exercícios do livro, poderá dominar em um curto período de tempo a experiência acumulada pelo autor por mais de dez anos. Eu li este livro e basicamente li o código do livro e sinto que aprendi muito com a experiência do autor, e ele é muito experiente. Muitas soluções não apenas mostram as habilidades do autor em SQL, mas também vale a pena aprender os algoritmos. Além disso, muitas perguntas fornecem soluções no sql server 2000 e soluções no sql server 2005. Aqui estão dois exemplos:
1. Gere rapidamente uma tabela de dados com apenas uma coluna O valor desta coluna varia de 1 a 8.000. O sql só precisa ser executado 14 vezes (o primeiro sql insere dados 1, e as próximas 12 vezes insere dados dentro de 2 elevado à potência). de 12 4096, e os restantes Os seguintes números 8000-4096 são gerados de uma só vez) em vez de 8000 vezes:
DEFINIR NOCOUNT ON;
USE tempdb;
IR
SE OBJECT_ID('dbo.Nums') NÃO FOR NULO
DROP TABLE dbo.Nums;
IR
CRIAR TABELA dbo.Nums(n INT NOT NULL PRIMARY KEY);
DECLARE @max AS INT, @rc AS INT;
DEFINIR @máx = 8000;
DEFINIR @rc = 1;
INSERIR EM Nums VALUES(1);
ENQUANTO @rc * 2 <= @max
COMEÇAR
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
FIM
INSERIR EM dbo.Nums
SELECIONE n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
IR
2. Para tabelas com estruturas recursivas, o autor apresenta o método de design comum (recursão) e também introduz o modelo de coleção aninhada proposto por Joe Celko. E deu seu próprio método de implementação mais rápido. Este modelo define dois valores em cada nó do número: lvalue e rvalue. O valor esquerdo é menor que o valor esquerdo de todos os nós subordinados e o valor direito é maior que o valor certo de todos os nós subordinados. O cálculo final do relacionamento recursivo é muito rápido. É claro que a mudança de um nó neste modelo fará com que uma média de metade dos nós recalculem os valores esquerdo e direito, por isso não é adequado para tabelas de dados que exigem mudanças frequentes em tempo real. O SQL específico é relativamente longo. Se você estiver interessado, pode ler o livro ou baixar o código-fonte deste livro.