Está en la página 1de 6

CONSULTAS DE DATOS

La consulta de datos se hace a travs de la sentencia SELECT que tiene la siguiente estructura:
SELECT columnas FROM tablas WHERE condiciones;
La consulta ms sencilla es mostrar los valores de una o varias columnas de una sola tabla, como por ejemplo:
Supongamos que las tabla originales contienen los datos:
DEPART
DEPT_NO
10
20
30
40
EMPLE
EMP_NO
7369
7499
7521
7566
7654
7698
7782
7788
7839
7844
7876
7900
7902
7934

NOMBRE
CONTABILIDAD
INVESTIGACION
VENTAS
PRODUCCION
APELLIDO
SANCHEZ
ARROYO
SALA
JIMENEZ
MARTIN
NEGRO
CEREZO
GIL
REY
TOVAR
ALONSO
JIMENO
FDEZ
MUOZ

OFICIO
EMPLEADO
VENDEDOR
VENDEDOR
DIRECTOR
VENDEDOR
DIRECTOR
DIRECTOR
ANALISTA
PRESIDENTE
VENDEDOR
EMPLEADO
EMPLEADO
ANALISTA
EMPLEADO

SELECT Apellido FROM Emple;


Mostara:APELLIDO
SANCHEZ
ARROYO
SALA
JIMENEZ
MARTIN
NEGRO
CEREZO
GIL
REY
TOVAR
ALONSO
JIMENO
FDEZ
MUOZ

DIR
7902
7698
7698
7839
7698
7839
7839
7566
7698
7788
7698
7566
7782

LOC
SEVILLA
MADRID
BARCELONA
BILBAO
FECHA_ALT
17-12-1990
20-02-1990
22-02-1991
02-04-1991
29-09-1991
01-05-1991
09-06-1991
09-11-1991
17-11-1991
08-09-1991
23-09-1991
03-12-1991
03-12-1991
23-01-1992

SALARIO
1040
1500
1625
2900
1600
3005
2885
3000
4100
1350
1430
1335
3000
1690

COMISION
0
390
650
1020

DEPT_NO
20
30
30
20
30
30
10
20
10
30
20
30
20
10

SELECT Apellido,Oficio FROM Emple;


APELLIDO OFICIO
SANCHEZ
EMPLEADO
ARROYO
VENDEDOR
SALA
VENDEDOR
JIMENEZ
DIRECTOR
MARTIN
VENDEDOR
NEGRO
DIRECTOR
CEREZO
DIRECTOR
GIL
ANALISTA
REY
PRESIDENTE
TOVAR
VENDEDOR
ALONSO
EMPLEADO
JIMENO
EMPLEADO
FDEZ
ANALISTA
MUOZ
EMPLEADO
Si queremos mostrar todos los campos de la tabla:
SELECT * FROM Emple;
EMP_NO APELLIDO OFICIO
DIR
7369
SANCHEZ
EMPLEADO 7902
7499
ARROYO
VENDEDOR 7698
7521
SALA
VENDEDOR 7698
7566
JIMENEZ
DIRECTOR
7839
7654
MARTIN
VENDEDOR 7698
7698
NEGRO
DIRECTOR
7839
7782
CEREZO
DIRECTOR
7839
7788
GIL
ANALISTA
7566
7839
REY
PRESIDENTE
7844
TOVAR
VENDEDOR 7698
7876
ALONSO
EMPLEADO 7788
7900
JIMENO
EMPLEADO 7698
7902
FDEZ
ANALISTA
7566
7934
MUOZ
EMPLEADO 7782

FECHA_ALT
17-12-1990
20-02-1990
22-02-1991
02-04-1991
29-09-1991
01-05-1991
09-06-1991
09-11-1991
17-11-1991
08-09-1991
23-09-1991
03-12-1991
03-12-1991
23-01-1992

SALARIO
1040
1500
1625
2900
1600
3005
2885
3000
4100
1350
1430
1335
3000
1690

COMISION DEPT_NO
20
390
30
650
30
20
1020
30
30
10
20
10
30
20
30
20
10

Los campos tambin pueden ser referenciados por su nombre completo, que es NombreTabla.NombreCampo,
es decir, la sentencia:
SELECT Empl.Apellido FROM Emple;
Es la misma que: SELECT Apellido FROM Emple;
Y SELECT Empl.* FROM Emple;
Es la misma que : SELECT * FROM Emple;
CONDICION DE LA SELECCION
La seleccin de datos puede hacer de forma condicionada de la siguiente forma:
SELECT * FROM Emple WHERE Oficio=VENDEDOR;

EMP_NO
7499
7521
7654
7844

APELLIDO
ARROYO
SALA
MARTIN
TOVAR

OFICIO
VENDEDOR
VENDEDOR
VENDEDOR
VENDEDOR

DIR
7698
7698
7698
7698

FECHA_ALT
20-02-1990
22-02-1991
29-09-1991
08-09-1991

SALARIO
1500
1625
1600
1350

COMISION
390
650
1020

DEPT_NO
30
30
30
30

En el nombre de los campos y las tablas , no distingue entre maysculas y minsculas, pero en el valor de los
datos si, adems hay que tener en cuenta que los datos VARCHAR y DATE van entre comillas simples,
mientras que los nmeros no llevan entrecomillado.
SELECT * FROM Emple WHERE Oficio=vendedor;
EMP_NO APELLIDO OFICIO
DIR
FECHA_ALT SALARIO COMISION DEPT_NO

SELECT * FROM Emple WHERE Salario>2000;


EMP_NO
7566
7698
7782
7788
7839
7902

APELLIDO
JIMENEZ
NEGRO
CEREZO
GIL
REY
FDEZ

OFICIO
DIRECTOR
DIRECTOR
DIRECTOR
ANALISTA
PRESIDENTE
ANALISTA

DIR
7839
7839
7839
7566
7566

FECHA_ALT
02-04-1991
01-05-1991
09-06-1991
09-11-1991
17-11-1991
03-12-1991

SALARIO COMISION DEPT_NO


2900
20
3005
30
2885
10
3000
20
4100
10
3000
20

SELECT * FROM Emple WHERE Fecha_Alt >= 30-11-1991;


EMP_NO
7900
7902
7934

APELLIDO
JIMENO
FDEZ
MUOZ

OFICIO
EMPLEADO
ANALISTA
EMPLEADO

DIR
7698
7566
7782

FECHA_ALT
03-12-1991
03-12-1991
23-01-1992

SALARIO COMISION DEPT_NO


1335
30
3000
20
1690
10

No tienen porque mostrarse los valores de la condicin si no se quiere:


SELECT Apellido FROM Emple WHERE Salario = 3000;
APELLIDO
GIL
FDEZ
Adems de las condiciones relacionales =, >, <, <=,>= y <> , existen otros operadores que veremos a
continuacin a travs de ejemplos:
SELECT * FROM Emple WHERE Fecha_Alt BETWEEN 1-11-1991 AND 30-11-1991;
EMP_NO APELLIDO OFICIO
DIR
FECHA_ALT SALARIO COMISION DEPT_NO
7788
GIL
ANALISTA
7566 09-11-1991
3000
20
7839
REY
PRESIDENTE
17-11-1991
4100
10
SELECT * FROM Emple WHERE Salario BETWEEN 2000 AND 3000

EMP_NO
7566
7782
7788
7902

APELLIDO
JIMENEZ
CEREZO
GIL
FDEZ

OFICIO
DIRECTOR
DIRECTOR
ANALISTA
ANALISTA

DIR
7839
7839
7566
7566

FECHA_ALT
02-04-1991
09-06-1991
09-11-1991
03-12-1991

SALARIO COMISION DEPT_NO


2900
20
2885
10
3000
20
3000
20

Para seleccionar los campos en blanco, es decir que no contengan valores se hace de forma:
SELECT * FROM Emple WHERE Comision IS NULL;
EMP_NO
7566
7698
7782
7788
7839
7844
7876
7900
7902
7934

APELLIDO
JIMENEZ
NEGRO
CEREZO
GIL
REY
TOVAR
ALONSO
JIMENO
FDEZ
MUOZ

OFICIO
DIRECTOR
DIRECTOR
DIRECTOR
ANALISTA
PRESIDENTE
VENDEDOR
EMPLEADO
EMPLEADO
ANALISTA
EMPLEADO

DIR
7839
7839
7839
7566
7698
7788
7698
7566
7782

FECHA_ALT
02-04-1991
01-05-1991
09-06-1991
09-11-1991
17-11-1991
08-09-1991
23-09-1991
03-12-1991
03-12-1991
23-01-1992

SALARIO COMISION DEPT_NO


2900
20
3005
30
2885
10
3000
20
4100
10
1350
30
1430
20
1335
30
3000
20
1690
10

Para seleccionar los campos con valores:


SELECT * FROM Emple WHERE Comision IS NOT NULL;
EMP_NO
7369
7499
7521
7654

APELLIDO
SANCHEZ
ARROYO
SALA
MARTIN

OFICIO
EMPLEADO
VENDEDOR
VENDEDOR
VENDEDOR

DIR
7902
7698
7698
7698

FECHA_ALT
17-12-1990
20-02-1990
22-02-1991
29-09-1991

SALARIO
1040
1500
1625
1600

COMISION
0
390
650
1020

DEPT_NO
20
30
30
30

CUIDADO! El valor 0 es NO NULO, y el comparador es IS , NO FUNCIONA con el smbolo =.


Para los datos VARCHAR se puede utilizar el comparador LIKE conjuntamente con un patrn que es:
_ Para una letra
% Para varias letras
SELECT * FROM Emple WHERE Apellido LIKE S%;
EMP_NO APELLIDO OFICIO
DIR
FECHA_ALT SALARIO COMISION DEPT_NO
7369
SANCHEZ
EMPLEADO 7902 17-12-1990
1040
0
20
7521
SALA
VENDEDOR 7698 22-02-1991
1625
650
30
Muestra los apellidos que empiezan por S y luego contenga cualquier grupo de caracteres.
SELECT * FROM Emple WHERE Apellido LIKE _A%
EMP_NO APELLIDO OFICIO
DIR
FECHA_ALT
7369
SANCHEZ
EMPLEADO 7902 17-12-1990
7521
SALA
VENDEDOR 7698 22-02-1991
7654
MARTIN
VENDEDOR 7698 29-09-1991

SALARIO COMISION DEPT_NO


1040
20
1625
650
30
1600
1020
30

Muestra los apellidos que empiezan por una letra culaquiera, el segundo caracter es una A y luego contiene un
grupos cualquiera de letras.
SELECT * FROM Emple WHERE Apellido LIKE %A%
EMP_NO APELLIDO OFICIO
DIR
FECHA_ALT SALARIO COMISION
7369
SANCHEZ
EMPLEADO 7902 17-12-1990
1040
7521
SALA
VENDEDOR 7698 22-02-1991
1625
650
7654
MARTIN
VENDEDOR 7698 29-09-1991
1600
1020
7844
TOVAR
VENDEDOR 7698 08-09-1991
1350
Fijate que no muestra ni ARROYO ni ALONSO, pues no contiene A en las posiciones del medio.

DEPT_NO
20
30
30
30

SELECT * FROM Emple WHERE Dir IN ( 7902, 7698,7839)


EMP_NO APELLIDO OFICIO
DIR
FECHA_ALT SALARIO
7369
SANCHEZ
EMPLEADO 7902 17-12-1990
1040
7499
ARROYO
VENDEDOR 7698 20-02-1990
1500
7521
SALA
VENDEDOR 7698 22-02-1991
1625
7566
JIMENEZ
DIRECTOR
7839 02-04-1991
2900
7654
MARTIN
VENDEDOR 7698 29-09-1991
1600
7698
NEGRO
DIRECTOR
7839 01-05-1991
3005
7782
CEREZO
DIRECTOR
7839 09-06-1991
2885
7844
TOVAR
VENDEDOR 7698 08-09-1991
1350
7876
ALONSO
EMPLEADO 7788 23-09-1991
1430
7900
JIMENO
EMPLEADO 7698 03-12-1991
1335
Muestra las filas cuyo campo es igual a los valores contenidos en el IN.

COMISION
0
390
650
1020

DEPT_NO
20
30
30
20
30
30
10
30
20
30

Se pueden establecer varias condiciones con las funciones lgicas OR y AND.


SELECT * FROM Emple WHERE Dept_No= 30 AND Salario>1500;
EMP_NO APELLIDO OFICIO
7844
TOVAR
VENDEDOR
7900
JIMENO
EMPLEADO

DIR
7698
7698

FECHA_ALT SALARIO COMISION DEPT_NO


08-09-1991
1350
30
03-12-1991
1335
30

SELECT * FROM Emple WHERE Dept_No= 30 OR Salario>1500;


EMP_NO
7499
7521
7566
7654
7698
7782
7788
7839
7844
7900
7902

APELLIDO
ARROYO
SALA
JIMENEZ
MARTIN
NEGRO
CEREZO
GIL
REY
TOVAR
JIMENO
FDEZ

OFICIO
VENDEDOR
VENDEDOR
DIRECTOR
VENDEDOR
DIRECTOR
DIRECTOR
ANALISTA
PRESIDENTE
VENDEDOR
EMPLEADO
ANALISTA

DIR
7698
7698
7839
7698
7839
7839
7566
7698
7698
7566

FECHA_ALT
20-02-1990
22-02-1991
02-04-1991
29-09-1991
01-05-1991
09-06-1991
09-11-1991
17-11-1991
08-09-1991
03-12-1991
03-12-1991

SALARIO
1500
1625
2900
1600
3005
2885
3000
4100
1350
1335
3000

COMISION DEPT_NO
390
30
650
30
20
1020
30
30
10
20
10
30
30
20

7934

MUOZ

EMPLEADO

7782

23-01-1992

1690

10

CLAUSULA DISTINCT
Se usa para no mostrar filas repetidas:
SELECT DISTINCT Oficio FROM Emple;
OFICIO
EMPLEADO
VENDEDOR
DIRECTOR
ANALISTA
PRESIDENTE
CLAUSULA ORDER BY
Se aade al final de la consulta, y sirve para ordenar las filas por un determinado campo.
SELECT * FROM Emple ORDER BY Oficio;
EMP_NO
7788
7902
7566
7698
7782
7369
7876
7900
7934
7839
7654
7499
7521
7844

APELLIDO
GIL
FDEZ
JIMENEZ
NEGRO
CEREZO
SANCHEZ
ALONSO
JIMENO
MUOZ
REY
MARTIN
ARROYO
SALA
TOVAR

OFICIO
ANALISTA
ANALISTA
DIRECTOR
DIRECTOR
DIRECTOR
EMPLEADO
EMPLEADO
EMPLEADO
EMPLEADO
PRESIDENTE
VENDEDOR
VENDEDOR
VENDEDOR
VENDEDOR

DIR
7566
7566
7839
7839
7839
7902
7788
7698
7782

SALARIO
3000
3000
2900
3005
2885
1040
1430
1335
1690
4100
1600
1500
1625
1350

COMISION DEPT_NO
20
20
20
30
10
20
20
30
10
10
1020
30
390
30
650
30
30

WHERE Salario<3000 ORDER BY Oficio;


OFICIO
DIR
FECHA_ALT SALARIO
DIRECTOR
7839 02-04-1991
2900
DIRECTOR
7839 09-06-1991
2885
EMPLEADO 7902 17-12-1990
1040
EMPLEADO 7788 23-09-1991
1430
EMPLEADO 7698 03-12-1991
1335
EMPLEADO 7782 23-01-1992
1690
VENDEDOR 7698 29-09-1991
1600
VENDEDOR 7698 20-02-1990
1500
VENDEDOR 7698 22-02-1991
1625
VENDEDOR 7698 08-09-1991
1350

COMISION DEPT_NO
20
10
20
20
30
10
1020
30
390
30
650
30
30

7698
7698
7698
7698

FECHA_ALT
09-11-1991
03-12-1991
02-04-1991
01-05-1991
09-06-1991
17-12-1990
23-09-1991
03-12-1991
23-01-1992
17-11-1991
29-09-1991
20-02-1990
22-02-1991
08-09-1991

Va siempre detrs del WHERE


SELECT * FROM Emple
EMP_NO APELLIDO
7566
JIMENEZ
7782
CEREZO
7369
SANCHEZ
7876
ALONSO
7900
JIMENO
7934
MUOZ
7654
MARTIN
7499
ARROYO
7521
SALA
7844
TOVAR

También podría gustarte