Salut,
je sais que pour l'union les tables doivent avoir le même schéma
mais qu'en est t'il pour INTER(intersection) et MINUS(soustraction) ?
y'a t'il la division dans SQL ?
merci
Salut,
je sais que pour l'union les tables doivent avoir le même schéma
mais qu'en est t'il pour INTER(intersection) et MINUS(soustraction) ?
y'a t'il la division dans SQL ?
merci
Selon la théorie relationnelle, si a et b sont deux relations (tables en SQL) et si a et b sont du même type (même schéma selon votre expression), l’union de ces deux relations, a UNION b est une relation du même type et dont le corps est constitué de tous les tuples t tels que t apparaît dans a ou b ou les deux.
Concernant l’intersection, il en va de même :
Si a et b sont deux relations et si a et b sont du même type (même schéma selon votre expression), l’intersection de ces deux relations, a INTERSECT b est une relation du même type et dont le corps est constitué de tous les tuples t tels que t apparaît à la fois dans a et b.
Concernant la différence (plutôt que soustraction) :
Si a et b sont deux relations et si a et b sont du même type (même schéma selon votre expression), la différence entre ces deux relations, a MINUS b est une relation du même type et dont le corps est constitué de tous les tuples t tels que t apparaît dans a mais pas dans b.
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
merci beaucoup
SQL ne propose pas d’opérateur de division, il faut donc le paraphraser. En revanche, l’algèbre relationnelle fournit cet opérateur :
Soit a et b deux relations ayant respectivement pour attributs
X1, X2, .., XmetY1, Y2, ..., Yntels qu’aucun attribut Xi (i = 1, 2, ..., m) ne partage le même nom qu’un attribut Yj (j = 1, 2, ..., n) et soit c la relation ayant pour attributs
X1, X2, ..., Xm, Y1, Y2, ..., Yn(l’en-tête de c est donc l’union des en-têtes de a et b). Désignons maintenant X et Y comme représentant respectivement {X1, X2, .., Xm} et {Y1, Y2, ..., Yn}.
La division de a par b via c (a étant le dividende, b le diviseur et c le "médiateur") :
a DIVIDEBY b PER cest une relation d’en-tête {X} et dont le corps est constitué de tous les tuples {X x} figurant dans a et tels qu’un tuple {X x, Y y} apparaît dans c pour tous les tuples {Y y} figurant dans b. Moins formellement, disons que le résultat de la division est constitué des valeurs X de a dont les valeurs correspondantes Y dans c contiennent toutes les valeurs de b.
L’aspect théorique peut paraître parfois hermétique, aussi pouvez-vous examiner quelques cas pratiques en SQL, par exemple dans les discussions :
http://www.developpez.net/forums/sho...d.php?t=539241
http://www.developpez.net/forums/sho...d.php?t=360501
http://www.developpez.net/forums/sho...25&postcount=8
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
Partager