Maison > Article > base de données > Parlons des connexions aux tables SQL
Cet article vous apporte des connaissances pertinentes sur SQL, qui présente principalement le contenu pertinent sur les connexions de tables. SQL Server prend en charge une variété de connexions, notamment les jointures internes, les jointures gauches, les jointures droites, les jointures croisées et les jointures complètes. aux connexions extérieures. J'espère que cela sera utile à tout le monde.
Apprentissage recommandé : "Tutoriel SQL"
Dans une base de données relationnelle, les données sont réparties dans plusieurs tables logiques. Pour obtenir un ensemble de données complet et significatif, vous devez utiliser des jointures pour interroger les données de ces tables. SQL Server prend en charge diverses connexions, notamment les jointures internes, les jointures gauches, les jointures droites, les jointures croisées et les jointures externes complètes.
1. Jointure interne
La clause de jointure interne est utilisée pour interroger les données de deux ou plusieurs tables liées. La syntaxe de la clause INNER JOIN :
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p INNER JOIN production.categories c ON c.category_id = p.category_id
Remarque : Le champ à interroger doit être précédé du nom de la table ou de l'alias de la table, tel que : p.product_name
Où le FROM suivant est la table principale, puis INNER JOIN est suivi. La table est la table à joindre. La table principale et la table de jointure sont comparées pour trouver toutes les lignes qui remplissent les conditions. Si le résultat du calcul du prédicat de connexion est vrai, la table principale et la table de connexion seront fusionnées dans un nouvel ensemble de résultats, comme le montre la figure suivante :
Connexions de tables multiples au sein de la connexion, comme indiqué ci-dessous :
SELECT p.product_name, p.list_price ,c.category_name, b.brand_nameFROM production.products p INNER JOIN production.categories c ON c.category_id = p.category_id INNER JOIN production.brands b ON b.brand_id = p.brand_id
2. Jointure gauche
Utilisez la clause LEFT JOIN dans la jointure gauche pour interroger les données de plusieurs tables. Elle renvoie toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite. Si aucune ligne correspondante n'est trouvée dans le tableau de droite, utilisez plutôt NULL pour l'affichage, comme indiqué dans la figure :
Utilisez l'instruction LEFT JOIN pour vous connecter : comme indiqué ci-dessous :
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p LEFT JOIN production.categories c ON c.category_id = p.category_id
Dans la syntaxe ci-dessus, le tableau après FROM se trouve le tableau de gauche (production.products) et LEFT JOIN est suivi du tableau de droite (production.categories).
3. Jointure à droite
Utilisez la clause RIGHT JOIN dans la jointure à droite pour interroger deux tables ou plus. La requête de droite est juste l'opposé de la requête de gauche. Elle renvoie toutes les lignes de la table de droite et les lignes correspondantes de la table de gauche, si aucune ligne correspondante n'est trouvée dans la table de gauche, NULL est renvoyé au lieu d'être affiché, comme indiqué. dans la figure :
Utilisez l'instruction RIGHT JOIN pour vous connecter : comme suit :
SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p RIGHT JOIN production.categories c ON c.category_id = p.category_id
Dans la syntaxe ci-dessus, la table qui suit FROM est la table de gauche (production.products) et la table de droite (production.categories) immédiatement suivi de RIGHT JOIN.
4. Cross Join
CROSS JOIN rejoint deux ou plusieurs tables non liées. Voici la syntaxe de CROSS JOIN entre deux tables, deux façons d'écrire :
SELECT T1.select_list FROM T1 CROSS JOIN T2;
ou
SELECT T1.select_list FROM T1, T2;
CROSS JOIN connecte chaque ligne du premier tableau (T1) avec chaque ligne du deuxième tableau (T2). En d'autres termes, une jointure croisée renvoie le produit cartésien des lignes des deux tables. Contrairement à INNER JOIN ou LEFT JOIN, une jointure croisée n'établit pas de relation entre les tables jointes.
Supposons que le tableau T1 contienne trois lignes : 1 , 2 et 3 , et que le tableau T2 contienne trois lignes : A , B et C . CROSS JOIN prend une ligne de la première table (T1) et crée une nouvelle ligne pour chaque ligne de la deuxième table (T2). Ensuite, il fait de même pour la ligne suivante du premier tableau (T1), et ainsi de suite. Dans cette figure, le CROSS JOIN crée un total de 9 lignes.
5. Self-join
Self-join est utilisé pour connecter une table à elle-même (la même table). Il est utile pour interroger des données hiérarchiques ou comparer des lignes dans la même table.
L'auto-jointure utilise une clause de jointure interne ou de jointure gauche. Étant donné que les requêtes utilisant des jointures automatiques font référence à la même table, des alias de table sont utilisés pour attribuer des noms différents aux tables de la requête.
Remarque : Si vous référencez plusieurs fois la même table dans une requête sans utiliser d'alias de table, une erreur se produira.
Exemple :
SELECT t1.select_list FROM T1 t1INNER JOIN T1 t2 ON t1.category_id = t2.category_id
Vous pouvez utiliser d'autres clauses ici dans INNER JOIN, telles que : LEFT JOIN, RIGHT JOIN
6. Jointure externe complète
FULL OUTER JOIN lorsqu'il y a un élément correspondant dans la gauche ou table de droite, la commande renverra toutes les lignes. Comme le montre la figure :
Utilisez FULL OUTER JOIN pour interroger les données de la table pm.projects et de la table pm.member :
SELECT m.name member, p.title project FROM pm.members m FULL OUTER JOIN pm.projects p ON p.id = m.project_id;
données de la table pm.projects :
données de la table pm.member :
Résultats de la requête :
Apprentissage recommandé : "Tutoriel SQL"
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!