IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Union, Intersection, soustraction


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 85
    Points
    85
    Par défaut Union, Intersection, soustraction
    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

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 112
    Points : 31 586
    Points
    31 586
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par paskal++ Voir le message
    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) ?
    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.

  3. #3
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 85
    Points
    85
    Par défaut
    merci beaucoup

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 112
    Points : 31 586
    Points
    31 586
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par paskal++ Voir le message
    y'a t'il la division dans SQL ?
    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, .., Xm
    et
    Y1, Y2, ..., Yn
    tels 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 c
    est 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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. UNION - INTERSECT
    Par MacFly58 dans le forum Débuter
    Réponses: 1
    Dernier message: 22/02/2011, 19h54
  2. union / intersect
    Par nec27 dans le forum Requêtes
    Réponses: 3
    Dernier message: 09/02/2011, 13h42
  3. Type ENSEMBLE (intersection, soustraction etc)
    Par DURVILLE dans le forum Delphi
    Réponses: 13
    Dernier message: 30/04/2007, 19h33
  4. intersection et union d'une pile
    Par harris_macken dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 20/10/2005, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo