Pourquoi utiliser les jointures
Comme indiqué, diviser les données en plusieurs tables permet un stockage plus efficace, un traitement plus facile et une plus grande évolutivité. Mais ces avantages ont un prix.
Si les données sont stockées dans plusieurs tables, comment récupérer les données avec une seule instruction SELECT ?
La réponse est d'utiliser des jointures. En termes simples, une jointure est un mécanisme utilisé pour relier des tables dans une instruction SELECT, d'où son nom. Grâce à une syntaxe spéciale, plusieurs tables peuvent être jointes pour renvoyer un ensemble de sorties, la jointure corrélant les lignes correctes dans les tables au moment de l'exécution.
Maintenir l'intégrité référentielle Il est important de comprendre que les jointures ne sont pas des entités physiques. En d’autres termes, il n’existe pas dans la table de base de données réelle. Les jointures sont créées à la demande par MySQL et existent lors de l'exécution de la requête.
Lors de l'utilisation de tables relationnelles, il est très important d'insérer uniquement des données légales dans les colonnes relationnelles. Pour revenir à l'exemple ici, si vous insérez dans la table des produits des produits fabriqués par un fournisseur avec un identifiant de fournisseur illégal (c'est-à-dire non présent dans la table des fournisseurs), alors ces produits sont inaccessibles car ils ne sont pas associés à un fournisseur. .
Pour éviter que cela ne se produise, vous pouvez demander à MySQL d'autoriser uniquement les valeurs légales dans la colonne ID fournisseur de la table des produits (c'est-à-dire les fournisseurs qui apparaissent dans la table des fournisseurs).
Il s'agit de maintenir l'intégrité référentielle, qui est obtenue en spécifiant les clés primaires et les clés étrangères dans la définition de la table.
Créer une jointure
Créer une jointure est très simple, en précisant toutes les tables à joindre et comment ils se connectent simplement. Veuillez consulter l'exemple ci-dessous :
Entrée :
select vend_name,prod_name,prod_price from vendors,products where vendors.vend_id= products.vend_id order by vend_name,prod_name;
Sortie :
Analyse : Jetons un coup d'œil à ce code. L'instruction SELECT, comme toutes les instructions précédentes, spécifie les colonnes à récupérer. Ici, la plus grande différence est que les deux colonnes spécifiées ( prod_name et prod_price ) se trouvent dans une table, tandis que l'autre colonne ( vend_name ) se trouve dans une autre table.
Regardons maintenant la clause FROM. Contrairement à l'instruction SELECT précédente, la clause FROM de cette instruction répertorie deux tables, les fournisseurs et les produits. Ce sont les noms des deux tables connectées par cette instruction SELECT. Les deux tables sont correctement jointes avec une clause WHERE, qui demande à MySQL de faire correspondre le vend_id dans la table des vendeurs et le vend_id dans la table des produits.
Vous pouvez voir que les deux colonnes à faire correspondre sont spécifiées par sellers.vend_id et products.vend_id. Ce nom de colonne complet est nécessaire ici car si seul vend_id est donné, MySQL ne sait pas à lequel faire référence (il y en a deux, un dans chaque table).
Noms de colonnes complets Les noms de colonnes complets (noms de table et de colonnes séparés par un point) doivent être utilisés lorsque la colonne référencée peut être ambiguë. MySQL renverra une erreur si vous faites référence à un nom de colonne ambigu qui n'est pas qualifié par un nom de table.
[Recommandations associées]
1. Qu'est-ce qu'une sous-requête MySQL ? Comment filtrer à l'aide d'une sous-requête ?
2.mysql crée des champs calculés à l'aide de sous-requêtes
3. Que sont les jointures et les tables relationnelles dans MySQL ?
4. L'importance de la clause WHERE dans MySQL et comment joindre plusieurs tables
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!