
Ejemplos de Select
S Q L
(Structured Query Language
Lenguaje de consulta estructurado).
EJEMPLOS
Dedicaremos un capítulo entero a mostrar
ejemplos sobre las distintas formas de utilizar la instrucción SELECT, ya
que es la piedra angular de todo el lenguaje SQL; con ella podremos
recuperar la información de múltiples formas, agruparla por un criterio
determinado, contar registros, etc ...
Definamos dos tablas:
- CLIENTES
- Cod_Cli AN(4)
- Nomb_Cli AN(20)
- Cod_Direcc AN(4)
- AC_Ptas N(7)
Cod_Cli |
Nomb_Cli |
Cod_Direcc |
Ac_Ptas |
0001 |
Federico
Gómez |
0102 |
300.000 |
0002 |
Francisco
Perez |
0104 |
125.000 |
0003 |
Antonio
Muñoz |
0100 |
180.000 |
0004 |
Jose
Ortiz |
0103 |
025.000 |
- DIRECCIONES
- Cod_Direcc AN(4)
- Nomb_Direcc AN(20)
- Cod_Postal AN(5)
Cod_Direcc |
Nomb_Direcc |
Cod_Postal |
0100 |
C/.Antonio García |
41004 |
0102 |
C/.Padre
Pérez |
41018 |
0103 |
Av.
Pelayo |
41002 |
0104 |
Av. Luis |
41020 |
Supongamos que deseamos extraer toda la
información que contiene la tabla de CLIENTES:
SELECT * FROM CLIENTES
Supongamos que sólo deseamos recuperar
la información de Cod_Cli y de Nomb_Cli:
SELECT Cod_Cli, Nomb_Cli
FROM CLIENTES
Supongamos que deseamos recuperar la
información de Cod_Cli y Ac_Ptas para aquellos Cod_Cli que sean mayor de
'0003':
SELECT Cod_Cli, Nomb_Cli
FROM CLIENTES
WHERE Cod_Cli > '0003'
Supongamos que deseamos recuperar la
información de Cod_Cli, Nomb_Cli y Ac_Ptas cuyo rango esté entre 180.000 y
300.000:
SELECT Cod_Cli, Nomb_Cli, Ac_Ptas
FROM
CLIENTES WHERE Ac_Ptas >= 180000 AND Ac_Ptas <= 300000
También podríamos encontrarlo como
SELECT Cod_Cli, Nomb_Cli,
Ac_Ptas FROM
CLIENTES WHERE Ac_Ptas BETWEEN 180000 AND 300000
Supongamos que deseamos recuperar la
información de Nomb_Cli y Ac_Ptas cuyo valor sea 80.000 o 125.000:
SELECT Nomb_Cli, Ac_Ptas FROM CLIENTES
WHERE Ac_Ptas = 80000 OR Ac_Ptas = 125000
También podríamos encontrarlo así
SELECT Nomb_Cli, Ac_Ptas FROM CLIENTES
WHERE Ac_Ptas IN (80000, 125000)
Supongamos que deseamos saber cuantos
registros contiene la tabla CLIENTES:
SELECT COUNT(*) FROM CLIENTES
Supongamos que deseamos saber cuantos
CLIENTES tienen Ac_Ptas menor de 100.000:
SELECT COUNT(*) FROM CLIENTES WHERE
Ac_Ptas
<= 100000
Supongamos que deseamos recuperar
Cod_Cli, Nomb_Cli y su dirección decodificada:
SELECT A.Cod_Cli, A.Nomb_Cli, B.Nomb_Direcc
FROM CLIENTES A, DIRECCIONES B WHERE A.Cod_Direcc =
B.Cod_direcc
Supongamos que deseamos recuperar
Cod_Cli, Nomb_Cli, Nomb_Direcc de los clientes que superen Ac_Ptas >
125000:
SELECT A.Cod_Cli, A.Nomb_Cli, B.Nomb_Direcc,
A.Ac_Ptas FROM CLIENTES A, DIRECCIONES B WHERE A.Cod_Direcc =
B.Cod_direcc
AND A.Ptas > 125000
Supongamos que deseamos recuperar el
máximo Ac_ptas y su Nomb_Cli:
SELECT MAX(Ac_Ptas), Nomb_Cli
FROM CLIENTES
Supongamos que deseamos recuperar el
mínimo Ac_Ptas y su Cod_Cli:
SELECT MIN(Ac_Ptas), Cod_Cli
FROM CLIENTES
Supongamos que deseamos saber la media
de Ac_Ptas:
SELECT AVG(Ac_Ptas) FROM CLIENTES
Supongamos que deseamos recuperar
Cod_Cli, Nomb_Cli, Nomb_Direcc del menor Ac_Ptas:
SELECT A.Cod_Cli, A.Nomb_Cli,
B.Nomb_Direcc, MIN(A.Ac_Ptas) FROM CLIENTES A, DIRECCIONES B WHERE
A.Cod_Direcc =
B.Cod_direcc
Como se puede observar las combinaciones y
aplicaciones que tiene esta sentencia son infinitas.
|
|