La sentencia SELECT en SQL es la sentencia utilizada para recuperar y extraer datos de una base de datos. Además se puede utilizar en combinación con otras sentencias para formar consultas complejas que permiten seleccionar, filtrar y ordenar los datos de una base de datos de acuerdo a diferentes criterios.
La sintaxis básica de la sentencia SELECT en SQL es la siguiente,
SELECT [lista de campos]
FROM [nombre de la tabla]
[WHERE [condición]]
[ORDER BY [campo] [ASC|DESC]]
- SELECT. Indicamos los campos que queremos mostrar, separados por comas.
- FROM. Señalamos el nombre de la tabla donde se encuentran los campos.
En este primer ejemplo, seleccionamos las columnas que deseamos de la tabla de Base de Datos. Una opción que nos permite el SQL es poner un alias a una columna de BBDD. Pondremos en nombre a la columna de la siguiente forma.
SELECT campo1 AS alias1
FROM TABLE [nombre de la tabla];
Otra opción es hacer un SELECT ALL o poniendo en su lugar un asterisco. Lo que significa que seleccionaremos todos las columnas de la tabla elegida.
SELECT *
FROM TABLE [nombre de la tabla];
Con el asterisco (*) nosotros obtenemos todas las columnas de un registro de nuestra base de datos.
Condiciones SELECT en SQL
A la sentencia principal podemos añadir una serie de condiciones, que nos ayudaran a definir a la hora de manipular nuestra selección de datos.
- WHERE. Se utiliza para filtrar los resultados de una consulta. Esta cláusula nos permite especificar una condición que deben cumplir los datos que queremos recuperar, de manera que solo se devuelvan aquellos que cumplan con la condición especificada.
- GROUP BY. Se utiliza para agrupar los resultados de una consulta según uno o más campos. Nos permite agrupar los datos recuperados por una consulta según un campo o un conjunto de campos, de manera que podamos obtener estadísticas o información agregada sobre los datos.
- HAVING. Esta cláusula se utiliza junto con la cláusula GROUP BY para filtrar los resultados de una consulta que ha sido agrupada. Para utilizarla, debemos especificar la condición que queremos aplicar a la consulta agrupada, seguida de la palabra clave HAVING
- ORDER BY. Se utiliza para ordenar los resultados de una consulta, de forma ascendente (por defecto) o descendiente (DESC). Esta cláusula nos permite especificar el campo o campos por los que queremos ordenar los resultados de la consulta, de manera que se devuelvan en un orden determinado.
Por ejemplo, si queremos recuperar el nombre y la edad de todos los clientes mayores de 18 años de la tabla «clientes», podríamos utilizar el siguiente comando,
SELECT nombre, edad
FROM clientes
WHERE edad >= 18;
Por ejemplo, si queremos obtener el número de clientes por ciudad de la tabla «clientes», podríamos utilizar el siguiente comando,
SELECT ciudad, COUNT(*) AS num_clientes
FROM clientes
GROUP BY ciudad;
Por ejemplo, si queremos obtener el número de clientes por ciudad de la tabla «clientes» que tengan más de 10 clientes, podríamos utilizar el siguiente comando,
SELECT ciudad, COUNT(*)
FROM clientes
GROUP BY ciudad
HAVING COUNT(*) > 10;