This shows you the differences between two versions of the page.
|
bdd:laboratoare:07 [2024/10/07 11:27] 127.0.0.1 external edit |
bdd:laboratoare:07 [2024/10/08 01:44] (current) alex.petrescu |
||
|---|---|---|---|
| Line 64: | Line 64: | ||
| Următoarele 2 clauze sunt echivalente (și generate de SQL Management Studio): | Următoarele 2 clauze sunt echivalente (și generate de SQL Management Studio): | ||
| - | {{:bdd:laboratoare:sqlserverlab01ex02a.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex02a.png?nolink&740|}} |
| - | {{:bdd:laboratoare:sqlserverlab01ex02b.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex02b.png?nolink&740|}} |
| Ne lovim de necunoscut, clauza **TOP**, care reduce numărul de linii returnate la **minimumul(numărul specificat, câte rezultate sunt într-adevăr)**. Aceasta nu are nevoie în mod deosebit de **(paranteze rotunde)** pentru a delimita numărul dar ne este mai ușor să ne dăm seama când avem de aface și cu constante. | Ne lovim de necunoscut, clauza **TOP**, care reduce numărul de linii returnate la **minimumul(numărul specificat, câte rezultate sunt într-adevăr)**. Aceasta nu are nevoie în mod deosebit de **(paranteze rotunde)** pentru a delimita numărul dar ne este mai ușor să ne dăm seama când avem de aface și cu constante. | ||
| Line 97: | Line 97: | ||
| Produsul cartezian se poate genera în următorul mod: | Produsul cartezian se poate genera în următorul mod: | ||
| - | {{:bdd:laboratoare:sqlserverlab01ex030.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex030.png?nolink&740|}} |
| Aici pentru fiecare angajat am adus fiecare manager, ne-am dori să aducem doar managerul lui așa că vom scrie un (SELF) **INNER JOIN** în 2 moduri: | Aici pentru fiecare angajat am adus fiecare manager, ne-am dori să aducem doar managerul lui așa că vom scrie un (SELF) **INNER JOIN** în 2 moduri: | ||
| - | {{:bdd:laboratoare:sqlserverlab01ex03a.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex03a.png?nolink&740|}} |
| - | {{:bdd:laboratoare:sqlserverlab01ex03b.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex03b.png?nolink&740|}} |
| <note> | <note> | ||
| Line 115: | Line 115: | ||
| Exemplu: | Exemplu: | ||
| - | {{:bdd:laboratoare:sqlserverlab01ex04.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex04.png?nolink&740|}} |
| <color red>Ex. 4</color> Aceeași problemă ca mai sus. Se rezolvă la fel? Rescrieți clauza, în mod corect și complet, fără CTE. | <color red>Ex. 4</color> Aceeași problemă ca mai sus. Se rezolvă la fel? Rescrieți clauza, în mod corect și complet, fără CTE. | ||
| Line 135: | Line 135: | ||
| Exemplu: | Exemplu: | ||
| - | {{:bdd:laboratoare:sqlserverlab01ex06.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex06.png?nolink&740|}} |
| <color red>Ex. 6</color> Dorim să îmbunătățim clauza prin adăugarea unei coloane în care vom preciza numele managerilor din acel departament. (**HINT: SUBCLAUZE**) | <color red>Ex. 6</color> Dorim să îmbunătățim clauza prin adăugarea unei coloane în care vom preciza numele managerilor din acel departament. (**HINT: SUBCLAUZE**) | ||
| Line 231: | Line 231: | ||
| Exemplu Creare XML din Tabele: | Exemplu Creare XML din Tabele: | ||
| - | {{:bdd:laboratoare:sqlserverlab01ex070.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex070.png?nolink&740|}} |
| <color red>Întrebare 1</color> Ce face această clauză, dacă ignorăm partea de XML? | <color red>Întrebare 1</color> Ce face această clauză, dacă ignorăm partea de XML? | ||
| Line 238: | Line 238: | ||
| Putem să interogăm conținutul unui XML pentru a obține date tabelare. În exemplul de mai jos vom lua XML-ul generat anterior și ne vom folosi doar de primul nivel pentru a obține datele legate direct de angajat. | Putem să interogăm conținutul unui XML pentru a obține date tabelare. În exemplul de mai jos vom lua XML-ul generat anterior și ne vom folosi doar de primul nivel pentru a obține datele legate direct de angajat. | ||
| - | {{:bdd:laboratoare:sqlserverlab01ex080.png?nolink&740|}} | + | {{:bd2:laboratoare:sqlserverlab01ex080.png?nolink&740|}} |
| ==== 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 [[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. | 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. | ||
| - | {{:bdd: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? | ||