Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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?​
bdd/laboratoare/07.1728289675.txt.gz · Last modified: 2024/10/08 01:44 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0