Curso SQL Gratis . Lección 3 – Consutas 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 idClientenombre 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 cpciudad.
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’)


Checa el primer tutorial :  Lección 1 – Bases de datos Relacionales

Checa el segundo tutorial :  Lección 2 – Comandos SQL Básicos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Más info

aceptar