SELECT: Seleccionar registros



Generalidades
Es una instrucción que nos va a permitir obetener un listado de registros específicos, en la cual se pueden indicar los campos que deseamos visualizar, también se puede discriminar los registros que nos interesen mediante filtros y por último se puede indicar el orden de los mismos.

Veamos la sintáxis más básica de la instucción SELECT con su estructura principal:

SELECT * FROM nombre_de_tabla

La ejecución de esta consulta nos va a devolver como resultado todos los registros de la tabla que indiquemos luego de la cláusula FROM la cual recordemos se utiliza para simplemente indicar la procedencia de esos registros.

El asterísco indica que queremos visualizar todos los campos de la tabla, pero si deseáramos solamente algunos debemos indicarlos, separados por coma ( , ) en lugar del asterísco:

SELECT id, nombre, ocupacion as empleo FROM nombre_de_tabla

Como vemos en el ejemplo además de la lista de 3 campos separados por la coma, el último campo de nombre original 'ocupacion' posee lo que se llama Alias que viene siendo un renombramiento que realizamos el cual puede tener diferentes usos que veremos en otro momento.

Filtros
Antes hablábamos de filtros, veamos el más común es el WHERE y se utiliza luego de la cláusula FROM y el nombre de la tabla:

SELECT * FROM nombre_de_tabla WHERE id < 100

En este ejemplo la consulta nos va a devolver como resultado los registros que cumplan con la condición de tener su campo de nombre "id" menor que 100.

Los filtros pueden ser uno solo como en este caso o combinaciones de filtros como por ejemplo:

SELECT * FROM nombre_de_tabla WHERE id < 100 AND nombre <> 'Administrador '

En este ejemplo la consulta nos va a devolver los registros que cumplan con la condición de tener su campo de nombre "id" menor que 100 y además que el campo nombre sea distinto de 'Administrador', es decir ambas condiciones, si en lugar del operador AND utilizáramos el operador OR, el resultado sería los registros que cumplan alguna de las dos condiciones opcionalmente por separado, o una o la otra.

Si quisiéramos combinar ambos operadores debemos tener en cuenta que todas las condiciones que serán opcionales, separadas por el operador OR deberán estar encerradas entre paréntesis:
SELECT * FROM nombre_de_tabla WHERE id < 100 AND (nombre = 'Administrador ' OR nombre = 'Juan' OR nombre = 'Pedro')

En consecuencia esta consulta nos devolverá los registros que de nombre sean 'Administrador', 'Juan' o bien 'Pedro' y a su vez su id sea menor que 100

Ordenar
Con todos estos ejemplos bien claros solo nos resta la última característica de una instucción SELECT que sería el ordenamiento del resultado, el mismo se realiza con la cláusula ORDER BY y ésta se coloca sobre el final de la consulta:

SELECT * FROM nombre_de_tabla WHERE id < 100 ORDER BY id ASC
SELECT * FROM nombre_de_tabla WHERE id < 100 ORDER BY id DESC

En el primer caso tendremos todos los registros de id menor a 100, ordenados de manera ascendente, en el segundo ejemplo serán ordenados de forma descendente, mientras que si omitimos el parámetro ASC ó DESC, y solamente colocamos ORDER BY y el ó los campos que deseamos sean criterio de ordenamiento, éste se realizará de manera ascendente por defecto.
Si además de un campo como en este caso el 'id', también quisiéramos ordenar por el campo 'nombre' deberíamos separar ambos campos con coma ( , ) y así todos los campos que quisiéramos incluir en el criterio de ordenamiento:
SELECT * FROM nombre_de_tabla WHERE id < 100 ORDER BY id DESC, nombre, ocupacion DESC

En este caso se ordenará en primer término por 'id' y de manera descendente, luego por el campo 'nombre' y como no tiene indicada la forma, se hará en manera ascendente para luego cumplir un tercer orden por el campo 'ocupacion' y de manera descendente; cabe aclarar que los ordenamientos sufren la jerarquía de izquierda a derecha, es decir que prevalecen primero los que se enceuntren más cerca de la cláusula ORDER BY.
 
 



Búsquedas más frecuentes
Lenguaje SQL