1. Taller: Oracle SQL
Instructor: Gustavo Coronel
Blog: gcoronelc.blogspot.com
Consultas Básicas
Libro de Consulta
Sentencia SELECT
Ejemplo 1
Ejemplo 2
Ejemplo 3
Ejemplo 4
Ejemplo 5
Ejemplo 6
Evaluación de Expresiones
Ejemplo 7
Ejemplo 8
Tratamiento de Valores Nulos
Ejemplo 9
Ejemplo 10
Ejercicios
Libro de Consulta
http://gcoronelc.blogspot.com/2011/02/libros-de-oracle.html
Sentencia SELECT
Sintaxis
SELECT columnas
2. Taller: Oracle SQL
Instructor: Gustavo Coronel
Blog: gcoronelc.blogspot.com
FROM tabla
WHERE filtro_de_filas
ORDER BY col1 [ASC|DESC], col2 [ASC|DESC], . . .
Todos los ejemplos se deben ejecutar en el esquema SCOTT.
Ejemplo 1
Consultar la tabla EMP.
El asterisco indica que se consultan todas las columnas.
SELECT * FROM EMP;
Ejemplo 2
Consultar algunas columnas de la tabla EMP.
Se selecciona 3 columnas.
SELECT EMPNO, ENAME, SAL
FROM EMP;
Ejemplo 3
Consultar los empleado de ventas.
Primero se consulta la tabla DEPT para averiguar el código del departamento de
ventas.
SELECT * FROM DEPT;
DEPTNO DNAME LOC
---------------------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Se puede verificar que el código del departamento de ventas es 30.
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 30;
EMPNO ENAME SAL DEPTNO
------------ ---------- ------------ ----------------------
7499 ALLEN 1600 30
3. Taller: Oracle SQL
Instructor: Gustavo Coronel
Blog: gcoronelc.blogspot.com
7521 WARD 1250 30
7654 MARTIN 1250 30
7698 BLAKE 2850 30
7844 TURNER 1500 30
7900 JAMES 950 30
Ejemplo 4
Consultar los empleados de ventas que su salario es mayor 1300.0.
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE (DEPTNO = 30) AND (SAL > 1300.0);
EMPNO ENAME SAL DEPTNO
------------- ---------- ------------ ----------------------
7499 ALLEN 1600 30
7698 BLAKE 2850 30
7844 TURNER 1500 30
Ejemplo 5
Consultar los empleados de contabilidad y ventas, que su salario es menor a 1500.
Una opción es usar el operador OR:
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE (DEPTNO = 10 OR DEPTNO = 30) AND (SAL < 1500.0);
Otra alternativa es usar el operador IN:
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE ( DEPTNO IN (10, 30) ) AND (SAL < 1500.0);
El resultado que se obtiene es el mismo:
EMPNO ENAME SAL DEPTNO
------------ ---------- ------------ ----------------------
7521 WARD 1250 30
7654 MARTIN 1250 30
7900 JAMES 950 30
7934 MILLER 1300 10
Ejemplo 6
Consultar los empleados que su nombre tiene en la segunda posición la letra A o la
4. Taller: Oracle SQL
Instructor: Gustavo Coronel
Blog: gcoronelc.blogspot.com
letra L.
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE ENAME LIKE '_A%' OR ENAME LIKE '_L%';
EMPNO ENAME SAL DEPTNO
------------ ---------- ---------- ----------------------
7499 ALLEN 1600 30
7521 WARD 1250 30
7654 MARTIN 1250 30
7698 BLAKE 2850 30
7782 CLARK 2450 10
7900 JAMES 950 30
Evaluación de Expresiones
Sintaxis
SELECT <expresion1>, <expresion2>, . . . FROM DUAL;
Ejemplo 7
SELECT (8 * 715 + 890) FROM DUAL;
(8*715+890)
----------------------
6610
Ejemplo 8
SELECT EMPNO || ' - ' || ENAME || ' - ' || SAL || ' - ' || DEPTNO
FROM EMP
WHERE ( DEPTNO IN (10, 30) );
EMPNO||'-'||ENAME||'-'||SAL||'-'||DEPTNO
---------------------------------------------------
7499 - ALLEN - 1600 - 30
7521 - WARD - 1250 - 30
7654 - MARTIN - 1250 - 30
7698 - BLAKE - 2850 - 30
7782 - CLARK - 2450 - 10
7839 - KING - 5000 - 10
7844 - TURNER - 1500 - 30
7900 - JAMES - 950 - 30
5. Taller: Oracle SQL
Instructor: Gustavo Coronel
Blog: gcoronelc.blogspot.com
7934 - MILLER - 1300 - 10
Tratamiento de Valores Nulos
Toda operación con NULL es otro NULL.
Ejemplo 9
SELECT 5 + NULL, 10 * NULL FROM DUAL;
Ejemplo 10
La función NVL permite reemplazar un NULL por un valor válido.
SELECT 5 + NVL(NULL,0), 10 * NVL(NULL,1) FROM DUAL;
Ejercicios
1. Desarrollar una consulta que muestre el salario, comisión y total de los
empleados.
2. Desarrollar una consulta que permita ver el tiempo de servicio en meses de los
empleados.
3. Desarrollar una consulta que permita tener un listado de los empleados que no
tienen comisión.