Curso Gratis SQL . Lección 3 – Consutas SQL I (Sencillas)

 

Consultas  SQL sencillas 
Devolver todos los campos de una tabla (SELECT *)
SELECT *
FROM CLIENTES
Con el * indicamos que queremos devolver todos los campos. Si CLIENTES dispone de los
campos idCliente, nombre y descripcion,
lo anterior sería equivalente a:
SELECT idCliente, nombre, descripcion
FROM CLIENTES
Obviamente, al querer todos los campos, esto es
innecesario y es por tanto más conveniente
emplear el asterisco (*). También sería equivalente
emplear la notación completa:
SELECT CLIENTES.idCliente, CLIENTES.nombre, CLIENTES.descripcion
FROM CLIENTES
Al tener únicamente una tabla involucrada, podemos
referirnos a los campos sin calificar, dado
que no hay duda de a qué tabla se refiere. Cuando veamos
consultas sobre varias tablas
comprenderemos la necesidad de incluir esta notación
calificada (TABLA.campo).

 

Devolver un subconjunto de los campos de una tabla (SELECT DISTINCT)
SELECT cp, ciudad
FROM DIRECCION
Esta consulta devolverá únicamente los campos cp
(código postal) y ciudad de la tabla
DIRECCION. Al tener un subconjunto de los campos, éstos
no tienen por qué incluir a la clave
de la tabla, por lo que no tienen por qué ser únicos.
Así, si tenemos muchos registros referidos
a distintas calles y números de ese mismo código postal y
ciudad, nos encontraremos muchos
registros repetidos. Esto puede evitarse haciendo:
SELECT DISTINCT cp, ciudad
FROM CLIENTES
Así se eliminan los registros repetidos, devolviendo
únicamente una vez cada par cp, ciudad.
Esta selección de un subconjunto de los datos de la tabla
y excluyendo repetidos se denomina
en álgebra relacional proyección.

 

Devolver un subconjunto de los registros de una tabla (WHERE)
SELECT numero, calle
FROM DIRECCION
WHERE ciudad = ‘Sevilla’
Esta consulta devolvería el número y la dirección de todas
las direcciones pertenecientes a la
ciudad de Sevilla. Como vemos, con WHERE indicamos la
condición que deben cumplir los
registros de la tabla para ser devueltos en la consulta.
En este caso tenemos una condición
simple dada por la comparación de igualdad (=) entre al campo (ciudad) y un literal de tipo
cadena, entre comillas simples (‘Sevilla’).
SELECT calle, ciudad
FROM DIRECCION
WHERE numero = 12
Esta otra consulta devolvería la calle y ciudad de todos
los registros de la tabla con el número
12, en este caso un literal numérico. Las condiciones
empleadas pueden ser mucho más
complejas incluyendo otro tipo de operadores y
combinaciones de los mismos. 

 

Operadores relacionales
Al margen del signo de igualdad empleado anteriormente,
se pueden usar n las condiciones
simples de las consultas los operadores relacionales
habituales, devolviendo siempre un valor
booleano (lógico):
Operador Significado
<   Menor que
> Mayor que
<> Distinto de
<= Menor ó Igual que
>= Mayor ó Igual que
=   Igual que
SELECT nombre
FROM CLIENTES
WHERE edad <= 32
Adicionalmente, disponemos de operadores de comparación
adicionales, también devolviendo
valores booleanos (lógicos) True o False según si se
cumplen o no las condiciones:

 

BETWEEN: para indicar un intervalo de valores.
SELECT nombre
FROM CLIENTES
WHERE edad BETWEEN 20 AND 35
LIKE: empleado para comparar patrones de texto pudiendo incluir comodines como los
siguientes:
Comodín
Descripción
%
 
SELECT num, calle, cp
FROM DIRECCION
WHERE ciudad LIKE ‘Val%’
Esta consulta devolvería los datos de las direcciones de
toda ciudad que comience por Val y
siga por cualquier número de caracteres, incluyendo cero
caracteres. Por ejemplo, Valladolid o
Valencia. En el enlace anterior sobre
patrones de texto podemos practicar directamente desde
la web.
IN: empleado para comparar con una lista de valores fijados
de modo que devuelva True si el
campo indicado pertenece a la lista.
SELECT num, calle, direccion
FROM DIRECCION
WHERE ciudad IN (‘Sevilla’, ’Córdoba’, ‘Huelva’, ‘Cádiz’)