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.
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.
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.
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.
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.
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!