Sobes.tech
Junior

Que savez-vous des échantillons et des jointures dans les bases de données?

sobes.tech IA

Réponse de l'IA

Les échantillons (requêtes SELECT) extraient des données d'une ou plusieurs tables. Les jointures (JOIN) combinent des lignes de deux ou plusieurs tables en fonction d'une colonne liée entre elles.

Types de jointures :

  • INNER JOIN : Renvoie les lignes qui ont des correspondances dans les deux tables.
  • LEFT JOIN (LEFT OUTER JOIN) : Renvoie toutes les lignes de la table de gauche et les lignes correspondantes de la droite. S'il n'y a pas de correspondance, NULL est renvoyé pour la table de droite.
  • RIGHT JOIN (RIGHT OUTER JOIN) : Renvoie toutes les lignes de la table de droite et les lignes correspondantes de la gauche. S'il n'y a pas de correspondance, NULL est renvoyé pour la table de gauche.
  • FULL JOIN (FULL OUTER JOIN) : Renvoie toutes les lignes lorsqu'il y a des correspondances dans au moins une des tables. Si aucune correspondance, NULL est renvoyé pour les champs manquants. (Pas supporté par tous les SGBD, par exemple, MySQL utilise UNION pour l'émuler).
  • CROSS JOIN : Renvoie le produit cartésien des lignes des deux tables (chaque ligne de la première table est combinée avec chaque ligne de la seconde).

Exemples de syntaxe :

-- INNER JOIN
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.foreign_id;
-- LEFT JOIN
SELECT customer.name, order.order_id
FROM customer
LEFT JOIN order ON customer.id = order.customer_id;

Mots-clés pour les requêtes :

  • SELECT : Définit les colonnes à extraire.
  • FROM : Indique la(s) table(s).
  • WHERE : Filtre les lignes selon une condition donnée.
  • GROUP BY : Regroupe les lignes avec des valeurs identiques en une ligne résumé.
  • HAVING : Filtre les groupes après GROUP BY.
  • ORDER BY : Trie le résultat.
  • LIMIT / OFFSET : Limite le nombre de lignes retournées.

L'optimisation des requêtes et des jointures est importante pour la performance de la base de données. On utilise des index, une définition correcte des types de données, éviter SELECT * (lorsque c'est possible), optimisation des conditions dans WHERE.

En PHP, pour travailler avec des requêtes et des jointures, on utilise des extensions comme PDO ou MySQLi, qui fournissent une API pour exécuter des requêtes SQL.