Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:master:bdle:tmes:sqlrecursif [16/12/2016 13:01] amann |
site:enseignement:master:bdle:tmes:sqlrecursif [19/10/2017 11:06] (Version actuelle) hubert |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{indexmenu_n>70}} | ||
+ | |||
====== SQL et récursion ====== | ====== SQL et récursion ====== | ||
Ligne 72: | Ligne 74: | ||
***Question 8**: Exécutez la requête suivante et analysez le résultat. Changez la stratégie de parcours (DEPTH FIRST, BREADTH FIRST) et l'attribut utilisé pour la détection du cycle. | ***Question 8**: Exécutez la requête suivante et analysez le résultat. Changez la stratégie de parcours (DEPTH FIRST, BREADTH FIRST) et l'attribut utilisé pour la détection du cycle. | ||
<code SQL> | <code SQL> | ||
- | with R2(a,b,l) | + | with R2(source,target,l) |
as ( | as ( | ||
select source,target,1 from myedges | select source,target,1 from myedges | ||
union all | union all | ||
- | select r.a, m.target, r.l+1 from R2 r, myedges m where m.source=r.b | + | select r.source, m.target, r.l+1 from R2 r, myedges m where m.source=r.target |
) | ) | ||
- | search breadth first by a set o1 | + | search breadth first by source set o1 |
- | cycle a set end to 1 default 0 | + | cycle target set end to 1 default 0 |
select * from R2 | select * from R2 | ||
order by o1; | order by o1; | ||
Ligne 87: | Ligne 89: | ||
---- | ---- | ||
- | ***Question 9**: Ecrivez une requête qui retourne tous les pairs de noeuds et la longueur du plus court chemin. | + | **Question 9**: Ecrivez une requête qui retourne tous les pairs de noeuds et la longueur du plus court chemin. |