This shows you the differences between two versions of the page.
bd2:laboratoare:07 [2020/11/16 20:01] ciprian.truica |
bd2:laboratoare:07 [2020/11/19 15:40] (current) ciprian.truica [Variabile] |
||
---|---|---|---|
Line 26: | Line 26: | ||
[INTO] -- Putem folosi rezultatul instruțiunii select pentru a popula o tabelă deja existentă | [INTO] -- Putem folosi rezultatul instruțiunii select pentru a popula o tabelă deja existentă | ||
[FROM] -- Sursa sau sursele de date de date | [FROM] -- Sursa sau sursele de date de date | ||
- | [[CROSS]|[INNER]|[LEFT|RIGHT|FULL OUTER]] JOIN -- Putem folosi mai multe surse de date cu condiții speciale | + | [[[CROSS]|[INNER]|[LEFT|RIGHT|FULL OUTER]] JOIN] -- Putem folosi mai multe surse de date cu condiții speciale |
[WHERE] -- Condițiile de filtrare a datelor deja existente | [WHERE] -- Condițiile de filtrare a datelor deja existente | ||
[GROUP BY] -- Agregarea datelor deja existente până în acest punct | [GROUP BY] -- Agregarea datelor deja existente până în acest punct | ||
Line 129: | Line 129: | ||
==== Grupări, Agregate și HAVING ==== | ==== Grupări, Agregate și HAVING ==== | ||
- | Avem o mulțime de funcții de agregare predefinite pe care le găsiți [aici](https://docs.microsoft.com/en-us/sql/t-sql/functions/aggregate-functions-transact-sql?view=sql-server-2017). Pe lângă aceste funcții mai sunt și cele fare funcționează DOAR când apare clauza **GROUP BY**. | + | Avem o mulțime de funcții de agregare predefinite pe care le găsiți [[https://docs.microsoft.com/en-us/sql/t-sql/functions/aggregate-functions-transact-sql?view=sql-server-ver15|aici]]. Pe lângă aceste funcții mai sunt și cele fare funcționează DOAR când apare clauza **GROUP BY**. |
Gruparea este la fel ca și în celelate limbaje de tip SQL: dispare noțiunea de individ și apre noțiunea de întreg. Pentru a filtra, în acest caz, se folosește **HAVING** care se referă la proprietățile unui grup. Se pot folosi funcții și în acest caz. | Gruparea este la fel ca și în celelate limbaje de tip SQL: dispare noțiunea de individ și apre noțiunea de întreg. Pentru a filtra, în acest caz, se folosește **HAVING** care se referă la proprietățile unui grup. Se pot folosi funcții și în acest caz. | ||
Line 212: | Line 212: | ||
-- Se poate seta ca rezultat al unei clauze, oricare ar fi el | -- Se poate seta ca rezultat al unei clauze, oricare ar fi el | ||
SELECT TOP 1 @VAR_WITH_VALUE = N'Se știe' | SELECT TOP 1 @VAR_WITH_VALUE = N'Se știe' | ||
- | FROM [BD2].[dbo].[EMPLOYEE]; | + | FROM [hr].[dbo].[EMPLOYEES]; |
-- Putem afișa valoare unei variabile | -- Putem afișa valoare unei variabile | ||
Line 241: | Line 241: | ||
==== Din XML în tabele ==== | ==== Din XML în tabele ==== | ||
- | Putem să revenim din XML înapoi la o tabelă (dacă ne permite structura) folosind operatorul **OUTER APPLY**, despre care puteți să citiți mai multe [aici](https://docs.microsoft.com/en-us/sql/t-sql/queries/from-transact-sql?view=sql-server-2017), dar el aplică anumite operațiuni pe TABELE, mai exact ce este în stânga lui și ce este în dreapta lui, la fel ca și **JOIN**. În exemplul de mai jos puteți să vedeți cum refacem datele tabelare transformate în XML. | + | Putem să revenim din XML înapoi la o tabelă (dacă ne permite structura) folosind operatorul **OUTER APPLY**, despre care puteți să citiți mai multe [[https://docs.microsoft.com/en-us/sql/t-sql/queries/from-transact-sql?view=sql-server-ver15|aici]], dar el aplică anumite operațiuni pe TABELE, mai exact ce este în stânga lui și ce este în dreapta lui, la fel ca și **JOIN**. În exemplul de mai jos puteți să vedeți cum refacem datele tabelare transformate în XML. |
{{:bd2:laboratoare:sqlserverlab01ex090.png?nolink&740|}} | {{:bd2:laboratoare:sqlserverlab01ex090.png?nolink&740|}} | ||
<color red>Întrebare 2</color> Ce credeți că returnează clauza dacă stricăm ordinea/nodurile? | <color red>Întrebare 2</color> Ce credeți că returnează clauza dacă stricăm ordinea/nodurile? |