*   >> Lecture Éducation Articles >> science >> la programmation

Mysql: conception relationnelle Tables

ur comprendre pourquoi, regardez ce qui se passe lorsque vous spécifiez deux tables dans la clause FROM sans aucune condition.

Deux petites tables sont incluses dans la base de données, nommée t1 et t2. Ces tableaux contiennent quelques rangées de démontrer joins.First, familiarisez-vous avec leurs données:

 mysql> SELECT * FROM t1; + ---- + -------- + | id | lettre | + ---- + -------- + | 1 | A || 2 | B || 3 | C | + ---- + -------- + 3 rows in set (0.

01 sec) mysql> SELECT * FROM t2; + ---- + -------- + | id | lettre | + ---- + -------- + | 1 | X || 2 | Y || 3 | Z | + ---- + -------- + 3 rows in set (0.00 sec)


Maintenant effectuer une jointure sur les deux tableaux, sans condition spécifiée

 mysql> SELECT * -> FROM t1, t2; + ---- + ---- -------- + -------- + + | id | lettre | id | lettre | + ---- + ---- + ---- + --- + -------- | 1 | A | 1 | X || 2 | B | 1 | X || 3 | C | 1 | X || 1 | A | 2 | Y || 2 | B | 2 | Y || 3 | C | 2 | Y || 1 | A | 3 | Z || 2 | B | 3 | Z || 3 | C | 3 | Z | + ---- + ---- -------- + -------- + + 9 rows in set (0.

00 sec)


Comme vous peut voir, chaque ligne de t1 est combiné avec chaque ligne de t2. Trois rangées de chaque table produisent une jointure, pour un total de neuf paires d'enregistrements. Ceci est connu comme un produit cartésien, et il est rarement le résultat que vous voulez à partir d'une requête.


SELECT *

Remarquez comment SELECT * notation dans la précédente par exemple causé chaque colonne à partir de deux tables à renvoyer. En conséquence, deux colonnes nommé id et deux lettres du nom ont été retournés.

Ces colonnes appartiennent aux tables dans l'ordre indiqué dans la clause FROM.


Le nombre total de lignes renvoyées est le produit du nombre de lignes dans chaque table. Vous pouvez imaginer la taille du jeu de données résultant peut se développer lorsque les tables individuelles contiennent un grand nombre de lignes elles-mêmes.


jointures croisées

Un produit cartésien est parfois connu comme une jointure croisée.



Ajout d'une condition où à ce joindre à charge MySQL pour filtrer les paires d'enregistrements pour lesquels il n'y a pas de relation entre les données. Ceci est la majorité des lignes qui seraient retournés dans un produit cartésien. En supposant une relation entre la colonne id dans chaque table, la jointure puis produit le résultat suivant:

 mysql> SELECT * -> FROM t1, t2 ->

Page   <<  [1] [2] [3] [4] [5] >>

Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.