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? |