Maison >base de données >tutoriel mysql >Partage des méthodes de connexion aux tables de données dans MySQL

Partage des méthodes de connexion aux tables de données dans MySQL

PHPz
PHPzoriginal
2023-06-15 21:09:314145parcourir

MySQL est un système de gestion de bases de données relationnelles côté serveur qui permet de gérer de grandes quantités de données et peut également fonctionner sur les données de différentes manières. Le plus important d’entre eux consiste à connecter différentes tables de données. Dans MySQL, il existe plusieurs méthodes de jointure différentes qui peuvent être utilisées pour joindre des tables de données, chacune présentant des avantages et des inconvénients différents. Cet article partage quelques méthodes courantes de connexion aux tables de données MySQL, dans l'espoir d'aider les lecteurs à mieux comprendre et utiliser MySQL.

1. Jointure gauche

Dans la jointure gauche, nous renvoyons toutes les informations du tableau de gauche et les données correspondantes dans le tableau de droite. S'il n'y a aucune donnée correspondante dans le tableau de droite, une valeur NULL est renvoyée.

Syntaxe :

SELECT left_table.column_name(s), right_table.column_name(s)
FROM left_table LEFT JOIN right_table
ON left_table.column_name = right_table.column_name;

Exemple :

Supposons qu'il y ait deux tables, respectivement Student table (étudiant) et table famille (famille). La table étudiant contient le nom et l'âge de l'élève, et la table famille contient le nom du père correspondant au nom de l'élève.

Utilisez la jointure gauche pour connecter ces deux tables. L'instruction SQL est la suivante :

SELECT student.name, student.age, family.father_name
FROM student
LEFT JOIN family
ON student.name = family.student_name;

Ici vous pouvez obtenir le nom, l'âge et le nom du père. S'il n'y a pas de nom de père correspondant pour un élève, une valeur NULL est renvoyée ici.

2. Rejoindre à droite

La jointure à droite peut être considérée comme la version miroir de la jointure à gauche. Dans la jointure de droite, nous renvoyons toutes les informations du tableau de droite et les données correspondantes du tableau de gauche. S'il n'y a aucune donnée correspondante dans le tableau de gauche, une valeur NULL est renvoyée.

Syntaxe :

SELECT left_table.column_name(s), right_table.column_name(s)
FROM left_table RIGHT JOIN right_table
ON left_table.column_name = right_table.column_name;

Exemple :

Toujours en utilisant la table d'étudiant et la famille ci-dessus table Par exemple, utilisez une jointure à droite pour connecter ces deux tables. L'instruction SQL est la suivante :

SELECT student.name, student.age, family.father_name
FROM student
RIGHT JOIN family
ON student.name = family. student_name;

Ici, nous obtenons le nom, l'âge et le nom du père. S'il n'y a aucun nom d'étudiant correspondant, une valeur NULL est renvoyée ici.

3. Jointure interne

La jointure interne renvoie uniquement les données avec une relation de correspondance dans les deux tables. S'il n'existe aucune relation de correspondance entre les deux tables, aucune donnée ne sera renvoyée.

Syntaxe :

SELECT left_table.column_name(s), right_table.column_name(s)
FROM left_table
INNER JOIN right_table
ON left_table.column_name = right_table.column_name;

Exemple :

Utilisez la jointure interne pour implémenter la table des étudiants et Pour connecter la table familiale, l'instruction SQL est la suivante :

SELECT student.name, student.age, family.father_name
FROM student
INNER JOIN family
ON student.name = family.student_name;

Ici, nous n'obtenez que les étudiants Données liées entre deux tables de nom, d'âge et de nom du père.

4. Jointures externes

Les jointures externes sont le terme général désignant les jointures gauches, les jointures droites et les jointures externes complètes. Dans la jointure externe, nous renvoyons toutes les données des deux tables et les associons. Si une seule table existe dans certaines données mais pas dans une autre table, NULL sera renvoyé à la position de données correspondante.

Syntax:

Select Left_Table.Column_name (S), droite_table.column_name (S)
from Left_Table
full OUTER JOY table Pour se connecter à la table familiale, l'instruction SQL est la suivante :

SELECT student.name, student.age, family.father_name

FROM student

FULL OUTER JOIN family

ON student.name = family.student_name;

Ici , nous récupérons toutes les données des tables d'étudiants et de familles et les rassemblons. Si le père est trouvé directement dans la table familiale mais que l'élève correspondant n'est pas trouvé, une valeur NULL est renvoyée ici.

5. Auto-adhésion

L'auto-adhésion signifie connecter deux éléments différents sous forme de deux tables dans une seule table. Habituellement, cette méthode est utilisée pour trouver des informations correspondantes dans le tableau.

Syntaxe :

SELECT a.column_name(s), b.column_name(s)

FROM table a, table b

WHERE a.column_name = b.column_name AND a.column_name = 'value' ;

Exemple :


Supposons qu'il existe un tableau contenant les pays et leurs capitales. Nous pouvons utiliser l'auto-jointure pour interroger les connexions entre toutes les capitales du pays.

Utilisez l'auto-jointure pour implémenter la requête ci-dessus. L'instruction SQL est la suivante :

SELECT a.country, a.capital as capital_city, b.capital

FROM capital_table a, capital_table b

WHERE a.capital != b .capital AND a.country = b.country;

Ici, vous pouvez obtenir les données associées entre chaque pays et les capitales des autres pays.


Résumé :

MySQL propose plusieurs méthodes de connexion de tables différentes, chacune pouvant être utilisée pour gérer différents besoins de connexion de données. En acquérant une compréhension approfondie de ces méthodes et de leur utilisation, nous pouvons gérer plus efficacement les connexions de données dans MySQL et mieux comprendre l'utilisation de MySQL.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn