L3 Info : SGBD
 
◃  Ch. 10 SQL : DQL (Algèbre relationnel et SQL)  ▹
 

Produit Cartésien en SQL

  • En SQL, le produit cartésien est l'opération par défaut obtenue à l'aide d'une sélection inconditionnelle sur deux tables.
  • Renvoie toutes les associations de lignes possibles entre les tables :
    • résultat rarement (jamais ?) pertinent
    • le produit cartésien de deux tables de 1 000 lignes produit 1 000 000 de lignes !
  • Aussi appelé jointure croisée (cross join)
  • Exemple :
    SELECT * FROM etudiant, professeur;
    etud_num | etud_nom | etud_prenom |       etud_adresse        | etud_naissance | dip_id | prof_id | prof_nom | prof_prenom | prof_tel | prof_adresse | prof_statut 
    ----------+----------+-------------+---------------------------+----------------+--------+---------+----------+-------------+----------+--------------+-------------
     20000001 | Martin   | Jacques     | Résidence de la pommeraie | 1995-01-01     |      1 |       1 | Amanton  | Laurent     |          |              | MCF
     20000001 | Martin   | Jacques     | Résidence de la pommeraie | 1995-01-01     |      1 |       2 | Ponty    | Jean-Luc    |          |              | MCF
     20000001 | Martin   | Jacques     | Résidence de la pommeraie | 1995-01-01     |      1 |       3 | Jay      | Véronique   |          |              | MCF
     20000001 | Martin   | Jacques     | Résidence de la pommeraie | 1995-01-01     |      1 |       4 | Balev    | Stefan      |          |              | MCF
     20000001 | Martin   | Jacques     | Résidence de la pommeraie | 1995-01-01     |      1 |       5 | Arfi     | Mustapha    |          |              | MCF
     20000001 | Martin   | Jacques     | Résidence de la pommeraie | 1995-01-01     |      1 |       6 | Fournier | Dominique   |          |              | MCF
     20000002 | Martin   | Pierre      | Résidence de la pommeraie | 1995-10-21     |      1 |       1 | Amanton  | Laurent     |          |              | MCF
     20000002 | Martin   | Pierre      | Résidence de la pommeraie | 1995-10-21     |      1 |       2 | Ponty    | Jean-Luc    |          |              | MCF
     20000002 | Martin   | Pierre      | Résidence de la pommeraie | 1995-10-21     |      1 |       3 | Jay      | Véronique   |          |              | MCF
     20000002 | Martin   | Pierre      | Résidence de la pommeraie | 1995-10-21     |      1 |       4 | Balev    | Stefan      |          |              | MCF
     20000002 | Martin   | Pierre      | Résidence de la pommeraie | 1995-10-21     |      1 |       5 | Arfi     | Mustapha    |          |              | MCF
     20000002 | Martin   | Pierre      | Résidence de la pommeraie | 1995-10-21     |      1 |       6 | Fournier | Dominique   |          |              | MCF
     20000003 | Dalton   | Joe         | Pénitencier fédéral       | 1865-04-01     |        |       1 | Amanton  | Laurent     |          |              | MCF
     20000003 | Dalton   | Joe         | Pénitencier fédéral       | 1865-04-01     |        |       2 | Ponty    | Jean-Luc    |          |              | MCF
     20000003 | Dalton   | Joe         | Pénitencier fédéral       | 1865-04-01     |        |       3 | Jay      | Véronique   |          |              | MCF
     20000003 | Dalton   | Joe         | Pénitencier fédéral       | 1865-04-01     |        |       4 | Balev    | Stefan      |          |              | MCF
     20000003 | Dalton   | Joe         | Pénitencier fédéral       | 1865-04-01     |        |       5 | Arfi     | Mustapha    |          |              | MCF
     20000003 | Dalton   | Joe         | Pénitencier fédéral       | 1865-04-01     |        |       6 | Fournier | Dominique   |          |              | MCF
     20000004 | Dalton   | Jack        | Pénitencier fédéral       | 1866-07-04     |        |       1 | Amanton  | Laurent     |          |              | MCF
     20000004 | Dalton   | Jack        | Pénitencier fédéral       | 1866-07-04     |        |       2 | Ponty    | Jean-Luc    |          |              | MCF
     20000004 | Dalton   | Jack        | Pénitencier fédéral       | 1866-07-04     |        |       3 | Jay      | Véronique   |          |              | MCF
     20000004 | Dalton   | Jack        | Pénitencier fédéral       | 1866-07-04     |        |       4 | Balev    | Stefan      |          |              | MCF
     20000004 | Dalton   | Jack        | Pénitencier fédéral       | 1866-07-04     |        |       5 | Arfi     | Mustapha    |          |              | MCF
     20000004 | Dalton   | Jack        | Pénitencier fédéral       | 1866-07-04     |        |       6 | Fournier | Dominique   |          |              | MCF
     20000005 | Dalton   | William     | Pénitencier fédéral       | 1867-11-28     |        |       1 | Amanton  | Laurent     |          |              | MCF
     20000005 | Dalton   | William     | Pénitencier fédéral       | 1867-11-28     |        |       2 | Ponty    | Jean-Luc    |          |              | MCF
     20000005 | Dalton   | William     | Pénitencier fédéral       | 1867-11-28     |        |       3 | Jay      | Véronique   |          |              | MCF
     20000005 | Dalton   | William     | Pénitencier fédéral       | 1867-11-28     |        |       4 | Balev    | Stefan      |          |              | MCF
     20000005 | Dalton   | William     | Pénitencier fédéral       | 1867-11-28     |        |       5 | Arfi     | Mustapha    |          |              | MCF
     20000005 | Dalton   | William     | Pénitencier fédéral       | 1867-11-28     |        |       6 | Fournier | Dominique   |          |              | MCF
     20000006 | Dalton   | Averell     | Pénitencier fédéral       | 1868-12-25     |        |       1 | Amanton  | Laurent     |          |              | MCF
     20000006 | Dalton   | Averell     | Pénitencier fédéral       | 1868-12-25     |        |       2 | Ponty    | Jean-Luc    |          |              | MCF
     20000006 | Dalton   | Averell     | Pénitencier fédéral       | 1868-12-25     |        |       3 | Jay      | Véronique   |          |              | MCF
     20000006 | Dalton   | Averell     | Pénitencier fédéral       | 1868-12-25     |        |       4 | Balev    | Stefan      |          |              | MCF
     20000006 | Dalton   | Averell     | Pénitencier fédéral       | 1868-12-25     |        |       5 | Arfi     | Mustapha    |          |              | MCF
     20000006 | Dalton   | Averell     | Pénitencier fédéral       | 1868-12-25     |        |       6 | Fournier | Dominique   |          |              | MCF
     (36 rows)