HeadlinesBriefing HeadlinesBriefing 12 languages

Recursive CTEs: SQL’s Hidden Graph Traversal Engine

Towards Data Science ·

🇬🇧 English

When developers face graph problems like hierarchies, route finding, or social networks, they often reach for Neo4j or NetworkX. But for operational data with thousands of nodes—supply chains, org charts, navigation paths—a relational database can handle most tasks. The key is Recursive Common Table Expressions (CTEs), a SQL standard feature from 1999 rarely used today.

CTEs are temporary result sets within SQL statements, making complex queries readable by breaking logic into named sections. Recursive CTEs extend this by referencing themselves to iteratively generate rows until no new data emerges, effectively performing breadth-first search.

This article demonstrates graph traversal, pathfinding, and cycle detection using only standard SQL. Examples work with Postgres, Oracle, MySQL, or SQLite, though syntax varies slightly. For massive billion-node graphs, specialized tools remain necessary, but most business graph problems fit comfortably in existing relational databases using Recursive CTEs.

View original article →


🇸🇦 العربية

CTEs التكرار: دليل تصفية الرسم البياني SQL

عندما يواجه المطورون مشاكل الرسم البياني مثل الهياكل الهرمي، أوبحث عن المسارات، أو الشبكات الاجتماعية، فإنهم ي-Core عادة إلى Neo4j أو NetworkX. ولكن للبيانات التشغيلية التي تحتوي علىآلاف الم nodes — سلاسل التوريد، مخططات المنظمة، مسارات التوجيه — قاعدة بياناتعلاقية يمكن معالجة معظم المهام. المفتاح هو جملCTEs المتكررة، وهي ميزة معيار SQL أدخلت في 1999 ونادرًا ما تُستخدم اليوم.

CTEs هي مجموعات نتائج مؤقتة داخل عبارات SQL، تجعل الاستفسارات المعقدة قابلة للقراءة عن طريق تجزئة المنطق إلى أجزاء مسمة. CTEs المتكررة تمتد هذا من خلال الإشارة إلى نفسها لتوليد الأصفاف تدريجيًا حتى لا يظهر جديد، مما يOOSE يPerform بحث اتساع.

يعرض هذا المقال تصفية الرسم البياني، والبحث عن المسارات، ولكشف الدوائر باستخدام SQL القياسي فقط. أمثلةعمل مع Postgres، Oracle، MySQL، أو SQLite، رغم أن قواعد الجمل تختلف قليلاً. للرسوم البيانية الضخمة التي تضم ملايير الم nodes، لا تزال الأدوات المتخصصة ضرورية، ولكن معظم مشاكل الرسم البياني التجاري تناسب بسهولة في قواعد البيانات العلاقية الحالية باستخدام CTEs المتكررة.

الكيانات الرئيسية: شركات: Neo4j، NetworkX، Postgres، Oracle، MySQL، SQLite

ما هي CTEs المتكررة في SQL؟

CTEs المتكررة هي ميزة معيار SQL تتيح تنفيذ الاستفسارات التكرارية عن طريق الإشارة إلى نفسها. تبدأ باستفسار ملحق، ثم ت الانضمام مكررًا لتوليد أصفاف جديدة حتى不再 ينتج، مما يجعلها مثالية لتصفح الرسم البياني، ملاة الهياكل الهرمي، والبحث عن المسارات داخل قواعد البيانات العلاقية.

العربية version →


🇧🇩 বাংলা

রিকার্সিভ CTE: SQL গ্রাফ ট্রাভার্সাল গাইড

যখন ডেভেলপাররা হাইরার্চি, রুট ফাইন্ডিং বা সোশ্যাল নেটওর্কের মতো গ্রাফ সমস্যার মুখোমুখি হন, তখন তারা প্রায়ই Neo4j বা NetworkX-এর দিকে ঝুঁকে পড়েন। কিন্তু হাজারো নোড সম্বলিত অপারেশনাল ডেটার — সাপ্লাই চেইন, অর্গানিজেশন চার্ট, নেভিগেশন পथ — একটি রিলেশনাল ডেটাবেস অধিকাংশ কাজ সামাল করতে পারে। চাবিটি হলো রিকার্সিভ কমন টেবল এক্সপ্রেশন (CTE), যা 1999-এ চালু হওয়া SQL স্ট্যান্ডার্ড ফিচার এবং আজকাল খুব কমই ব্যবহৃত হয়।

CTE হলো SQL স্টেটমেন্টের মধ্যে সাময়িক ফলাফলের সেট, যা লজিককে নামকরণ করা অংশে ভাগ করে জটিল ক্যুরিরকে পড়িবে করে। রিকার্সিভ CTE একে প্রসারিত করে নিজের উপর রেফারেন্স দিয়ে ইটারেটিভভাবে সারি তৈরি করতে, যেপর্যন্ত কোনো নতুন ডেটা না আসে — এভাবে এটি প্রস্থ প্রথম অনুসন্ধান সম্পাদন করে।

এই আর্টিকেল কেবল স্ট্যান্ডার্ড SQL ব্যবহার করে গ্রাফ ট্রাভার্সাল, পথ খুজে বের করা এবং সাইকল সনাক্ত করা দেখাচ্ছে। উদাহরणগুলো Postgres, Oracle, MySQL বা SQLite সঙ্গে কাজ করে, যদিও সিনট্যাক্স আল্পাদ্য ভাগ হয়। বিলিয়ন নোড বিশিষ্ট বিশাল গ্রাফের জন্য পৃথক টুল প্রয়োজন হতে পারে, কিন্তু বেশিরভাগ ব্যবসায়িক গ্রাফ সমস্যা রিলেশনাল ডেটাবেসের মধ্যে রিকার্সিভ CTE ব্যবহার করে সহজেই সমাধান হয়।

মূল সত্যাগতিক: প্রতিষ্ঠান: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

SQL এ রিকার্সিভ CTE কী?

রিকার্সিভ CTE হলো একটি SQL স্ট্যান্ডার্ড ফিচার যা নিজের উপর রেফারেন্স দিয়ে ইটারেটিভ ক্যুরি সম্পাদন করতে দেয়। এগুলো একটি অ্যাঙ্কর ক্যুরি দিয়ে শুরু হয়, তারপর নতুন সারি তৈরির জন্য পুনরায় যোগদান করে যতক্ষণ নতুন ডেটা না আসে — যা রিলেশনাল ডেটাবেসের মধ্যে গ্রাফ ট্রাভার্সাল, হাইরার্চি নেভিগেশন এবং পথ খুজে বের করার জন্য উপযুক্ত করে।

বাংলা version →


🇩🇪 Deutsch

Rekursive CTE: SQL-Graph-Traversierungsführ

Wenn Entwickler auf Graphprobleme wie Hierarchien, Routensuche oder soziale Netzwerke stoßen, greifen sie oft auf Neo4j oder NetworkX zurück. Für operative Daten mit Tausenden von Knoten — Lieferketten, Organigramme, Navigationsrouten — kann eine relationale Datenbank jedoch die meisten Aufgaben bewältigen. Der Schlüssel sind rekursive Common Table Expressions (CTE), eine 1999 eingeführte SQL-Standardfunktion, die heute selten verwendet wird.

CTE sind temporäre Ergebnismengen innerhalb von SQL-Anweisungen, die komplexe Abfragen lesbar machen, indem die Logik in benannte Abschnitte zerlegt wird. Rekursive CTE erweitern dies, indem sie sich selbst referenzieren, um Zeilen iterativ zu generieren, bis keine neuen Daten auftauchen, was einer Breitensuche entspricht.

Dieser Artikel demonstriert Graph-Traversierung, Pfadsuche und Zykelerkennung mit nur Standard SQL. Beispiele funktionieren mit Postgres, Oracle, MySQL oder SQLite,obei die Syntax leicht variiert. Für massiv große Graphen mit Milliarden von Knoten sind spezialisierte Werkzeuge immer noch erforderlich, aber die meisten Geschäftgraphprobleme lassen sich bequem in bestehenden relationalen Datenbanken mit rekursiven CTE lösen.

Schlüsselentitäten: Unternehmen: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

Was sind rekursive CTE in SQL?

Rekursive CTE sind eine SQL-Standardfunktion, die iterative Abfrageausführung ermöglicht, indem sie sich selbst referenzieren. Sie beginen mit einer Ankerabfrage, verbinden sich dann wiederholt, um neue Zeilen zu generieren, bis keine mehr produziert werden, was sie ideal für Graph-Traversierung, Hierarchienavigation und Pfadsuche in relationalen Datenbanken macht.

Deutsch version →


🇪🇸 Español

CTEs Recursivos: Guía de Traversal de Grafos SQL

Cuando los desarrolladores se enfrentan a problemas de grafos como jerarquías, búsqueda de rutas o redes sociales, suelen recurrir a Neo4j o NetworkX. Pero para datos operacionales con miles de nodos — cadenas de suministro, organigramas, rutas de navegación — una base de datos relacional puede manejar la mayoría de las tareas. La clave son las Expresiones Tabla Común Recursivas (CTEs), una característica estándar SQL introducida en 1999 que rara vez se usa hoy.

Los CTEs son conjuntos de resultados temporales dentro de declaraciones SQL, que hacen que las consultas complejas sean legibles al dividir la lógica en secciones nombradas. Los CTEs recursivos extienden esto al referirse a sí mismos para generar filas iterativamente hasta que no aparezcan nuevos datos, realizando efectivamente una búsqueda en anchura.

Este artículo demuestra la traversación de grafos, búsqueda de rutas y detección de ciclos usando solo SQL estándar. Los ejemplos funcionan con Postgres, Oracle, MySQL o SQLite, aunque la sintaxis varía ligeramente. Para grafos masivos de miles de millones de nodos, siguen siendo necesarias herramientas especializadas, pero la mayoría de problemas de grafos empresariales caben cómodamente en bases de datos relacionales existentes usando CTEs Recursivos.

Entidades Clave: Empresas: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

¿Qué son los CTEs Recursivos en SQL?

Los CTEs recursivos son una característica estándar SQL que permite la ejecución iterativa de consultas al referirse a sí mismos. Comienzan con una consulta ancla y luego se unen repetidamente para generar nuevas filas hasta que no se produzcan más, lo que los hace ideales para la traversación de grafos, navegación de jerarquías y búsqueda de rutas dentro de bases de datos relacionales.

Español version →


🇫🇷 Français

CTE récursives : Guide de parcours de graphes SQL

Lorsque les développeurs font face à des problèmes de graphes comme les hiérarchies, la recherche de chemins ou les réseaux sociaux, ils tendent à utiliser Neo4j ou NetworkX. Mais pour les données opérationnelles avec des milliers de nœuds — chaînes d'approvisionnement, organigrammes, chemins de navigation — une base de données relationnelle peut gérer la plupart des tâches. La clé sont les expressions de table commune récursive (CTE), une fonctionnalité standard SQL introduite en 1999 et rarement utilisée aujourd'hui.

Les CTE sont des ensembles de résultats temporaires dans les instructions SQL, rendant les requêtes complexes lisibles en divisant la logique en sections nommées. Les CTE récursives étendent cela en se référant à elles-mêmes pour générer itérativement des lignes jusqu'à ce qu'aucune nouvelle donnée n'apparaisse, effectuant ainsi une recherche en largeur.

Cet article démontre le parcours de graphes, la recherche de chemins et la détection de cycles en utilisant uniquement SQL standard. Les exemples fonctionnent avec Postgres, Oracle, MySQL ou SQLite, bien que la syntaxe varie légèrement. Pour les graphes massifs de milliards de nœuds, des outils spécialisés restent nécessaires, mais la plupart des problèmes de graphes commerciaux s'adaptent confortablement dans les bases de données relationnelles existantes en utilisant des CTE récursives.

Entités clés : Entreprises : Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

FAQ : Qu'est-ce que les CTE récursives en SQL ?

Les CTE récursives sont une fonctionnalité standard SQL qui permet l'exécution itérative de requêtes en se référant à elles-mêmes. Elles commencent par une requête ancre, puis se joignent répétitivement pour générer de nouvelles lignes jusqu'à ce qu'aucune plus ne soit produite, ce qui les rend idéales pour le parcours de graphes, la navigation hiérarchique et la recherche de chemins au sein des bases de données relationnelles.

Qu'est-ce que les CTE récursives en SQL ?

Les CTE récursives sont une fonctionnalité standard SQL qui permet l'exécution itérative de requêtes en se référant à elles-mêmes. Elles commencent par une requête ancre, puis se joignent répétitivement pour générer de nouvelles lignes jusqu'à ce qu'aucune plus ne soit produite, ce qui les rend idéales pour le parcours de graphes, la navigation hiérarchique et la recherche de chemins au sein des bases de données relationnelles.

Français version →


🇮🇳 हिन्दी

रिकर्सिव CTE: SQL ग्राफ ट्रैवर्सल गाइड

जब डेवलपर्स को हाइरार्ची, रूट फाइंडिंग या सोशल नेटवर्क जैसे ग्राफ समस्याओं का सामना करते हैं, तो वे अक्सर Neo4j या NetworkX की ओर झुकते हैं। लेकिन हजारों नोड्स वाले ऑपरेशनल डेटा — सप्लाई चेन, ऑर्ग चार्ट, नेविगेशन पथ — के लिए एक रिलेशनल डेटाबेस अधिकांश कामों को हैंडल कर सकता है। कुंजी रिकर्सिव कॉमन टेबल एक्सप्रेशंस (CTE) हैं, यह 1999 में शुरू की गई SQL स्टैंडर्ड फीचर है जिसका आज तक उपयोग बहुत कम हो रहा है।

CTE एसटीएल स्टेटमेंट्स में टेम्पोररी रिजल्ट सेट्स होते हैं, जो लॉजिक को नामित सेक्शन्स में तोड़कर कांप्लेक्स क्वेरीज को रीडेबल बनाते हैं। रिकर्सिव CTE इसे आगे बढ़ाते हैं क्योंकि वे खुद को रिफरेंस करते हैं और नए डेटा के आने बंद होने तक रिटर्न पदानुक्रम तक रोज करते हैं।

यह आर्टिकल केवल स्टैंडर्ड SQL का उपयोग करके ग्राफ ट्रैवर्सल, पथफाइंडिंग और साइकल डिटेक्शन दिखाता है। उदाहरण Postgres, Oracle, MySQL या SQLite के साथ काम करते हैं, हालांकि सिंटैक्स में थोड़ा अंतर हो सकता है। बिलियन नोड वाले बड़े ग्राफ के लिए अभी भी स्पेशलाइज्ड टूल्स की आवश्यकता होती है, लेकिन अधिकांश बिजनेस ग्राफ प्रॉब्लम रिलेशनल डेटाबेस में रिकर्सिव CTE के माध्यम से आसानी से हल हो जाते हैं।

प्रमुख इंटिटीज़: कंपनियां: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

SQL में रिकर्सिव CTE क्या हैं?

रिकर्सिव CTE एक SQL स्टैंडर्ड फीचर है जो खुद को रिफरेंस करके इटरेटिव क्वेरी एक्सक्यूशन एनेबल करते हैं। वे एक एंकर क्वेरी से शुरू होते हैं, फिर नए रोज जनरेट करने के लिए बार-बार जोड़ते हैं जब तक नए डेटा का स्रोत नहीं रहता, जिससे यह रिलेशनल डेटाबेस में ग्राफ ट्रैवर्सल, हाइरार्ची नेविगेशन और पथफाइंडिंग के लिए आदर्श बन जाते हैं।

हिन्दी version →


🇮🇩 Bahasa Indonesia

CTE Rekursif: Panduan Traversal Grafik SQL

Ketika pengembang menghadapi masalah grafik seperti hierarki, pencarian jalur, atau jaringan sosial, mereka sering beralih ke Neo4j atau NetworkX. Tetapi untuk data operasional dengan ribuan node — rantai pasokan, organisasi grafik, jalur navigasi — basis data relasional dapat menangani sebagian besar tugas. Kuncinya adalah Ekspresi Tabel Komum Rekursif (CTE), fitur standar SQL yang diperkenalkan pada tahun 1999 dan langka digunakan saat ini.

CTE adalah himpunan hasil sementara dalam pernyataan SQL, membuat query kompleks mudah dibaca dengan membagi logika menjadi bagian yang dinamai. CTE rekursif memperpanjang ini dengan merujuk pada diri sendiri untuk menghasilkan baris secara iteratif hingga tidak ada data baru muncul, yang berarti melakukan traversal breadth-first.

Artikel ini menunjukkan traversal grafik, pencarian jalur, dan deteksi siklus menggunakan hanya SQL standar. Contoh bekerja dengan Postgres, Oracle, MySQL, atau SQLite, meskipun sintaksis sedikit berbeda. Untuk grafik besar dengan miliaran node, alat khusus masih diperlukan, tetapi sebagian besar masalah grafik bisnis muat dengan nyaman dalam basis data relasional yang ada menggunakan CTE Rekursif.

Entitas Kunci: Perusahaan: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

Apa itu CTE Rekursif dalam SQL?

CTE Rekursif adalah fitur standar SQL yang memungkinkan eksekusi query secara iteratif dengan merujuk pada diri sendiri. Mereka mulai dengan query anchor, kemudian bergabung berulang kali untuk menghasilkan baris baru hingga tidak ada lagi yang dihasilkan, menjadikannya ideal untuk traversal grafik, navigasi hierarki, dan pencarian jalur dalam basis data relasional.

Bahasa Indonesia version →


🇯🇵 日本語

再帰CTE: SQLグラフトラバーサルガイド

開発者が階層、経路探索、ソーシャルネットワークなどのグラフ問題に直面したとき、Neo4jやNetworkXを頼りにすることが多い。しかし、サプライチェーン、組織図、ナビゲーション経路など、数千ノードからなる運用データでは、リレーショナルデータベースで大部分のタスクを処理できる。鍵は、1999年に標準化されたSQL標準機能である再帰型Common Table Expression(CTE)で、現在ではめずらしく使われていない。

CTEはSQL文内の一時的な結果セットで、ロジックを名前付きセクションに分割することで、複雑なクエリの可読性を高める。再帰CTEは、自分自身を参照して、新しいデータが生成されないまでに反復的に行を生成するため、実質的な幅優先探索を実現する。

本稿では、標準SQLのみを使用して、グラフトラバーサル、経路探索、サイクル検出を紹介する。例はPostgres、Oracle、MySQL、SQLiteで動作するが、構文は若干異なる。数十億ノード規模の巨大グラフでは依然として専用ツールが必要だが、大半のビジネスグラフ问题是、再帰CTEを使用して既存のリレーショナルデータベースで快適に解決できる。

主要エンティティ: 会社: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

SQLにおける再帰CTEとは?

再帰CTEは、自分自身を参照することで反復的なクエリ実行を可能にするSQL標準機能です。アンカーよう素クエリから始まり、繰り返し結合して新しい行を生成し、新しいデータが生じないまで続行します。これにより、リレーショナルデータベース内のグラフトラバーサル、階層ナビゲーション、経路探索に最適です。

日本語 version →


🇧🇷 Português

CTEs Recursivos: Guia de Traversal de Grafos SQL

Quando desenvolvedores enfrentam problemas de grafos como hierarquias, descoberta de rotas ou redes sociais, eles geralmente recorrem a Neo4j ou NetworkX. Mas para dados operacionais com milhares de nós — cadeias de suprimento, organogramas, rotas de navegação — um banco de dados relacional pode lidar com a maioria das tarefas. A chave são as Expressões de Tabela Comum Recursivas (CTE), uma funcionalidade padrão SQL introduzida em 1999 e raramente usada hoje.

CTEs são conjuntos de resultados temporários dentro de instruções SQL, tornando consultas complexas legíveis ao dividir a lógica em seções nomeadas. CTEs recursivas estendem isso ao se referirem a si mesmas para gerar linhas iterativamente até que novos dados não surjam, efetuando uma busca em largura.

Este artigo demonstra a traversão de grafos, descoberta de rotas e detecção de ciclos usando apenas SQL padrão. Exemplos funcionam com Postgres, Oracle, MySQL ou SQLite, embora a sintaxe varie ligeiramente. Para grafos massivos de bilhões de nós, ferramentas especializadas ainda são necessárias, mas a maioria dos problemas de grafos corporativos cabe confortavelmente em bancos de dados relacionais existentes usando CTEs Recursivos.

Entidades Chave: Empresas: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

O que são CTEs Recursivos em SQL?

CTEs recursivas são uma funcionalidade padrão SQL que permite a execução iterativa de consultas ao se referirem a si mesmas. Elas começam com uma consulta âncora, depois se unem repetidamente para gerar novas linhas até que não sejam mais produzidas, tornando-as ideais para traversão de grafos, navegação hierárquica e descoberta de rotas dentro de bancos de dados relacionais.

Português version →


🇷🇺 Русский

Рекурсивные CTE: Руководство по обходу графов SQL

Когда разработчики сталкиваются с проблемами графов, такими как иерархии, поиск путей или социальные сети, они часто обращаются к Neo4j или NetworkX. Но для операционных данных с тысячами узлов — цепочки поставок, организационные структуры, маршруты навигации — реляционная база данных может справиться с большинством задач. Ключом являются рекурсивные общие табличные выражения (CTE), стандартная функция SQL, введённая в 1999 году и редко используемая сегодня.

CTE — это временные наборы результатов внутри операторов SQL, что делает сложные запросы читаемыми, разбивая логику на именованные разделы. Рекурсивные CTE расширяют это, ссылаясь на самих себя для итеративного генерирования строк, пока не появятся новые данные, эффективно выполняя широкий обход.

В этой статье демонстрируется обход графов, поиск путей и обнаружение циклов с использованием только стандартного SQL. Примеры работают с Postgres, Oracle, MySQL или SQLite, хотя синтаксис незначительно отличается. Для масштабируемых графов с миллиардами узлов по-прежнему необходимы специализированные инструменты, но большинство бизнес-проблем с графами легко решаются в существующих реляционных базах данных с помощью рекурсивных CTE.

Ключевые сущности: Компании: Neo4j, NetworkX, Postgres, Oracle, MySQL, SQLite

Что такое рекурсивные CTE в SQL?

Рекурсивные CTE — это стандартная функция SQL, позволяющая итеративное выполнение запросов за счёт самоссылки. Они начинаются с якорного запроса, затем многократно соединяются для генерации новых строк, пока не прекратится их появление, что делает их идеальными для обхода графов, навигации по иерархиям и поиска путей в реляционных базах данных.

Русский version →


🇨🇳 简体中文

递归CTE:SQL图遍历指南

当开发者面对图问题(如层级结构、路径查找或社交网络)时,他们通常会转向Neo4j或NetworkX。但对于包含数千个节点的运营数据——如供应链、组织架构、导航路径——关系型数据库其实可以处理大多数任务。关键在于递归公共表表达式(Recursive CTEs),这是1999年引入的SQL标准功能,如今却很少被使用。

CTE是SQL语句中的临时结果集,通过将逻辑分解为命名部分,使复杂查询更易读。递归CTE通过引用自身来迭代生成行,直到没有新数据产生,从而实现广度优先搜索。

本文仅使用标准SQL演示图遍历、路径查找和环路检测。示例适用于Postgres、Oracle、MySQL或SQLite,尽管语法略有差异。对于数十亿节点的超大规模图,仍需专用工具,但大多数商业图问题均可通过递归CTE在现有关系型数据库中轻松解决。

关键实体:公司:Neo4j、NetworkX、Postgres、Oracle、MySQL、SQLite

FAQ:什么是SQL中的递归CTE?

递归CTE是SQL标准功能,通过引用自身实现迭代查询执行。它从一个锚点查询开始,然后反复连接生成新行,直到不再产生新行为止,非常适合在关系型数据库中进行图遍历、层级导航和路径查找。

什么是SQL中的递归CTE?

递归CTE是SQL标准功能,通过引用自身实现迭代查询执行。它从一个锚点查询开始,然后反复连接生成新行,直到不再产生新行为止,非常适合在关系型数据库中进行图遍历、层级导航和路径查找。

简体中文 version →