Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Consultas
Si pl
Simples
Objetivo
j
•Empezaremos por estudiar la sentencia SELECT,
que permite recuperar datos de una o varias
tablas. La sentencia SELECT es con mucho la
más compleja y potente de las sentencias SQL.
Empezaremos por ver las consultas más
simples, basadas en una sola tabla.
•Esta
Esta sentencia forma parte del DML (lenguaje de
manipulación de datos), en este tema veremos
cómo seleccionar columnas de una tabla, cómo
seleccionar filas y cómo obtener las filas
ordenadas por el criterio que queramos.
•El resultado de la consulta es una tabla lógica
lógica,
porque no se guarda en el disco sino que está en
memoria y cada vez que ejecutamos la consulta
se vuelve
l a calcular.
l l
Sintaxis de la sentencia
SELECT (consultas simples)
La tabla origen
g - FROM -
• Con la cláusula FROM indicamos en qué tabla
tiene q
que buscar la información. En este
capítulo de consultas simples el resultado se
obtiene de una única tabla. La sintaxis de la
cláusula
lá l es:
La lista
L li t de
d columnas
l que queremos que
aparezcan en el resultado es lo que
llamamos lista de selección y se
especifica
espec ca delante
de a te de la
accláusula
áusu a FROM.
O
Selección de columnas.
Utilización del *
Se utiliza el asterisco * en la lista de selección para indicar
'todas las columnas de la tabla'.
Ti
Tiene dos
d ventajas:
t j
o bien
FROM empleados;
Lista el nombre,
nombre mes y año del contrato de cada
vendedor.
La función MONTH() devuelve el mes de una fecha
La función YEAR() devuelve el año de una fecha
SELECT numoficina, 'tiene ventas de ', ventas
FROM oficinas;
Listar las ventas en cada oficina con el formato:
22 tiene ventas de 186
186,042.00
042 00 €
Ordenación de las filas - ORDER BY -
Para ordenar las filas del resultado de la
consulta tenemos la cláusula ORDER BY
consulta, BY.
Con esta cláusula se altera el orden de
visualización de las filas de la tabla pero en
ningún caso se modifica el orden de las filas
dentro de la tabla. La tabla no se modifica.
Ordenación de las filas - ORDER BY -
Podemos indicar la columna por la que
queremos ordenar utilizando su nombre de
columna (nbcolumna) o utilizando su
número de orden que ocupa en la lista de
selección (Nºcolumna).
( )
SELECT nombre, oficina, fcontrato SELECT nombre, oficina, fcontrato
FROM empleados FROM empleados
ORDER BY oficina ORDER BY 2
Lista
Li t llas oficinas
fi i clasificadas
l ifi d por región
ió y d
dentro
t d de cada
d región
ió por
superavit de modo que las de mayor superavit aparezcan las primeras.
Selección de filas
A continuación veremos las cláusulas que
nos permiten indicar qué filas queremos
visualizar.
Selección de filas. Las cláusulas DISTINCT / ALL
Al incluir la cláusula DISTINCT en la SELECT, se
eliminan del resultado las repeticiones de filas. Si
por el contrario queremos que aparezcan todas las
filas incluidas las duplicadas, podemos incluir la
cláusula ALL o nada, ya que ALL es el valor que
SQL asume por defecto
Lista los códigos de los directores
SELECT dir FROM oficinas
de las oficinas. El director 108
SELECT ALL dir FROM oficinas aparece en cuatro oficinas,
fi i por llo
tanto aparecerá cuatro veces en el
resultado de la consulta
consulta.
SELECT DISTINCT dir FROM oficinas
En este
E t caso ell valor
l 108 aparecerá
á una sola
l vez ya que lle d
decimos
i que liliste
t llos
distintos valores de directores.
Selección de filas. La cláusula LIMIT
La cláusula LIMIT permite sacar las n filas de la tabla
origen. Siempre se guía por la columna de ordenación, la
que aparece en lal cláusula
lá l ORDER BY o en su d defecto
f t lla
clave principal de la tabla.
SELECT num,, nombre
FROM empleados Queremos saber los dos empleados más
ORDER BY fcontrato antiguos de la empresa.
LIMIT 2; El argumento
arg mento LIMIT podemos poner
intervalos, así, LIMIT (4,15) mostraría los
SELECT num, nombre registros 4 al 15.
FROM empleados
p
ORDER BY fcontrato
LIMIT 3;
En este caso tiene que sacar los tres primeros, pero si nos fijamos en las fechas
de contrato tenemos 20/10/86, 10/12/86, 01/03/87, 01/03/87, la tercera fecha es
igual
gua que la
a cua
cuarta,
ta, e
en este caso saca
sacaráá estas cuat
cuatro
o filas
as e
en vez
e de ttres,
es, y
sacaría todas las filas que tuviesen el mismo valor que la tercera fecha de
contrato.
Selección de filas. La cláusula WHERE
La cláusula WHERE selecciona unicamente
las filas que cumplan la condición de
p
selección especificada.
SELECT nombre SELECT nombre
FROM empleados FROM empleados
WHERE oficina = 12; WHERE oficina = 12 AND edad > 30;