Comment écrire une sous-requête dans MySQL
La sous-requête
dans MySQL permet les requêtes de nidification, où la requête intérieure fonctionne en premier et son résultat est utilisé par la requête extérieure. Il peut être appliqué en sélection, à partir de, où et des clauses. Dans la clause WHERE, il filtre les données, telles que la recherche d'employés avec des salaires supérieurs à la moyenne: Sélectionner * parmi les employés où le salaire> (sélectionner AVG (salaire) des employés);. Ici, la sous-requête calcule le salaire moyen et la requête extérieure récupère les employés en gagnant plus. Dans la clause From, une sous-requête agit comme un tableau dérivé; Par exemple, pour trouver le salaire moyen du département le plus élevé: Sélectionnez Max (Dept_AVG) de (Select Department, AVG (salaire) en tant que Dept_avg du groupe des employés par département) en tant que Dept_Salaries ;. La sous-requête calcule les salaires moyens par département, alias comme dept_salaires, et la requête extérieure trouve le maximum. Dans la clause SELECT, les sous-requêtes scalaires renvoient des valeurs uniques, comme afficher le salaire de chaque employé à côté de la moyenne de l'entreprise: Nom sélectionné, salaire, (SELECT AVG (salaire) des employés) en tant que société_avg dans les employés ;. Cette sous-requête fonctionne une fois à moins d'être corrélée. Sous-questionnées corrélées référence aux colonnes de requête extérieure et exécutez une fois par ligne, telles que l'identification des employés gagnant plus que la moyenne de leur département: sélectionnez e1.name, e1.department, e1.salary des employés e1 où e1.salary> (select avg (e2
L'écriture d'une sous-requête dans MySQL consiste à placer une requête à l'intérieur d'une autre. La requête intérieure (sous-requête) fonctionne en premier et fournit des résultats que la requête extérieure utilise pour le filtrage ou les calculs. Les sous-requêtes peuvent être utilisées dans certains , d' où et d'avoir des clauses. Voici comment les utiliser correctement.
Sous-requête dans la clause
C'est l'utilisation la plus courante. La sous-requête filtre les données de la requête extérieure en fonction de son résultat.
- Sélectionnez les employés dont le salaire est supérieur à la moyenne:
Sélectionnez * parmi les employés où le salaire> (sélectionnez AVG (salaire) des employés);
- La requête intérieure calcule le salaire moyen.
- La requête extérieure récupère tous les employés gagnant plus que cette valeur.
Sous-requête de la clause
Utilisez une sous-requête comme table dérivée lorsque vous devez travailler avec des résultats intermédiaires.
- Trouvez le salaire maximal par département, puis obtenez le plus élevé parmi eux:
Sélectionnez Max (DEPT_AVG) From (Select Department, AVG (Salaire) en tant que Dept_AVG du groupe des employés par département) en tant que Dept_salaries;
- La sous-requête des groupes des employés par département et calcule les salaires moyens.
- La requête extérieure trouve le maximum de ces moyennes.
- Alias toujours les sous-requêtes de (par exemple, comme dept_salaries).
Sous-requête dans la clause SELECT
Inclure les résultats scalaires (valeur unique) d'une sous-requête dans vos colonnes de sortie.
- Montrer chaque employé et le salaire moyen de l'entreprise aux côtés de leurs données:
Sélectionnez le nom, le salaire, (sélectionnez AVG (salaire) des employés) en tant que société_avg auprès des employés;
- La sous-requête renvoie une valeur, donc elle peut apparaître dans Select.
- Il s'exécute une fois à moins d'être corrélé avec la ligne extérieure.
Sous-questionnées corrélées
Une sous-requête qui fait référence à une colonne de la requête extérieure. Il fonctionne une fois pour chaque ligne dans la requête extérieure.
- Trouvez des employés gagnant plus que la moyenne de leur département:
Sélectionnez e1.name, e1.Department, e1.salary dans les employés E1 où E1.Salary> (sélectionnez AVG (E2.Salary) des employés E2 où E2.Department = E1.Department);
- La requête intérieure utilise E1.Département à partir de la requête extérieure.
- Pour chaque employé, il calcule la moyenne de son propre département.
Assurez-vous que les sous-requêtes renvoient les types de résultats appropriés: Valeurs uniques pour les comparaisons, les colonnes uniques pour les clauses et les lignes correctement structurées à partir de l'utilisation. Testez toujours les sous-requêtes indépendamment avant de les intégrer.
Fondamentalement, niditez vos requêtes si nécessaire, assurez-vous une syntaxe correcte et n'oubliez pas que les performances peuvent souffrir avec de grands ensembles de données - les indications d'aide.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La réponse est: l'instruction de cas de MySQL est utilisée pour implémenter la logique conditionnelle dans la requête, et prend en charge deux formulaires: simple et recherche. Différentes valeurs peuvent être renvoyées dynamiquement dans des clauses telles que Select, Where et OrderBy; Par exemple, dans SELECT, la classification des scores par segments fractionnaires, combinant des fonctions agrégées pour compter le nombre d'états, ou hiérarchiser les rôles spécifiques dans OrderBy, il est nécessaire de toujours terminer avec fin et il est recommandé d'utiliser d'autre pour gérer la situation par défaut.

Créez un script shell contenant la configuration de la base de données et la commande mysqldump et enregistrez-le sous Mysql_backup.sh; 2. Stockez les informations d'identification MySQL en créant un fichier ~ / .my.cnf et définissez 600 autorisations pour améliorer la sécurité, modifier le script pour utiliser l'authentification du fichier de configuration; 3. Utilisez Chmod X pour rendre l'exécutable de script et tester manuellement si la sauvegarde est réussie; 4. Ajouter des tâches chronométrées via Crontab-E, telles que 02 / path / vers / mysql_backup.sh >> / path / to / backup / backup.log2> & 1, réalisez la sauvegarde automatique et la journalisation à 2 heures du matin tous les jours; 5

INSERT ... L'implémentation OnDuplicateKeyupdate sera mise à jour si elle existe, sinon elle sera insérée et nécessite des contraintes de clé unique ou primaires; 2. Réinsert après la suppression de RemplaceInto, qui peut entraîner des modifications de l'ID d'incrémentation automatique; 3. L'insertion inserte uniquement et ne fait pas de données répétitives, et ne met pas à jour. Il est recommandé d'utiliser la première implémentation d'UPsert.

Les sous-questionnaires peuvent être utilisés dans d'où, de sélection, de sélection et d'avoir des clauses pour implémenter le filtrage ou le calcul en fonction du résultat d'une autre requête. Les opérateurs tels que dans, tous, tous sont couramment utilisés dans où; Les alias sont nécessaires comme des tables dérivées de; Les valeurs uniques doivent être renvoyées dans Select; Les sous-requêtes apparentées reposent sur la requête extérieure pour exécuter chaque ligne. Par exemple, consultez les employés dont le salaire moyen est plus élevé que le ministère ou ajoutez la liste de salaire moyenne de l'entreprise. Les sous-questionnaires améliorent la clarté logique, mais les performances peuvent être inférieures à la jointure, vous devez donc vous assurer de retourner les résultats attendus.

ExpliquerInmysqlRevealSQueryExecutionPlans, montrant IndexUsage, TablereadOrder, androwfilteringTooptimePerFormance; useitBereelectoAnalyzesteps, checkkeycolumnsliketypeAndrow

Utilisez le mot clé distinct pour supprimer les valeurs en double de la colonne spécifiée et renvoyez des valeurs uniques. 1. La syntaxe de base est SelectDistinctColumn_NameFromTable_name; 2. Interrogez la valeur unique d'une seule colonne, telle que SelectDistinctCityFromCustomesrs; 3. Interrogez la combinaison unique de plusieurs colonnes, telles que SelectDistinctCity, StateFromCustomesrs; 4. Filtrez avec la clause WHERE et obtenez la valeur unique, comme selectDistinctProduct_namefromorderswhereOrder_Date> '202

Utilisez UTC pour stocker le temps, définissez le fuseau horaire MySQL Server sur UTC, utilisez l'horodatage pour réaliser la conversion automatique du fuseau horaire, ajustez le fuseau horaire en fonction des besoins des utilisateurs dans la session, affichez le temps local via la fonction convert_tz et assurez-vous que le tableau de fuseau horaire est chargé.

MySQL peut calculer les distances géographiques à travers la formule Haversine ou la fonction ST_DISTANCE_SPHERE. Le premier convient à toutes les versions, et le second fournit des calculs de distance sphérique plus faciles et plus précis depuis 5.7.
