1. Recuperación de Datos
Conceptos básicos
http://www.dosideas.com
Mayo de 2009 Dos Ideas - La visión de Sistemas desde el Desarrollo
2. Cláusula WHERE
Se pueden restringir las filas recuperadas usando la cláusula WHERE. Una
cláusula WHERE contiene una condición lógica, la cual usa operadores de
comparación. Las filas procesadas son aquellas en que los datos que
contienen satisfacen la/s condición/es lógicas.
4. Operadores de
Comparación
Like: No siempre se conoce el valor exacto a buscar. Se pueden seleccionar
filas que coincidan con un patrón de caracteres usando el operador LIKE.
5. Operadores de
Comparación
Is null, Is not null: testean valores nulos.
7. Cláusula ORDER BY
El orden de las filas recuperadas por el resultado de una consulta es indefinido.
Server no puede buscar y traer las filas en el mismo orden para una
consulta ejecutada dos veces. La cláusula ORDER BY puede ser utilizada
para ordenar las filas.
El orden por defecto es ascendente, entonces:
• Los valores numéricos se muestran con el valor más bajo en primer lugar,
por ejemplo 1 a 999.
• Los valores de fecha se muestran con el valor más temprano en primer
lugar, por ejemplo 01-01-1992 antes que 01-01-1995.
• Los valores de caracteres se muestran en orden alfabético, por ejemplo
primero la A y último la Z.
• Los valores nulos se muestran últimos en las secuencias ascendentes y
primeros en las secuencias descendentes.
8. Funciones condicionales
• NVL (expresión1, expresión2): evalúa la expresión expresión1, si la
misma es nula entonces devuelve expresión2, sino devuelve expresión1.
Esta función opera como un "traductor de valores nulos".
• DECODE (expresión, valor1, código1, ..., valorN, códigoN, default): evalúa
la expresión expresión, si la misma es igual a valor1, devuelve código1, si
es igual a valor2, devuelve código2, y así sucesivamente hasta comparar
expresión con valorN. Si no coincide con ninguna expresión representada
por los parámetros "valor", entonces devuelve default.
• CASE: Las expresiones CASE pueden clasificarse en dos tipos generales:
expresiones sencillas y expresiones de múltiples condiciones.
9. Funciones de Grupo
• Permiten obtener información agrupada que existe en una tabla,
perdiendo de esta manera el detalle de cada fila en particular.
• A excepción de la función COUNT(*), ignoran los valores nulos. Se puede
usar la función NVL, en el argumento de la función de grupo, para
sustituir un valor nulo por otro valor.
11. Cláusula GROUP BY
• Si se usa la cláusula GROUP BY en una sentencia SELECT, se dividen las
filas de una tabla o vista consultada en grupos. Si se omite la cláusula
GROUP BY, se aplican las funciones de grupo en la lista SELECT a todas
las filas en la tabla o vista consultada.
12. Cláusula HAVING
Se usa para restringir cuáles grupos de filas, definidas por la cláusula GROUP BY, son retornadas por la consulta. Se procesan las cláusulas WHERE, GROUP BY y HAVING de la siguiente
manera:
1.Si la sentencia contiene una cláusula WHERE, se remueven todas las filas que no la satisfacen.
2.Se calcula y da formato a los grupos como se especifica en la cláusula GROUP BY.
3.Server remueve todos los grupos que no satisfacen la cláusula HAVING.
Se deben especificar las cláusulas GROUP BY y HAVING después de la cláusula WHERE. Si se especifican ambas cláusulas (GROUP BY y HAVING), ellas pueden aparecer en cualquier
orden.
Las funciones de grupo pueden aparecer en la lista de la cláusula SELECT y en la cláusula HAVING.
14. Relaciones de Tablas
Se utilizan las restricciones de clave especificadas sobre las tablas a relacionar, para mantener la consistencia entre filas de las tablas. Informalmente, una restricción de integridad referencial
asevera que una fila en una tabla haciendo referencia a otra tabla debe referenciar a una fila existente en la tabla destino.
Una restricción de integridad referencial se establece a través de una clave foránea (explícita o implícita).
15. Relaciones de Tablas
Es necesario identificar columnas comunes que establezcan una relación entre las tablas.
En la cláusula WHERE, se define la relación entre las tablas que aparecen en la cláusula FROM utilizando operadores de comparación.
El operador más común para relacionar tablas es el operador de igualdad (=). Se denomina unión de igualdad si se relacionan dos tablas utilizando el operador de igualdad.
16. Relaciones de Tablas
Además de especificar la condición de unión en la cláusula WHERE, es posible especificar
otras condiciones para limitar las filas recuperadas. Tales uniones son denominadas
uniones complejas.
• Si múltiples tablas poseen los mismos nombres de columna, los nombres de
columna duplicados deben ser cualificados en la consulta con el nombre de
tabla.
17. Relaciones de Tablas
Si se utiliza cualquier otro operador para relacionar las tablas en la consulta, la misma es denominada unión de no igualdad.
18. Relaciones de Tablas
Una unión interna retorna sólo las filas coincidentes de ambas tablas. Existe un mecanismo denominado unión externa que retorna resultados basados en las filas no coincidentes de una o ambas tablas.
Escriba (+) al lado del nombre de columna de la tabla donde puede no existir una fila correspondiente. El operador de unión externa (+) puede aparecer únicamente en la cláusula WHERE de una sentencia SELECT.
19. Relaciones de Tablas
Una consulta de unión externa completa no puede escribirse en forma directa utilizando el operador de unión externa (+) . Una forma de escribir
una consulta de unión externa completa en sintaxis Oracle es a través del operador UNION.
20. Relaciones de Tablas
Una sentencia SELECT puede estar incluida en una cláusula de otra sentencia SQL. Lo llamamos sub-consulta.
La sub-consulta debe aparecer a la derecha del operador de comparación. Y debe estar encerrada entre paréntesis.
Las sub-consultas no pueden contener una cláusula ORDER BY Se puede tener una sola cláusula ORDER BY para una sentencia SELECT, y específicamente debe ser la última cláusula en la sentencia SELECT principal.
.
21. Relaciones de Tablas
Una sub-consulta de filas simples devuelve una sola fila desde la sentencia SELECT anidada. Este tipo de
sub-consulta utiliza un operador de fila simple.
• Las sub-consultas que devuelven más de una fila se denominan de filas
múltiples. Se debe usar un operador de filas múltiples, tal como IN, en
lugar de un operador de fila simple. Este operador espera uno o más
valores.