Una consulta recursiva es una característica poderosa que nos permite consultar datos jerárquicos que se utilizan en bases de datos relacionales. Son una operación compuesta que ayuda a acumular registros cada vez hasta que una repetición no cambia el resultado.
Las consultas recursivas son útiles para crear un árbol jerárquico, lo mejor es trabajar con datos jerárquicos, como organigramas para la lista de materiales, gráficos transversales o para generar conjuntos de filas arbitrarios. Esto implica unir un conjunto consigo mismo un número arbitrario de veces. Una consulta recursiva generalmente se define por la parte ancla y la parte recursiva.
Las uniones recursivas a veces también se denominan «uniones de punto fijo». Se utilizan para obtener los datos padre-hijo. En SQL, las uniones recursivas se implementan con expresiones de tablas comunes recursivas. La expresión de tabla común recursiva (CTE) es una forma de hacer referencia a una consulta una y otra vez.
Ahora entendemos la unión recursiva en SQL usando un ejemplo.
Paso 1: Primero creamos una base de datos de empleados, donde la expresión de tabla común de la empresa para su identificación de empleado, nombre de empleado, edad de empleado.
Consulta:
CREATE TABLE employees ( id serial, name varchar(20), age int );
Paso 2: en este paso, inserte valores en una tabla de empleados.
Consulta:
INSERT INTO employees VALUES (1, 'Ankit', 32); INSERT INTO employees VALUES (2, 'Ayush', 31); INSERT INTO employees VALUES (3, 'Piyush', 42); INSERT INTO employees VALUES (4, 'Ramesh', 31); INSERT INTO employees VALUES (5, 'Rohan', 29); INSERT INTO employees VALUES (6, 'Harry', 28); INSERT INTO employees VALUES (7, 'Rohit', 32); INSERT INTO employees VALUES (8, 'Gogi', 32); INSERT INTO employees VALUES (9, 'Tapu', 33); INSERT INTO employees VALUES (10, 'Sonu', 40);
Paso 3: Una declaración que proporciona todos los informes que se acumulan en una determinada organización dentro de la empresa. Un CTE se define mediante una instrucción WITH, seguida de una definición de expresión de tabla. El comando AS se usa para cambiar el nombre de una columna o tabla con un alias. Un CTE recursivo debe contener una instrucción UNION y ser recursivo.
Consulta:
WITH RECURSIVE managertree AS ( SELECT id, name, age FROM employees WHERE id = 1 UNION ALL SELECT e.id, e.name, e.age FROM employees e INNER JOIN managertree mtree ON mtree.id = e.age )
Paso 4: para verificar los datos de unión recursiva, usamos la siguiente consulta.
Consulta:
SELECT * FROM managertree;
Producción:
Publicación traducida automáticamente
Artículo escrito por ayushcoding100 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA