Académique Documents
Professionnel Documents
Culture Documents
www.grupoassa.com
Condiciones WHERE
Operadores
La tabla de abajo muestra una lista de operaciones que Open SQL acepta en condiciones
WHERE:
Operador
=, <, >, <=, <=, <>
EQ, LT, GT, LE, GE, NE
Significado y Uso
Comparacin con un solo valor.
Comparacin con una lista de valores individuales
IN seltab
IS [NOT] NULL
AND, OR
Negacin de una expresin lgica.
NOT
El siguiente diagrama muestra un ejemplo de una bsqueda compleja:
www.grupoassa.com
Cuando hay condiciones enlazadas, los operadores AND son evaluados antes que los
operadores OR. Este orden puede ser alterado colocando parntesis.
www.grupoassa.com
Advertencia: Los campos comparados deben tener el mismo tipo bsico y longitud
(idealmente, que estn basados en el mismo dominio).
MAX( col )
SUM( col )
AVG( col )
www.grupoassa.com
www.grupoassa.com
www.grupoassa.com
www.grupoassa.com
www.grupoassa.com
Si no se usa una adicin, el sistema ordena en orden ascendente. Se pueden usar las
adiciones opcionales DESCENDING y ASCENDING luego de un campo determinado para
definir la direccin del ordenamiento.
Nota: El ordenamiento puede ser un proceso caro (en ciclos y tiempo) para la base de
datos si el resultado es grande y los campos de ordenamiento no coinciden con los
campos usados en el ndice de la base de datos.
10
www.grupoassa.com
Como puede ser necesario leer datos adicionales para los datos de las tablas
secundarias, no hay lmite a la profundidad del anidamiento.
Por una serie de razones, los SELECTs anidados son el mtodo que ms memoria
consume para leer mltiples bases de datos, y deben ser evitados siempre que sea
posible. Provocan una carga alta en la base de datos y en la red.
En esta leccin, aprender distintas tcnicas que le permitirn evitar por completo los
SELECTs anidados, o al menos reducir su impacto negativo en la performance del
sistema.
11
www.grupoassa.com
Se puede derivar la lgica del INNER JOIN y el OUTER JOIN de los conjuntos de datos que
se pretenden obtener como resultado.
Un INNER JOIN corresponde al resultado que slo considera los registros de la tabla
exterior para los cuales existen registros adecuados en la tabla interior (la de la izquierda
en el ejemplo de arriba).
Un LEFT OUTER JOIN corresponde al resultado que contiene todos los registros de la
tabla exterior, sin considerar si existen registros adecuados en la tabla interior. Si no
existen registros adecuados en la tabla interior, los campos de la tabla exterior en
registros correspondientes a la tabla interior son puestos a cero en el resultado.
Las tablas involucradas en un JOIN son llamadas tablas base. El resultado de un JOIN
puede ser una proyeccin (seleccin de columnas) o una seleccin (seleccin de lneas).
Restricciones para el Outer Join
Slo se puede tener una tabla o una vista a la derecha del operador JOIN, nunca
otra expresin JOIN.
Slo AND puede ser usado como operador lgico en una condicin ON.
Cada comparacin en la condicin ON debe contener un campo de la tabla de la
derecha.
12
www.grupoassa.com
13
www.grupoassa.com
El contenido de la tabla interna (tabla conductora) es usado como una restriccin para el
acceso a la base de datos.
Advertencia: Si usa FOR ALL ENTRIES, tiene que asegurarse de que la tabla interna es
NO vaca. Si la tabla interna est vaca, no provee una condicin lmite a la sentencia
SELECT, y es leda la tabla de base de datos completa. Esto puede causar tiempos de
ejecucin muy largos para la sentencia.
Por otra parte, si se desea leer grandes volmenes de datos, slo en casos excepcionales
se debera usar FOR ALL ENTRIES.
14
www.grupoassa.com