国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Qu'est-ce que CTE?
Syntaxe de base de CTE
La différence entre le CTE et la sous-requête
Utilisez un CTE récursif pour traiter les données hiérarchiques
Suggestions d'application pratiques
Maison base de données tutoriel mysql En utilisant des expressions de table communes (CTES) dans MySQL 8

En utilisant des expressions de table communes (CTES) dans MySQL 8

Jul 12, 2025 am 02:23 AM
mysql CTE

Les CTES sont une caractéristique introduite par MySQL 8.0 pour améliorer la lisibilité et le maintien des requêtes complexes. 1. CTE est un ensemble de résultats temporaire, qui n'est valable que dans la requête actuelle, a une structure claire et prend en charge les références en double; 2. Comparé aux sous-requêtes, le CTE est plus lisible, réutilisable et prend en charge la récursivité; 3. Le CTE récursif peut traiter les données hiérarchiques, telles que la structure organisationnelle, qui doit inclure des requêtes initiales et des pièces de récursivité; 4. Les suggestions d'utilisation incluent l'évitement de l'abus, la dénomination des spécifications, la concentration sur les performances et les méthodes de débogage.

En utilisant des expressions de table communes (CTES) dans MySQL 8

CTES (Expressions de table communes) est une caractéristique très pratique introduite par MySQL 8.0. Il rend des requêtes complexes plus claires et plus lisibles. Si vous avez écrit SQL avec des sous-requêtes imbriquées ou des tables dérivées multicouches auparavant, vous constaterez que la structure est rafra?chissante et plus facile à entretenir après avoir utilisé CTE.

En utilisant des expressions de table communes (CTES) dans MySQL 8

Qu'est-ce que CTE?

CTE est un ensemble de résultats temporaire que vous pouvez définir dans une requête et le référencer dans les requêtes suivantes comme l'utilisation d'un tableau normal. Il n'existe que lors de l'exécution actuelle de la requête et ne sera pas persisté dans la base de données.

En utilisant des expressions de table communes (CTES) dans MySQL 8

Donnons un exemple simple: vous souhaitez découvrir les employés avec le salaire le plus élevé de chaque département. Si vous n'utilisez pas de CTE, vous devrez peut-être écrire plusieurs sous-requêtes pour les nid, qui sont logiquement contournées. Si vous utilisez CTE, vous pouvez d'abord utiliser le "salaire maximum pour chaque département" comme résultat intermédiaire, puis associer le tableau des employés pour filtrer les données.

 Avec des maxsalaires comme (
    Sélectionnez Department_id, Max (salaire) comme max_salary
    Des employés
    Groupe par département_id
)
Sélectionner e. *
Des employés e
Rejoignez les maxsalaries MS
Sur E.Department_ID = MS.DEPARTMENT_ID et E.SALARY = MS.MAX_SALARY;

Cela semble-t-il plus intuitif? Et vous pouvez également définir plusieurs CTES dans une requête et les utiliser en combinaison à la demande.

En utilisant des expressions de table communes (CTES) dans MySQL 8

Syntaxe de base de CTE

La structure du CTE est très claire, à commencer par WITH puis le nom que vous avez donné à cet ensemble de résultats temporaire, suivi de l'instruction de requête entre parenthèses. Après cela, vous pouvez utiliser ce nom à plusieurs reprises dans cette portée de la requête.

Le format est le suivant:

 Avec cte_name [(colonnen_list)] comme (
    - déclaration de requête)
- la requête principale qui utilise le CTE dans le suivant

Quelques notes:

  • CTE peut avoir des noms de colonnes et, s'il n'est pas spécifié, il sera automatiquement récupéré à partir de la requête par défaut.
  • S'il y a plusieurs CTE, ils peuvent être séparés par des virgules et définis en séquence.
  • Le CTE n'est valable que dans la requête actuelle et ne peut pas être réutilisé dans les requêtes.

La différence entre le CTE et la sous-requête

Beaucoup de gens demanderont: quelle est la différence entre le CTE et la sous-requête? En fait, ils sont très similaires dans la fonctionnalité, mais CTE présente plus d'avantages dans la lisibilité et la réutilisabilité.

Articles de comparaison Sous-requête Cte
Clarté structurelle Difficile à lire lorsqu'il est imbriqué Plus facile à diviser et à comprendre
Réutilisé Gênant, besoin de copier et coller Peut être cité plusieurs fois
Soutien récursif Non pris en charge Soutenir le CTE récursif (à discuter plus tard)

Par exemple, si vous souhaitez utiliser le "résumé de vente pour un certain mois" à plusieurs endroits, vous devez l'écrire plusieurs fois avec des sous-requêtes, et vous pouvez l'appeler plusieurs fois avec CTE tant que vous le définissez une fois.


Utilisez un CTE récursif pour traiter les données hiérarchiques

MySQL 8.0 prend également en charge le CTE récursif , qui est très adapté au traitement des structures d'arbres ou des données hiérarchiques, telles que les structures organisationnelles, les répertoires de classification, les cha?nes de réponse de commentaires, etc.

Supposons que vous ayez une table employees qui contient l'ID d'employé et l'ID de gestionnaire supérieur. Si vous voulez trouver tous les subordonnés sous un certain chef, le CTE récursif sera utile.

L'exemple de code est le suivant:

 Avec des subordonnés récursifs comme (
    Sélectionnez Employee_ID, Manager_id, nom
    Des employés
    Où manager_id = 100 - condition initiale: trouvez le syndicat subordonné direct TOUS

    Sélectionnez E.Eemployee_ID, E.Manager_id, E.Name
    Des employés e
    INTER JOIN SUBORDATIONS S sur e.manager_id = s.employee_id
)
Sélectionner * dans les subordonnés;

Ce code sélectionne d'abord les subordonnés directs, puis trouve constamment des subordonnés de manière récursive de ces personnes jusqu'à ce qu'il n'y ait plus d'enregistrements. Le c?ur du CTE récursif est deux parties:

  • Requête initiale (pièce non réécursive)
  • Partie récursive, connectée via UNION ALL

Il convient de noter que la récursivité ne peut pas se poursuivre indéfiniment, sinon une erreur sera signalée. Vous pouvez contr?ler la profondeur de récursivité maximale en définissant cte_max_recursion_depth .


Suggestions d'application pratiques

Le CTE est puissant, mais il y a quelques conseils et précautions lorsque vous l'utilisez:

  • N'abusez pas de CTE : tous les scénarios ne conviennent pas à l'utilisation du CTE. Il n'est pas nécessaire de le diviser en CTE dans des requêtes simples, ce qui augmentera la complexité.
  • Spécification de dénomination : donnez au CTE un nom significatif, tel que TopCustomers ou RecentOrders , pour aider les autres à comprendre votre logique.
  • Problèmes de performance : le CTE n'améliore pas nécessairement les performances, c'est plus comme un package logique. Si vous êtes sensible aux performances, il est préférable de l'analyser en combinaison avec l'index et le plan d'exécution.
  • Méthode de débogage : Vous voulez voir les résultats intermédiaires du CTE? Vous pouvez écrire directement CTE SELECT * FROM cte_name pour un débogage facile.

Fondamentalement, c'est tout. Le CTE est une partie très pratique du SQL moderne, en particulier lors de la rédaction de requêtes complexes, ce qui peut vous aider à clarifier vos idées et à améliorer la lisibilité. Vous n'y êtes peut-être pas habitué au début, mais une fois que vous avez commencé, vous constaterez que l'expérience de l'écriture SQL est vraiment différente.

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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Sujets chauds

Tutoriel PHP
1502
276
Comment utiliser PHP pour développer une plate-forme communautaire Q&A explication détaillée du modèle de monétisation communautaire interactive PHP Comment utiliser PHP pour développer une plate-forme communautaire Q&A explication détaillée du modèle de monétisation communautaire interactive PHP Jul 23, 2025 pm 07:21 PM

1. Le premier choix pour la combinaison Laravel Mysql Vue / React dans la communauté de questions et réponses de développement PHP est le premier choix pour la combinaison Laravel Mysql Vue / React, en raison de sa maturité dans l'écosystème et de l'efficacité de développement élevée; 2. Les performances élevées nécessitent une dépendance à la cache (redis), une optimisation de la base de données, des files d'attente CDN et asynchrones; 3. La sécurité doit être effectuée avec le filtrage d'entrée, la protection CSRF, les HTTP, le cryptage de mot de passe et le contr?le d'autorisation; 4. Publicité facultative, abonnement aux membres, récompenses, commissions, paiement des connaissances et autres modèles, le noyau est de faire correspondre le ton communautaire et les besoins des utilisateurs.

Comment définir des variables d'environnement dans l'environnement PHP Description de l'ajout de variables d'environnement de course PHP Comment définir des variables d'environnement dans l'environnement PHP Description de l'ajout de variables d'environnement de course PHP Jul 25, 2025 pm 08:33 PM

Il existe trois fa?ons principales de définir des variables d'environnement dans PHP: 1. Configuration globale via Php.ini; 2. Passé via un serveur Web (tel que setenv d'Apache ou Fastcgi_param de Nginx); 3. Utilisez la fonction PUTENV () dans les scripts PHP. Parmi eux, PHP.ini convient aux configurations globales et modifiées, la configuration du serveur Web convient aux scénarios qui doivent être isolés et PUTENV () convient aux variables temporaires. Les stratégies de persistance incluent des fichiers de configuration (tels que PHP.ini ou la configuration du serveur Web), les fichiers .env sont chargés de bibliothèque Dotenv et l'injection dynamique de variables dans les processus CI / CD. Les informations sensibles à la gestion de la sécurité doivent être évitées à code dur et il est recommandé de l'utiliser.

Comment utiliser PHP pour développer l'algorithme de recommandation de recommandation de produit et l'analyse du comportement des utilisateurs Comment utiliser PHP pour développer l'algorithme de recommandation de recommandation de produit et l'analyse du comportement des utilisateurs Jul 23, 2025 pm 07:00 PM

Pour collecter les données de comportement des utilisateurs, vous devez enregistrer la navigation, la recherche, l'achat et d'autres informations dans la base de données via PHP et les nettoyer et les analyser pour explorer les préférences d'intérêt; 2. La sélection des algorithmes de recommandation doit être déterminée sur la base des caractéristiques des données: en fonction du contenu, du filtrage collaboratif, des règles ou des recommandations mitigées; 3. Le filtrage collaboratif peut être mis en ?uvre en PHP pour calculer la similitude du cosinus des utilisateurs, sélectionner K voisins les plus proches, les scores de prédiction pondérés et recommander des produits à haut score; 4. L'évaluation des performances utilise la précision, le rappel, la valeur F1 et le CTR, le taux de conversion et vérifier l'effet par le biais de tests A / B; 5. Les problèmes de démarrage à froid peuvent être atténués par des attributs de produits, des informations d'enregistrement des utilisateurs, des recommandations populaires et des évaluations d'experts; 6. Les méthodes d'optimisation des performances comprennent les résultats de recommandation en cache, le traitement asynchrone, l'informatique distribuée et l'optimisation des requêtes SQL, améliorant ainsi l'efficacité des recommandations et l'expérience utilisateur.

Automatisation des déploiements MySQL avec infrastructure comme code Automatisation des déploiements MySQL avec infrastructure comme code Jul 20, 2025 am 01:49 AM

Pour réaliser l'automatisation du déploiement MySQL, la clé est d'utiliser Terraform pour définir les ressources, la configuration de gestion anible, le GIT pour le contr?le de version et le renforcement de la gestion de la sécurité et de l'autorisation. 1. Utilisez Terraform pour définir les instances MySQL, telles que la version, le type, le contr?le d'accès et d'autres attributs de ressources d'AWSRD; 2. Utilisez ANSIBLEPLAYBOOK pour réaliser des configurations détaillées telles que la création d'utilisateurs de base de données, les paramètres d'autorisation, etc.; 3. Tous les fichiers de configuration sont inclus dans la gestion GIT, le suivi du changement de support et le développement collaboratif; 4. évitez les informations sensibles à code dur, utilisez Vault ou ANSIBLEVAULT pour gérer les mots de passe et définissez les principes de contr?le d'accès et d'autorisation minimale.

Sécuriser les connexions MySQL avec le cryptage SSL / TLS Sécuriser les connexions MySQL avec le cryptage SSL / TLS Jul 21, 2025 am 02:08 AM

Pourquoi ai-je besoin de la connexion MySQL de cryptage SSL / TLS? étant donné que les connexions non cryptées peuvent provoquer l'interception des données sensibles, l'activation de SSL / TLS peut empêcher les attaques de l'homme au milieu et répondre aux exigences de conformité; 2. Comment configurer SSL / TLS pour MySQL? Vous devez générer un certificat et une clé privée, modifier le fichier de configuration pour spécifier les chemins SSL-CA, SSL-CERT et SSL-Key et redémarrer le service; 3. Comment forcer SSL lorsque le client se connecte? Implémenté en spécifiant les exigences ou requirex509 lors de la création d'un utilisateur; 4. Les détails qui sont facilement négligés dans la configuration SSL incluent les autorisations de chemin de certificat, les problèmes d'expiration des certificats et les exigences de configuration du client.

Comment développer un système de forme intelligente AI avec PHP PHP PHP Intelligent Form Design and Analysis Comment développer un système de forme intelligente AI avec PHP PHP PHP Intelligent Form Design and Analysis Jul 25, 2025 pm 05:54 PM

Lorsque vous choisissez un cadre PHP approprié, vous devez considérer de manière approfondie en fonction des besoins du projet: Laravel convient au développement rapide et fournit des moteurs de modèle éloquente et de lame, qui sont pratiques pour le fonctionnement de la base de données et le rendu de formulaire dynamique; Symfony est plus flexible et adapté aux systèmes complexes; Codeigniter est léger et adapté à des applications simples avec des exigences de performance élevées. 2. Pour assurer la précision des modèles d'IA, nous devons commencer avec une formation de données de haute qualité, une sélection raisonnable des indicateurs d'évaluation (tels que la précision, le rappel, la valeur F1), l'évaluation régulière des performances et le réglage du modèle, et assurer la qualité du code grace aux tests unitaires et aux tests d'intégration, tout en surveillant continuellement les données d'entrée pour empêcher la dérive des données. 3. De nombreuses mesures sont nécessaires pour protéger la confidentialité des utilisateurs: crypter et stocker des données sensibles (comme AES

Comment créer un robot de service client en ligne avec PHP. Technologie de mise en ?uvre du service client intelligent PHP Intelligent Comment créer un robot de service client en ligne avec PHP. Technologie de mise en ?uvre du service client intelligent PHP Intelligent Jul 25, 2025 pm 06:57 PM

PHP joue le r?le du connecteur et du Brain Center dans le service client intelligent, responsable de la connexion des entrées frontales, du stockage de la base de données et des services d'IA externes; 2. Lors de la mise en ?uvre, il est nécessaire de créer une architecture multicouche: le front-end re?oit des messages utilisateur, les demandes de prétraitements et de routes de PHP, correspondent d'abord à la base de connaissances locale et manque, appelez des services AI externes tels que Openai ou DialogFlow pour obtenir une réponse intelligente; 3. La gestion de session est écrite à MySQL et à d'autres bases de données par PHP pour assurer la continuité du contexte; 4. Les services d'IA intégrés doivent utiliser Guzzle pour envoyer des demandes HTTP, stocker en toute sécurité les apikeys et faire un bon travail de gestion des erreurs et d'analyse de réponse; 5. La conception de la base de données doit inclure des sessions, des messages, des bases de connaissances et des tables d'utilisateurs, de créer raisonnablement des index, d'assurer la sécurité et les performances et de prendre en charge la mémoire du robot

Comment faire du support de conteneur PHP Construction automatique? Méthode de configuration CI intégrée en continu de l'environnement PHP Comment faire du support de conteneur PHP Construction automatique? Méthode de configuration CI intégrée en continu de l'environnement PHP Jul 25, 2025 pm 08:54 PM

Pour permettre aux conteneurs PHP de prendre en charge la construction automatique, le noyau réside dans la configuration du processus d'intégration continue (CI). 1. Utilisez Dockerfile pour définir l'environnement PHP, y compris l'image de base, l'installation d'extension, la gestion de la dépendance et les paramètres d'autorisation; 2. Configurez des outils CI / CD tels que GitLabci et définissez les étapes de construction, de test et de déploiement via le fichier .gitlab-ci.yml pour réaliser une construction, un test et un déploiement automatique; 3. Intégrer des cadres de test tels que PHPUnit pour s'assurer que les tests sont automatiquement exécutés après les modifications du code; 4. Utiliser des stratégies de déploiement automatisées telles que Kubernetes pour définir la configuration de déploiement via le fichier de déploiement.yaml; 5. Optimiser Dockerfile et adopter une construction en plusieurs étapes

See all articles