Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Captulo 3
La manipulacin de los datos (LMD)
1. Introduccin
La manipulacin de los datos (LMD)
2. La seleccin de datos
El comando SELECT permite realizar consultas simples de forma rpida sin un
conocimiento profundo del lenguaje de programacin.
De todos modos, puede ser muy potente si se conocen todas las funciones y
todas las posibilidades del lenguaje. Se pueden realizar consultas complejas,
con numerosas tablas pero siempre hay que poner atencin al rendimiento
76 SQL
Los fundamentos del lenguaje
Si se hubieran querido todas las columnas y todas las filas de la tabla, el co-
mando habra sido este:
SELECT * FROM TELEFONO;
FECHA_ NUM_
NUMERO TIPO MARCA PRECIO COLOR
COMPRA PROPIETARIO
1 SP 1 15/01/10 159 190120 ROJO
2 SP 1 14/03/10 99 190215
3 CT 3 02/05/10 49 190001 NEGRO
4 DE 4 25/07/10 89 190222 BLANCO
5 IP 5 30/09/10 359 190561
La sintaxis es simple:
SELECT <columna 1>, <columna 2> ... | * FROM <tabla1>, <tabla2> ...
En la seccin La utilizacin de los alias de este captulo, veremos que para ha-
cer la lectura ms fcil podemos dar un alias a cada tabla. Este alias suele ser
simple y permite encontrar fcilmente la tabla. Por ejemplo, TEL para TELE-
FONO o TIP para TIPO_TEL.
Por defecto, en la ejecucin de un SELECT se recuperan todas las filas (la op-
cin ALL es automtica). Si se quiere suprimir los duplicados hay que aadir
la clusula DISTINCT.
La clusula DISTINCT se aplica a todas las columnas presentes en el coman-
do.
Ejemplo:
SELECT TIPO, MARCA, PRECIO FROM TELEFONO;
y
SELECT DISTINCT TIPO, MARCA, PRECIO FROM TELEFONO;
Los dos SELECT anteriores tienen el mismo resultado aunque haya un dupli-
cado en las dos primeras lneas. Las dos primeras columnas son iguales pero no
la tercera.
TIPO MARCA
SP 1
SP 1
CT 3
DE 4
IP 5
Si se aade la clusula DISTINCT, una de las filas que contienen 'SP' y '1' se
eliminar.
SELECT DISTINCT TIPO, MARCA FROM TELEFONO;
TIPO MARCA
SP 1
CT 3
DE 4
IP 5
Observacin
La clusula DISTINCT no se puede utilizar con operadores de agrupamiento
(ver GROUP BY). De hecho los operadores de tipo COUNT o SUM eliminan au-
tomticamente los duplicados.
En una consulta SQL que contenga varias tablas, es preferible asignar un dimi-
nutivo a cada nombre de tabla que se denomina alias. Siempre bajo la ptica
de hacer que las consultas sean ms legibles para todos los programadores.
Este alias se puede utilizar para un nombre de columna y tambin para un re-
sultado de una funcin o un SELECT anidado.
80 SQL
Los fundamentos del lenguaje
Cuando existen varias tablas, hay que dar un alias diferente para cada una de
las tablas:
SELECT TEL.FECHA_COMPRA,
TEL.MARCA,
MAR.DESC_MARCA
FROM TELEFONO TEL, MARCA_TEL MAR;