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.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager