Ich habe dieses Buch auf 20 Seiten fertiggestellt. Ich dachte ursprünglich, dass das Thema dieses Buches die Erklärung von T-SQL in SQL Server 2005 sei, aber nachdem ich es gelesen hatte, stellte ich fest, dass dies nicht der Fall war. Das Buch enthält keine systematische Erklärung von T-SQL. In den ersten drei Kapiteln geht es um die Prinzipien der Abfrage, und in den nächsten sechs Kapiteln werden häufige SQL-Probleme in eine Kategorie für jedes Kapitel eingeteilt: Kapitel 4 Unterabfragen, Tabellenausdrücke und Rangfolgefunktionen, Kapitel 5 Verknüpfungen und Mengenoperationen, Kapitel 6 Aggregation und Rotation von Daten, Kapitel 7 TOP und ALLPY, Kapitel 8 Datenänderung, Kapitel 9 Diagramme, Bäume, Hierarchien und rekursive Abfrage.
Der Autor sagte im Vorwort, dass man die Erfahrungen, die der Autor über mehr als zehn Jahre hinweg gesammelt hat, in kurzer Zeit meistern kann, wenn man dieses Buch sorgfältig liest und sich etwas Zeit für die Übungen im Buch nimmt. Ich habe dieses Buch gelesen und im Grunde habe ich das Gefühl, dass ich aus der Erfahrung des Autors viel gelernt habe, und der Autor ist sehr erfahren. Viele Lösungen zeigen nicht nur die SQL-Kenntnisse des Autors, auch die Algorithmen sind erlernbar. Darüber hinaus geben viele Fragen Lösungen unter SQL Server 2000 und Lösungen unter SQL Server 2005. Hier zwei Beispiele:
1. Generieren Sie schnell eine Datentabelle mit nur einer Spalte. Der Wert dieser Spalte reicht von 1 bis 8000. Die SQL muss nur 14 Mal ausgeführt werden (die erste SQL fügt Daten 1 ein und die nächsten 12 Mal fügt Daten innerhalb von 2 hoch ein). von 12 4096, und die restlichen 8000-4096-Nummern werden auf einmal generiert (statt 8000 Mal):
SETZEN SIE NOCOUNT AUF;
VERWENDEN Sie tempdb;
GEHEN
WENN OBJECT_ID('dbo.Nums') NICHT NULL IST
DROP TABLE dbo.Nums;
GEHEN
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
BEGINNEN
INSERT INTO dbo.Nums SELECT n + @rc FROM dbo.Nums;
SET @rc = @rc * 2;
ENDE
IN dbo.Nums EINFÜGEN
SELECT n + @rc FROM dbo.Nums WHERE n + @rc <= @max;
GEHEN
2. Für Tabellen mit rekursiver Struktur stellt der Autor die allgemeine Entwurfsmethode (Rekursion) vor und stellt außerdem das von Joe Celko vorgeschlagene verschachtelte Sammlungsmodell vor. Und gab seine eigene schnellere Implementierungsmethode. Dieses Modell legt an jedem Knoten der Zahl zwei Werte fest: lvalue und rvalue. Der linke Wert ist kleiner als der linke Wert aller untergeordneten Knoten und der rechte Wert ist größer als der rechte Wert aller untergeordneten Knoten. Die endgültige Berechnung der rekursiven Beziehung ist sehr schnell. Natürlich führt die Änderung eines Knotens in diesem Modell dazu, dass durchschnittlich die Hälfte der Knoten die linken und rechten Werte neu berechnet, sodass es nicht für Datentabellen geeignet ist, die häufige Echtzeitänderungen erfordern. Die spezifische SQL ist relativ lang. Wenn Sie interessiert sind, können Sie das Buch lesen oder den Quellcode dieses Buches herunterladen.