join

JOIN | Obtener datos de multiples tablas en Oracle

La sentencia JOIN en SQL permite combinar registros de dos o más tablas en una base de datos relacional. En el Lenguaje de Consultas Estructurado de Oracle (SQL) hay cinco tipos de JOINs: Natural JOIN, Self-join, Nonequijoins, Outer Join y Cross joins.

Matemáticamente, JOIN es composición relacional, la operación fundamental en el álgebra relacional, y, generalizando, es una función de composición.

Para entender como funciona la cláusula JOIN podemos ver el siguiente bloque de código

Podemos observar de forma reducida todos los tipos de JOINs que soporta una base de datos Oracle:

  • NATURAL JOIN une dos tablas basándose en las columnas que tengan el mismo nombre.
  • JOIN tabla2 USING nombre_columna realiza un equijoin basado en el nombre de columna que se especifica en la cláusula USING.
  • JOIN tabla2 ON tabla1.nombre_columna = tabla2.nombre_columna realiza un equijoin basado en la condición que se especifica en la cláusula ON.
  • LEFT / RIGHT / FULL OUTER son usados para realizar OUTER joins.
  • CROSS JOIN regresa un producto cartesiano de dos tablas.

(more…)

Consultas Jerárquicas

Consultas Jerárquicas en Oracle | Connect By Prior

Las consultas jerárquicas amplían la típica relación entre padres e hijos en una construcción de varias generaciones. En la típica relación entre padres e hijos, una tabla contendrá filas primarias, y otra tabla contendrá las filas secundarias. En otras palabras, sólo dos generaciones están representados.

Los datos jerárquicos tiene una estructura diferente para permitir la posibilidad de múltiples generaciones. En lugar de dos tablas separadas con una tabla primaria y una tabla secundaria, todos los datos se introducen en una sola tabla o estructura similar (como una vista), y las múltiples generaciones se definen sobre la base de los datos dentro de cada fila. El resultado es que podríamos tener padre-hijo-nieto-bisnieto, y así sucesivamente.

El ejemplo clásico de una jerarquía es un organigrama, en el que un CEO es el nivel superior, o el nodo raíz, y todo el mundo en la organización que reporta directamente al CEO es un registro hijo en el segundo nivel. Además, cada empleado que informa al segundo nivel es un nieto del nodo raíz y existe en el tercer nivel en relación con el nodo raíz, y así sucesivamente.

Consultas Jerárquicas

 

La primera muestra de nivel el director general, que sirve como el nodo raíz de esta jerarquía. El segundo nivel consiste en nodos que dependen del nodo raíz. Cada uno de ellos representa una rama en el árbol, en el que el director financiero termina su rama en particular, por lo que es un nodo hoja. Pero los otros dos nodos continúan Nivel 3, y así sucesivamente.

(more…)

Clausulas de limitación

Clausulas de limitación para ’SQL Row’ | Novedades Oracle 12c

En “Oracle Database 12c los mecanismos para limitar cantidad y modo de extracción de registros han tenido una mejora significativa, proveyéndonos de nuevas clausulas.

Podemos especificar la cantidad de registros a ser retornados utilizando las palabras claves: “FETCH”,”FIRST”,”NEXT”. También podemos especificar la cantidad de registros a ser retornados con la clausula “PERCENT”.

Con la clausula “OFFSET” podemos especificar la cantidad de registros deseados a partir del primer registro de un set de resultados complemento a la data que ya se ha obtenido.

Las consultas que generalmente utilizan este tipo de clausulas son conocidas como: “Top-N Queries”. Veamos un ejemplo práctico de esta característica:

(more…)

Auto_increment en Oracle

Auto_increment en Oracle | Novedades Oracle 12c

Al momento de pasarte a trabajar con la Base de Datos de Oracle una de las primeras cosas que siempre preguntan los programadores es como hacen el auto_increment en Oracle o el Identity (sql server). Anteriormente dicho procedimiento pasaba por crear una sequencia y posteriormente utilizarla en cualquier sentencia insert que realizaras sobre la tabla Read more…

Obtener nombre de archivo de una ruta en ORACLE

A continuation les explicaré como crear una función que retorne el nombre de un archivo pasandole como parámetro la ruta del mismo. Para esto crearan la siguiente función en base de datos View the code on Gist. Y la ejecutan de la siguiente manera: View the code on Gist.