


Comment analyser les problèmes de sous-requêtes imbriquées dans Mysql
Sous-requête imbriquée MySQL
La sous-requête fait référence à une forme d'écriture dans laquelle plusieurs petites requêtes avec des fonctions différentes sont imbriquées dans une instruction de requête complète pour compléter des requêtes complexes ensemble afin de rendre la sous-requête plus claire pour le concept des lecteurs.
La sous-requête renvoie des résultats
Les types de données que les sous-requêtes peuvent renvoyer sont divisés en quatre types :
Une seule ligne et une seule colonne : ce qui est renvoyé est le contenu d'une colonne spécifique, qui peut être comprise comme un données à valeur unique ;
Ligne unique et colonnes multiples : renvoie le contenu de plusieurs colonnes dans une ligne de données
Lignes multiples et colonnes uniques : renvoie le contenu de la même colonne dans plusieurs lignes d'enregistrements ; équivaut à donner une plage de fonctionnement ;
Plusieurs lignes Plusieurs colonnes : Le résultat renvoyé par la requête est une table temporaire
Utiliser des sous-requêtes dans la clause WHERE
Traiter les sous-requêtes à une seule ligne et à une seule colonne ; , les sous-requêtes à plusieurs lignes et à une seule colonne, ainsi que les sous-requêtes à une seule ligne et à plusieurs colonnes dans la clause WHERE .
Sous-requête à une seule ligne et à une seule colonne
**Exemple 1, **Interroger les informations complètes de l'employé avec le salaire le plus bas de l'entreprise
--查询公司之中工资最低的雇员的完整信息 SELECT * FROM emp e WHERE e.sal=( SELECT MIN(sal) FROM emp);
**Exemple 2, **Interroger les informations de tous les employés dont le salaire de base le salaire est inférieur à ALLEN
-- 查询出基本工资比ALLEN低的全部雇员信息 SELECT * FROM emp e WHERE e.sal<( SELECT sal FROM emp WHERE ename='ALLEN' );
**Exemple 3, **Interrogez les informations de tous les employés dont le salaire de base est supérieur au salaire moyen de l'entreprise
--查询基本工资高于公司平均薪金的全部雇员信息 SELECT * FROM emp e WHERE e.sal>( SELECT AVG(sal) FROM emp);
Sous-requête à une seule ligne et multi-colonnes.
**Exemple 4, **Découvrez les informations de tous les employés qui ont le même emploi qu'ALLEN et dont le salaire de base est supérieur au numéro d'employé 7521,
--查找出与ALLEN从事同一工作,并且基本工资高于雇员编号为7521的全部雇员信息, SELECT * FROM emp e WHERE e.job=( SELECT job FROM emp WHERE ename='ALLEN') AND e.sal>( SELECT sal FROM emp WHERE empno=7521);
**Exemple 5, **Interrogez les informations de tous les employés qui ont le même emploi que SCOTT et ont le même salaire Informations sur les employés
SELECT * FROM emp e WHERE (e.job,e.sal) = ( SELECT job,sal FROM emp WHERE ename='SCOTT') AND ename<>'SCOTT';
**Exemple 6, **Rechercher les informations de tous les employés qui occupent le même emploi que l'employé 7566 et ont le même leadership
--查询与雇员7566从事同一工作且领导相同的全部雇员信息 SELECT * FROM emp e WHERE (e.job,e.mgr) =( SELECT job,mgr FROM emp WHERE empno=7566 );
**Exemple 7, **Interrogez tous les employés qui occupent le même poste qu'ALLEN et sont employés la même année Informations sur les employés (y compris ALLEN)
--查询与ALLEN从事同一工作且在同一年雇佣的全部雇员信息(包括ALLEN) SELECT * FROM emp e WHERE (e.job,to_char(e.hiredate,'yyyy'))=( SELECT job,to_char(hiredate,'YYYY') FROM emp WHERE ename='ALLEN' );
Sous-requête à colonne unique multi-lignes
Utilise principalement trois opérateurs : IN, ANY, ALL
EN opération
**Exemple 8, **Requête des informations relatives à chaque département Toutes les informations sur les employés ayant le même salaire minimum
--查询出与每个部门中最低工资相同的全部雇员信息 SELECT * FROM emp e WHERE e.sal IN( SELECT MIN(sal) FROM emp GROUP BY deptno );
**Exemple 9. **Requête sur toutes les informations sur les employés qui n'ont pas le même minimum salaire dans chaque département
--查询出不与每个部门中最低工资相同的全部雇员信息 SELECT * FROM emp e WHERE e.sal NOT IN( SELECT MIN(sal) FROM emp GROUP BY deptno );
Sous-requête FROM :
Source de données suivant la clause FROM Non seulement une table de données, il peut également s'agir d'un résultat de requête Il s'agit d'une sous-requête FROM
Habituellement, le type de retour d'une sous-requête FROM est. un ensemble de résultats multi-lignes et multi-colonnesjavascript
Interrogez les titres d'emploi avec un salaire moyen supérieur à 2 000 et Le salaire moyen de ce poste java
第一种方式:能够使用HAVING字句实现 SELECT job,AVG(sal) FROM emp GROUP BY job HAVING AVG(sal)>2000; 第二种方式:使用FROM子查询 SELECT job,avgsal FROM ( SELECT job,AVG(sal) AS avgsal FROM emp GROUP BY job) temp WHERE temp.avgsal>2000;
Interrogez les informations des employés qui ont des commissions et dont le salaire est supérieur à commission : web
SELECT e1.empno,e1.ename,e1.comm,e2.sal FROM emp e1,emp e2 WHERE e1.comm IS NOT NULL AND e1.comm<e2.sal AND e1.empno=e2.empno;
Résumé :
1.FROM La source de données de la sous-requête est le résultat d'une autre requête. Le résultat est équivalent à une table de données temporaire
2. Un alias doit être défini pour la sous-requête
.3. Si vous souhaitez utiliser les champs dans la sous-requête, vous devez utiliser la méthode "alias.field name" pour référencer
select sous-requête
La sous-requête après la sélection ne peut être utilisée que comme une requête scalaire
#. Cas : Recherchez le nombre d'employés dans chaque département
SELECT d.*,( SELECT COUNT(*) FROM employees WHERE employees.`department_id`=d.department_id ) FROM departments d;
#Case : Recherchez le nom du département avec le numéro d'employé = 102
SELECT department_name FROM employees e INNER JOIN departments d ON e.`department_id`=d.`department_id` WHERE e.`employee_id`=102;
Utilisez la sous-requête
SELECT ( SELECT department_name FROM employees e INNER JOIN departments d ON e.`department_id`=d.`department_id` WHERE e.`employee_id`=102 ); `department_id`=d.`department_id` WHERE e.`employee_id`=102;
Utilisez la sous-requête
SELECT ( SELECT department_name FROM employees e INNER JOIN departments d ON e.`department_id`=d.`department_id` WHERE e.`employee_id`=102 );
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

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

L'installation de MySQL sur CENTOS implique les étapes suivantes: Ajout de la source MySQL YUM appropriée. Exécutez la commande YUM Install MySQL-Server pour installer le serveur MySQL. Utilisez la commande mysql_secure_installation pour créer des paramètres de sécurité, tels que la définition du mot de passe de l'utilisateur racine. Personnalisez le fichier de configuration MySQL selon les besoins. Écoutez les paramètres MySQL et optimisez les bases de données pour les performances.
