Maison  >  Article  >  base de données  >  Explication détaillée de l'instruction de sous-requête MySQL

Explication détaillée de l'instruction de sous-requête MySQL

PHPz
PHPzoriginal
2023-04-19 14:13:313557parcourir

MySQL est un système de gestion de bases de données relationnelles largement utilisé pour le stockage et la gestion des données. Dans MySQL, la sous-requête est une forme d'instruction courante. Cet article présentera les instructions de sous-requête dans MySQL et donnera quelques exemples pour aider les lecteurs à mieux comprendre et utiliser les sous-requêtes.

1. Qu'est-ce qu'une sous-requête

Une sous-requête est une instruction de requête contenue dans une autre requête, généralement imbriquée dans une instruction SELECT, INSERT, UPDATE ou DELETE. Dans MySQL, les sous-requêtes peuvent être exécutées dans le cadre d'une requête et fournir des conditions de recherche ou des éléments calculés. La sous-requête est un formulaire d'instruction très puissant qui peut rendre les requêtes plus flexibles, précises et efficaces. Les sous-requêtes peuvent être imbriquées sur plusieurs niveaux, mais veillez à ne pas rendre la requête trop complexe.

2. Syntaxe de sous-requête

La syntaxe de sous-requête dans MySQL peut être divisée en deux types : la sous-requête d'expression et la sous-requête SELECT.

  1. Syntaxe de sous-requête d'expression :

SELECT … FROM … WHERE opérateur nom_colonne (SELECT nom_colonne FROM nom_table WHERE condition);

Dans cette syntaxe, l'opérateur entre les constantes et les noms de champs peut être égal, non égal à, inférieur à , supérieur à, etc. De plus, le résultat de la sous-requête ne doit comporter qu’une seule ligne et une seule colonne, sinon une erreur sera renvoyée. Dans le même temps, vous pouvez également utiliser des sous-requêtes pour interroger la valeur maximale, la valeur minimale, la somme et la moyenne dans le jeu de résultats.

  1. Syntaxe de la sous-requête SELECT :

SELECT nom_colonne1, nom_colonne2, … FROM nom_table WHERE opérateur nom_colonne (condition SELECT nom_colonne FROM nom_table WHERE);

Dans cette syntaxe, la sous-requête SELECT est ajoutée à la clause WHERE du milieu de la requête externe . La sous-requête doit renvoyer une seule valeur, sinon une erreur sera renvoyée. De plus, la sous-requête SELECT peut effectuer tout type d'opération de comparaison dans la clause WHERE.

3. Exemples de sous-requêtes

Les exemples suivants illustrent l'utilisation des sous-requêtes dans MySQL.

  1. Interrogez les informations de tous les élèves dont les scores sont supérieurs à la moyenne de la classe.

SELECT student_id, student_name, score FROM student WHERE score > (SELECT AVG(score) FROM student);

Dans cette déclaration, interrogez d'abord le numéro d'étudiant, le nom et le score de chaque élève dans la table des étudiants, puis réussite La sous-requête calcule le score moyen de la classe et compare le score moyen au score de chaque élève. Enfin, les informations des étudiants éligibles seront restituées.

  1. Recherchez le nom du département dont le salaire des employés est supérieur au salaire moyen et au salaire moyen du département.

SELECT nom_département, AVG(salaire) comme avg_salaire FROM employé INNER JOIN département ON employé.department_id = département.department_id WHERE salaire > (SELECT AVG(salaire) FROM employé) GROUP BY nom_département ;

Dans cette déclaration, premiers employés dont les salaires sont supérieurs au salaire moyen sont joints à la table des départements et une sous-requête est utilisée pour calculer le salaire moyen pour l'ensemble de l'entreprise. Enfin, regroupez par nom de département pour obtenir le nom et le salaire moyen de chaque département.

  1. Vérifiez combien de livres l'auteur a écrit et qui font plus de 100 pages.

SELECT COUNT(*) FROM books WHERE author_id IN (SELECT author_id FROM author WHERE name = 'John Smith') AND length > 100;

Dans cette déclaration, interrogez d'abord l'ID de l'auteur "John Smith", puis filtrez les livres éligibles en fonction de l'identifiant de l'auteur et de la longueur du livre. Enfin, utilisez la fonction COUNT pour renvoyer le nombre d'enregistrements dans le jeu de résultats de la requête.

4. Résumé

La sous-requête dans MySQL est un formulaire d'instruction très utile qui peut encore améliorer la précision et l'efficacité de la requête. Cet article présente la syntaxe des sous-requêtes et des exemples dans MySQL Grâce à l'apprentissage, vous pouvez mieux comprendre et maîtriser les instructions de sous-requête de MySQL, et il aide également les lecteurs à mieux appliquer la base de données 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