Bc. David Gešvindr MCT | MSP | MCTS | MCITP | MCPD 1. Načítání dat pomocí příkazu SELECT 2. Modifikace dat Popisuje chování dotazu Jeho fáze, jejich vstupy a výstupy nutně nesouvisí s vlastním fyzickým zpracováním dotazu SELECT DISTINCT TOP FROM JOIN ON WHERE GROUP BY HAVING ORDER BY 1 2 3 4 5 6 7 8 9 10 4 V podmínce ON, WHERE a HAVING: NULL chápáno jako FALSE V check-constraint: NULL chápáno jako TRUE V GROUP BY, ORDER BY a UNIQUE omezeních jsou si NULL rovny Three-valued Logic True FalseUnknown VT3VT4 5 Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1 David 1 1 1 David 3 1 2 Jirka 2 2 3 Martin NULL NULL VT4 GROUP BY Customers.CustomerID GROUPS RAW Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1 David 1 1 David 3 1 2 Jirka 2 2 3 Martin NULL NULL VT5 6 HAVING COUNT(Orders.OrderID) > 0 VT5 GROUPS RAW Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1 David 1 1 David 3 1 2 Jirka 2 2 3 Martin NULL NULL GROUPS RAW Customers. CustomerID Customers. Name Orders. OrderID Orders. CustomerID 1 David 1 1 David 3 1 2 Jirka 2 2 VT6 7 Vyhodnocení výrazů v části SELECT Vytvořené aliasy sloupců použitelné až v dalších krocích „All-at-once“ SELECT c1 + 1 AS e1, e1 + 1 AS e2 UPDATE Customers SET FirstName = LastName, LastName = FirstName UPDATE dbo.T1 SET c1 = c1 + (SELECT MAX(c1) FROM dbo.T1) VT6VT7 8 Odstranění duplicitních řádků Redundantní s GROUP BY VT7VT8 9 Vrání n prvních výsledků z dodaného tabulky Pokud je definováno ORDER BY, ovlivní pořadí řádků WITH TIES Deterministický x nedeterministický VT8VT9 9 Seřazení množiny výsledků Dle ANSI SQL:1999 při použití DISTINCT jsme omezeni na sloupce vracené příkazem SELECT (VT7), jinak použitelná i VT6 Vrací kurzor Nelze použít jako table-expression View, Inline table-valued function, subquery, derived table nebo common table expression VT9VC10 SELECT DISTINCT TOP