Tutorial SQL – Filtrando registros en la Consulta


Tutorial Java

Cómo lo hacen en Java

A menudo tendras que filtrar los registros consultados de la Base de Datos, utilizando diferentes condiciones.

El lenguaje SQL cuenta con la clausula WHERE para cumplir con dicho objetivo.

Una mala práctica en que han caido muchos programadores al desarrollar sus aplicaciones, es recuperar siempre todos los registros de la base de datos, y luego localmente en el cliente hacer los filtros necesarios para mostrar sólamente los deseados.

Realizar tus aplicaciones de esta forma, ocasionará mucho desperdicio de recursos, no sólo de la Red, sino también de la Base de Datos, pues lo sobrecargará innecesariamente, sin mencionar que tu sistema funcionará con una performance muy deficiente.

Ten en cuenta esta información importante:

Lo ideal es que recuperes los datos, con la sentencia SQL, tal cual como deseas mostrar en el JTable’s o en los Informes. Inclusive si hay columnas que resultan de cálculos u operaciones complejas, siempre es mejor utilizar toda la potencia del SQL.

A continuación te muestro algunos ejemplos de la clausula WHERE para nuestra Base de Datos de Ejemplo de Biblioteca.

La Clausula SQL-WHERE 

La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas en la cláusula FROM aparecerán en los resultados de la instrucción SELECT.

Depués de escribir esta cláusula se deben especificar las condiciones con la cual sólamente los registros que cumplan dicha condición serán recuperados.

Si no se emplea esta cláusula, la consulta devolverá todas las filas de la tabla. WHERE es opcional, pero cuando aparece debe ir a continuación de FROM.

Ejemplos:

SELECT * FROM libros WHERE lib_cantidad > 10;

Recupera todos los campos de los libros cuya existencia supere a las 10 unidades.

SELECT lib_descripcion FROM libros WHERE lib_edicion = 1;

Recupera sólo la descripción de los libros que sean de la Primera Edición.

SELECT lib_codigo FROM libros WHERE lib_observacion != ”;

Recupera sólo el código de los libros que tengan observación, observa que para comparar el valor de vacío se ha utilizado el operador “!=” (diferente), seguido de un inicio y fin de apostrofe (comilla simple.)

Operadores AND y OR

La Clausula AND puede utilizarse en la condicional de la Clausula WHERE cuando existan más de una condición a considrar y se desea que ambas sean se cumplan obligatoriamente para recuperar los registros, ejemplo:

SELECT lib_descripcion FROM libros WHERE lib_cantidad < 5 AND lib_edicion = 1;

Recupera la descripción de los libros que sean de la Primera Edición, cuya existencia esté por debajo de 5 unidades. Es decir, se recuperarán los registros, si, y solo si se cumplen ambas condiciones.

La clausula OR en cambio posee mayor sensibilidad en el filtro, pues recupera el registro al cumplirse una de las dos condiciones, cualquiera de ellas.

SELECT lib_descripcion, lib_observacion FROM libros WHERE lib_cantidad = 5 AND lib_observacion = ”;

En el ejemplo de arriba se van a recuperar el campo Descripción y Observación de los libros, si la cantidad es igual a 5 o si la observación sea vacia. Al cumplir cualquiera de las dos condiciones, o ambas, el registro será recuperado.

El operador AND y OR puede ser utilizada con más de dos condiciones, además las condiciones puedes agrupar con parentesis, para indicar cual expresión será evaluada primero, por ejemplo como si fuera una formula matemática:

(A>B AND B>C) OR (C>D)

Desde luego que hay más operadores que puedes utilizar en la clausula WHERE, estas las estaré preparando y publicando más adelante.

Cualquier problema que tengas, por favor hazmelo saber, escribe tus dudas o comentarios abajo que yo mismo estaré contestando.

Te envio un saludo.

Marcos Jara.

Esta entrada fue publicada en Tutorial SQL- Ejemplos prácticos y etiquetada , , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s