2.5. Consultas a una base de datos relacional

Para hacer consultas sobre una tabla con el SQL es preciso utilizar la sentencia SELECT FROM, que tiene el siguiente formato: 

 

SELECT nombre_columna_a_seleccionar [[AS] col_renombrada]
[,nombre_columna_a_seleccionar [[AS] col_renombrada]...]
FROM tabla_a_consultar [[AS] tabla_renombrada];

La opción AS nos permite renombrar las columnas que queremos seleccionar o las tablas que queremos consultar que en este caso, es sólo una. Dicho de otro modo, nos permite la definición de alias. Fijémonos en que la palabra clave AS es opcional, y es bastante habitual poner sólo un espacio en blanco en lugar de toda la palabra.

 Consultas a BDUOC

A continuación presentamos un ejemplo de consulta a la base de datos BDUOC para conocer todos los datos que aparece en la tabla clientes: 

SELECT *
FROM clientes;

 

El * después de SELECT indicaque queremos ver todos los atributos que aparecen en la tabla.


La respuesta a esta consulta sería:

codigo_cli nombre_cli          nif            direccion ciudad telefono

10 EGICSA 38.567.893-C Aragón 11 Barcelona NULL
20 CME 38.123.898-E Valencia 22 Girona 972.23.57.67
30 ACME 36.432.127-A Mallorca 33 Lleida 973.23.45.67
40 JGM 38.782.345-B Rosellon 44 Tarragona 977.33.71.43

 

Si hubiésemos querido ver sólo el código, el nombre, la dirección y la ciudad, habríamos hecho:

SELECT codigo_cli, nombre_cli, direccion, ciudad
FROM clientes;

Y habríamos obtenido la respuesta siguiente:

codigo_cli nombre_cli direccion ciudad

10 EGICSA Aragón 11 Barcelona
20 CME Valencia 22 Girona
30 ACME Mallorca 33 Lleida
40 JGM Rosellon 44 Tarragona

 

 Con la sentencia SELECT FROM podemos seleccionar columnas de una tabla, pero para seleccionar filas de una tabla es preciso añadirle la cláusula WHERE. El formato es:

SELECT nombre_columnas_a_seleccionar
FROM tabla_a_consultar
WHERE condiciones;

La cláusula WHERE nos permite obtener las filas que cumplen la condición especificada en la consulta.

 

codigo_emple
2
4
7

Consultas a BDUOC seleccionando filas

Veamos un ejemplo en el que pedimos “los códigos de los empleados que trabajan en el proyecto número 4”:

SELECT codigo_empl
FROM empleados
WHERE num_proyec = 4;

La respuesta a esta consulta sería la que podéis ver en el margen. 

Para definir las condiciones en la cláusula WHERE, podemos utilizar alguno de los operadores de los que dispone el SQL, que son los siguientes:

 

operadores de comparación
= Igual
< Menor
> Mayor
<= Menor o igual
>= Mayor o igual
<> Diferente

 

 

Operadores lógicos
NOT Para la negación de condiciones
AND Para la conjunción de conciciones
OR Para la  disyunción de condiciones

 

 Si queremos que en una consulta nos aparezcan las filas resultantes sin repeticiones, es preciso poner la palabra clave DISTINCT inmediatamente después de SELECT. También podríamos explicitar que lo queremos todo, incluso con repeticiones, poniendo ALL (opción por defecto) en lugar de DISTINCT. El formato de DISTINCT es:

SELECT DISTINCT nombre_columnas_a_seleccionar
FROM tabla_a_consultar
[WHERE condiciones];
sueldo
30.000
40.000
70.000
90.000
100.000

Consulta a BDUOC seleccionando filas sin repeticiones

Por ejemplo, si quisiéramos ver qué sueldos se están pagando en nuestra empresa, podríamos hacer:

SELECT DISTINCT sueldo
FROM empleados;

La respuesta a esta consulta, sin repeticiones, sería la que aparece en el margen.