Table des matières
Comment Oracle interroge-t-il récursivement les nœuds enfants
Maison base de données Oracle Comment interroger de manière récursive les nœuds enfants dans Oracle

Comment interroger de manière récursive les nœuds enfants dans Oracle

Jan 25, 2022 pm 02:38 PM
oracle

Dans Oracle, vous pouvez utiliser l'instruction select pour interroger de manière récursive les nœuds enfants. La fonction de cette instruction est d'effectuer une requête simple sur les données de la table. La syntaxe est "SELECT * FROM table name START WITH condition 1 CONNECT BY PRIOR condition 2. OÙ état 3".

Comment interroger de manière récursive les nœuds enfants dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Comment Oracle interroge-t-il récursivement les nœuds enfants

Structure grammaticale

SELECT ... FROM    + 表名  START WITH + 条件1 CONNECT BY PRIOR + 条件2  WHERE  + 条件3

Condition 1 : il s'agit d'une instruction de qualification pour le nœud racine. Bien sûr, les conditions de qualification peuvent être assouplies pour obtenir plusieurs nœuds racines, c'est-à-dire plusieurs arbres ; dans la relation de connexion, en plus des colonnes, les expressions de colonnes sont également autorisées. La clause START WITH est facultative et est utilisée pour identifier le nœud utilisé comme nœud racine de l'arborescence de recherche. Si cette clause est omise, cela signifie que toutes les lignes qui satisfont aux conditions de requête sont utilisées comme nœuds racine.

Condition 2 : Il s'agit d'une condition de connexion, dans laquelle PRIOR est utilisé pour représenter l'enregistrement précédent, par exemple, CONNECT BY PRIOR STUDENT_ID = GRADE_ID, ce qui signifie que le STUDENT_ID de l'enregistrement précédent est le GRADE_ID de cet enregistrement, c'est-à-dire , le père de cet enregistrement est l'enregistrement précédent. La clause CONNECT BY indique que chaque ligne de données sera récupérée dans un ordre hiérarchique et spécifie que les données de la table seront connectées dans une relation arborescente. L'opérateur PRIOR doit être placé devant l'une des deux colonnes de la relation de jointure. Pour les relations parent-enfant entre nœuds, l'opérateur PRIOR représente le nœud parent d'un côté et le nœud enfant de l'autre côté, déterminant ainsi si l'ordre dans lequel la structure arborescente est recherchée est descendant ou ascendant.

Condition 3 : Il s'agit d'une condition de filtrage, utilisée pour filtrer les enregistrements renvoyés.

Remarque :

1. CONNECT BY PRIOR est utilisé dans les requêtes structurées

2 La fonction de START WITH... CONNECT BY PRIOR... est de stocker une structure arborescente à l'intérieur et à l'extérieur d'une table.

Traversez vers le nœud racine à travers les nœuds enfants.

select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid

Traversez les nœuds enfants via le nœud racine (à l'exclusion du nœud racine).

select * from persons.dept start with paredeptid=0 connect by prior deptid=paredeptid

Traversez les nœuds enfants via le nœud racine (y compris le nœud racine).

select * from persons.dept start with deptid=0 connect by prior deptid=paredeptid

Peut être transmis via le mot-clé de niveau Rechercher le niveau.

select a.*,level from persons.dept a start with paredeptid=0 connect by prior deptid=paredeptid

Remarque :

commencez par... connectez-vous par utilisation, ce qui suit commence par est la graine récursive.

La graine de récursion est l'endroit où commence la récursion. Le "prior" après la connexion. Par défaut : seule la ligne de départ qui remplit les conditions peut être interrogée, et aucune requête récursive ne sera effectuée

Les champs placés après la connexion ; par prior Il est pertinent et indique la direction de la requête.

Exercice : Obtenez le nœud supérieur via les nœuds enfants

select FIRST_VALUE(deptid) OVER (ORDER BY LEVEL DESC ROWS UNBOUNDED PRECEDING) AS firstdeptid from persons.dept start with deptid=76 connect by prior paredeptid=deptid

Structure de la table

DEPTID PAREDEPTID NAME
NUMBER NUMBER CHAR (40 Byte)

ID du département Identifiant du département parent (ID du département) Nom du département

Tutoriel recommandé : "Tutoriel vidéo Oracle"

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.

Stock Market GPT

Stock Market GPT

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

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)

Comment se connecter au pool de connexions de la base de données Oracle à l'aide de JDBC Comment se connecter au pool de connexions de la base de données Oracle à l'aide de JDBC Jun 04, 2025 pm 10:15 PM

Les étapes pour se connecter à un pool de connexions de base de données Oracle à l'aide de JDBC incluent: 1) Configurer le pool de connexion, 2) Obtenez la connexion à partir du pool de connexion, 3) Effectuer des opérations SQL et 4) Fermez les ressources. Utilisez OracleUCP pour gérer efficacement les connexions et améliorer les performances.

Utilisation de l'intégration de la base de données Oracle avec Hadoop dans un environnement Big Data Utilisation de l'intégration de la base de données Oracle avec Hadoop dans un environnement Big Data Jun 04, 2025 pm 10:24 PM

La raison principale de l'intégration des bases de données Oracle avec Hadoop est de tirer parti des puissantes capacités de gestion des données et de transaction d'Oracle, ainsi que des capacités de stockage et d'analyse de données à grande échelle de Hadoop. Les méthodes d'intégration comprennent: 1. Exporter les données d'OracleBigDataconnector à Hadoop; 2. Utilisez Apachesqoop pour la transmission des données; 3. Lisez les données Hadoop directement via la fonction de table externe d'Oracle; 4. Utilisez OracleGoldEngate pour obtenir la synchronisation des données.

Comment faire Oracle sans prendre une certaine valeur de champ Comment faire Oracle sans prendre une certaine valeur de champ Jun 04, 2025 pm 10:21 PM

Dans la base de données Oracle, si vous souhaitez ne pas renvoyer la valeur d'un certain champ lors de la demande, vous pouvez utiliser les trois méthodes suivantes: Énumérez uniquement les champs requis dans l'instruction SELECT et ne sélectionnez pas les champs indésirables. Créez des vues pour simplifier les requêtes, mais faites attention aux coûts de complexité et de maintenance des vues. L'exclusion des colonnes indésirables à l'aide de sous-requêtes ou de jointures est adaptée à l'exclusion dynamique des colonnes, mais peut affecter les performances de la requête. Chaque méthode a ses scénarios applicables et ses inconvénients potentiels, et la méthode la plus appropriée doit être sélectionnée en fonction des besoins spécifiques et des considérations de performance.

Qu'est-ce que le réseau cloud impossible (ICNT)? Comment? Une introduction complète au projet ICN que Binance lancera bientôt Qu'est-ce que le réseau cloud impossible (ICNT)? Comment? Une introduction complète au projet ICN que Binance lancera bientôt Jul 07, 2025 pm 07:06 PM

Contenu 1. Qu'est-ce que ICN? 2. ICNT Dernières mises à jour 3. Comparaison et modèle économique entre ICN et d'autres projets Depin et modèles économiques 4. Conclusion de la prochaine étape de la piste Depin fin mai, ICN (ImpossibleCloudNetwork) @icn_protocol a annoncé qu'elle avait reçu un investissement stratégique dans NGPCapital avec une évaluation de nous 470 millions de dollars. La première réaction de nombreuses personnes a été: "Xiaomi a-t-elle investi dans web3?" Bien que ce ne soit pas la décision directe de Lei Jun, celle qui a parié sur Xiaomi, l'hélium et la charge de travail

Quelles sont les différences entre les structures de base de données physiques et logiques dans Oracle? Quelles sont les différences entre les structures de base de données physiques et logiques dans Oracle? Jun 10, 2025 am 12:01 AM

La structure logique de la base de données Oracle se concentre sur la façon dont les données sont organisées par les utilisateurs et les développeurs, y compris les tables, les vues, les modèles et les espaces de table; La structure physique implique le stockage réel des données sur le disque, y compris les fichiers de données, les journaux de rétablissement, les fichiers de contrôle, etc. 1. La structure logique comprend des tables, des vues, des index, des modèles et des espaces de table, qui déterminent comment les utilisateurs accèdent aux données; 2. La structure physique est constituée de fichiers de données, de réductivité, de fichiers de contrôle et de journaux d'archives, qui sont responsables de la persistance et de la récupération des données; 3. L'espace de table est un pont clé reliant la logique et la physique, et sa capacité est limitée par les fichiers de données sous-jacents; 4. Différents rôles ont différents niveaux d'attention, les développeurs se concentrent sur l'optimisation de la logique et DBA accorde plus d'attention à la gestion physique; 5. Comprendre les différences entre les deux peut aider à résoudre efficacement les problèmes, optimiser les performances et une gestion raisonnable

Comment créer un nouveau nom d'utilisateur et mot de passe dans Oracle Comment créer un nouveau nom d'utilisateur et mot de passe dans Oracle Jun 04, 2025 pm 10:18 PM

Créez un nouveau nom d'utilisateur et mot de passe dans la base de données Oracle à l'aide de l'instruction CreateUser. 1. Créez un utilisateur et définissez le mot de passe: CreateUserNew_UserIdentifiedByPassword123; 2. Attribuer des autorisations: GrantConnect, ResourceToneW_User; 3. Set Space Quota: alterUserNew_Userquota100MonUsers; 4. Sélectionnez l'espace de table approprié pour optimiser les performances; 5. Définissez la politique d'expiration du mot de passe: alterUserNew_UserPasswordExpire pour améliorer la sécurité.

Quel est le but des espaces de table temporaires dans Oracle? Quel est le but des espaces de table temporaires dans Oracle? Jun 27, 2025 am 12:58 AM

TEMPORARYTABLESSEMENTSInORACLAISUSEDSTOSTORETEMPORARYDATADURINGSQLOPERATIONSLIKESORTING, HASHING, ANDGLOBALTEMPORARYTABLES.1) TROPEURSURATIONSSORDYBY, GROUPBY, ORDISTINDMAYREQUIREDISKSEFPACEIFMEMORYSISINSUFSICT.2) HAUSHJOINSONRGEDATASETSETSETESTEMPORARY

Comment afficher le taux d'utilisation du processeur du plan d'exécution d'Oracle Comment afficher le taux d'utilisation du processeur du plan d'exécution d'Oracle Jun 04, 2025 pm 10:12 PM

Dans la base de données Oracle, l'utilisation du CPU du plan d'exécution peut être visualisée via l'instruction ExplicationPlan et le package DBMS_XPLAN. Les étapes spécifiques incluent: 1. Exécutez la requête et générez le plan d'exécution: ExplicationPlanForsElectFromePloyeeswheredPartment_id = 10; 2. Utilisez le package DBMS_XPLAN pour afficher le plan d'exécution: selectFromTable (dbms_xplan.display); 3. Afficher les informations détaillées dans tous les formats: SELECT * FROMTABLE (DBMS_XPLAN.DISPlay (format = & gt

See all articles