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.




Este artículo proviene de Cobol en español
http://www.escobol.com

La dirección de esta noticia es:
http://www.escobol.com/modules.php?name=Sections&op=viewarticle&artid=32