Tutoriel sur les sous-requêtes MySQL

Auteur: Charles Brown
Date De Création: 3 Février 2021
Date De Mise À Jour: 25 Décembre 2024
Anonim
Tutoriel sur les sous-requêtes MySQL - Des Articles
Tutoriel sur les sous-requêtes MySQL - Des Articles

Contenu

Les sous-requêtes sont des requêtes imbriquées dans une autre. Ils vous permettent de séparer une partie de la phrase et constituent une alternative plus lisible aux opérations pouvant nécessiter des jointures et des unions complexes. Les sous-requêtes dans MySQL peuvent renvoyer une valeur, une ligne, une colonne ou un tableau de données.


Utilisez des sous-requêtes pour créer des phrases plus lisibles et compactes (Images Thinkstock / Comstock / Getty Images)

La syntaxe

La syntaxe de base d'une sous-requête est la suivante:

SELECT * FROM table1 WHERE colonneA = (SELECT colonneB DE table2) GO

Les sous-requêtes doivent consister en une instruction "SELECT", "INSERT", "UPDATE", "DELETE", "SET" ou "DO". Vous ne pouvez pas modifier la table et l'utiliser simultanément dans la sous-requête. Les sous-requêtes sont généralement utilisées du côté droit de la clause WHERE, qui peut contenir n’importe quel opérateur logique ou de comparaison, tel que = (égal), <> (différent), <= (inférieur ou égal),> = ou "ENTRE" (entre deux valeurs), "PAS", "ET" et "OU". Vous pouvez également utiliser les mots clés "DISTINCT", "GROUP BY", "ORDER BY" et "LIMIT" et même combinés avec des instructions "JOIN". Outre les restrictions détaillées, il existe peu de limitations lors de l'écriture de sous-requêtes dans MySQL.


Il n'y a même pas de restriction sur le nombre de sous-requêtes effectuées dans une phrase. Pour plus d'informations sur les sous-requêtes, reportez-vous au manuel de référence de MySQL (reportez-vous à la section "Ressources").

Exemple

Supposons que vous ayez deux tables: l’une avec le prénom et le nom, l’adresse et le code postal des membres d’une liste de diffusion, et l’autre avec les villes, les états et le code postal. Pour trouver les noms des membres résidant à Brasilia, vous pouvez utiliser plusieurs phrases "select". Le premier cherchera les CEPs de Brasilia:

SELECT FROM FROM codes WHERE state = "BRASILIA" GO

Ensuite, utilisez un "select" pour chaque code postal trouvé:

SELECT nom, nom de famille FROM adresses WHERE cep = [codecep] GO

Cette méthode prend du temps et est facile à commettre des erreurs. Il est facile de perdre un code postal, surtout s'il y en a trop. Un moyen plus facile de réaliser cette tâche consiste à utiliser la première phrase en tant que sous-requête dans la seconde:


SÉLECTIONNER nom, nom de famille adresses FROM où WHERE cep = (codes SELECT de cette famille FROM état WHERE = "BRASILIA") GO

Cette requête montrera tous les membres de votre liste de diffusion qui vivent à Brasilia.