Copyright Oracle Corporation, All rights reserved. 2 Restricción y ordenación de datos
2-2 Copyright Oracle Corporation, All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Limitar las filas recuperadas por una consulta. Ordenar las filas recuperadas por una consulta. Al completar esta lección, debería ser capaz de hacer lo siguiente: Limitar las filas recuperadas por una consulta. Ordenar las filas recuperadas por una consulta.
2-3 Copyright Oracle Corporation, All rights reserved. Limitar filas mediante una selección “…recupera todos los empleados del departamento 10” EMPLOYEEES EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER EMPLOYEES EMPNO ENAME JOB... DEPTNO 7839KINGPRESIDENT CLARKMANAGER MILLERCLERK 10
2-4 Copyright Oracle Corporation, All rights reserved. Limitación de las filas seleccionadas Restringir las filas recuperadas usando la cláusula WHERE. La cláusula WHERE se escribe después de la cláusula FROM. Restringir las filas recuperadas usando la cláusula WHERE. La cláusula WHERE se escribe después de la cláusula FROM. SELECT*|{[DISTINCT] column|expression [alias],…} FROMtable; [WHEREcondition(s)];
2-5 Copyright Oracle Corporation, All rights reserved. Uso de la claúsula WHERE SQL> SELECT ename, job, deptno 2 FROM emp 3 WHERE job='CLERK'; ENAME JOB DEPTNO JAMES CLERK 30 SMITH CLERK 20 ADAMS CLERK 20 MILLER CLERK 10
2-6 Copyright Oracle Corporation, All rights reserved. Cadenas de caracteres y fechas Las cadenas de caracteres o las fechas se encierran entre comillas simples. Las cadenas de caracteres o las fechas se encierran entre comillas simples. Los ee tipo carácter son sensibles a mayúsculas/minúsculas y los valores de tipo fecha son sensibles al formato. Los ee tipo carácter son sensibles a mayúsculas/minúsculas y los valores de tipo fecha son sensibles al formato. Formato fecha defecto es 'DD-MON-RR'. Formato fecha defecto es 'DD-MON-RR'. Las cadenas de caracteres o las fechas se encierran entre comillas simples. Las cadenas de caracteres o las fechas se encierran entre comillas simples. Los ee tipo carácter son sensibles a mayúsculas/minúsculas y los valores de tipo fecha son sensibles al formato. Los ee tipo carácter son sensibles a mayúsculas/minúsculas y los valores de tipo fecha son sensibles al formato. Formato fecha defecto es 'DD-MON-RR'. Formato fecha defecto es 'DD-MON-RR'. SQL> SELECTlast_name, job_id, department_id 2 FROM employees 3 WHERElast_name = ‘Whalen'; SQL> SELECTlast_name, job_id, department_id 2 FROM employees 3 WHERElast_name = ‘Whalen';
2-7 Copyright Oracle Corporation, All rights reserved. Condiciones de comparación Operador = > >= < <= <> Significado Igual a Mayor que Mayor que o igual a Menor que Menor que o igual a Diferente
2-8 Copyright Oracle Corporation, All rights reserved. Uso de condiciones de comparación SQL> SELECT ename, sal, comm 2 FROM emp 3 WHERE sal<=comm; ENAME SAL COMM MARTIN
2-9 Copyright Oracle Corporation, All rights reserved. Otras condiciones de Comparación Condición BETWEEN...AND... IN (set) LIKE IS NULL Significado Entre dos valores (inclusive) Lista de valores Se ajusta a un patrón de caracteres Es un valor nulo
2-10 Copyright Oracle Corporation, All rights reserved. Uso de la condición BETWEEN ENAME SAL MARTIN 1250 TURNER 1500 WARD 1250 ADAMS 1100 MILLER 1300 SQL> SELECTename, sal 2 FROM emp 3 WHEREsal BETWEEN 1000 AND 1500; Límite inferior Use la condición BETWEEN para visualizar registros basados en un rango de valores. Límite superior
2-11 Copyright Oracle Corporation, All rights reserved. Uso de la condición IN Use la condición IN de pertenencia para comprobar si hay valores en una lista. SQL> SELECTempno, ename, sal, mgr 2 FROM emp 3 WHEREmgr IN (7902, 7566, 7788); EMPNO ENAME SAL MGR FORD SMITH SCOTT ADAMS
2-12 Copyright Oracle Corporation, All rights reserved. Uso de la condición LIKE SQL> SELECTfirst_name 2 FROM employees 3 WHEREfirst_name LIKE 'S%'; Usar el operador LIKE para ejecutar búsquedas en cadenas de caracteres que incluyan comodines. Usar el operador LIKE para ejecutar búsquedas en cadenas de caracteres que incluyan comodines. Las condiciones de búsqueda pueden contener caracteres o números. Las condiciones de búsqueda pueden contener caracteres o números. – "%" denota cero o varios caracteres. – "_" denota un solo carácter. Usar el operador LIKE para ejecutar búsquedas en cadenas de caracteres que incluyan comodines. Usar el operador LIKE para ejecutar búsquedas en cadenas de caracteres que incluyan comodines. Las condiciones de búsqueda pueden contener caracteres o números. Las condiciones de búsqueda pueden contener caracteres o números. – "%" denota cero o varios caracteres. – "_" denota un solo carácter.
2-13 Copyright Oracle Corporation, All rights reserved. Uso de la condición LIKE SQL> SELECTlast_name 2 FROMemployees 3 WHERElast_name LIKE '_o%'; ENAME Lorentz Mourgos Se puede combinar patrones de caracteres. Se puede combinar patrones de caracteres. Se puede usar el identificador ESCAPE Se puede usar el identificador ESCAPE para buscar "%" y "_" para buscar "%" y "_"
2-14 Copyright Oracle Corporation, All rights reserved. Uso de las condiciones NULL Verificar la presencia de valores nulos con el operador IS NULL. SQL> SELECT ename, mgr 2 FROM emp 3 WHERE mgr IS NULL; ENAME MGR KING
2-15 Copyright Oracle Corporation, All rights reserved. Condiciones Lógicas Operador AND OR NOT Significado Devuelve TRUE si ambas condiciones son TRUE Devuelve TRUE si alguna de las condiciones es TRUE Devuelve TRUE si la siguiente condición es FALSE
2-16 Copyright Oracle Corporation, All rights reserved. Uso del operador AND AND requiere que ambas condiciones sean TRUE SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= AND job='CLERK'; EMPNO ENAME JOB SAL ADAMS CLERK MILLER CLERK 1300
2-17 Copyright Oracle Corporation, All rights reserved. Uso del operador OR OR requiere que alguna condición sea TRUE SQL> SELECT empno, ename, job, sal 2 FROM emp 3 WHERE sal>= OR job='CLERK'; EMPNO ENAME JOB SAL KING PRESIDENT BLAKE MANAGER CLARK MANAGER JONES MANAGER MARTIN SALESMAN rows selected.
2-18 Copyright Oracle Corporation, All rights reserved. Uso del operador NOT SQL> SELECT ename, job 2 FROM emp 3 WHERE job NOT IN ('CLERK','MANAGER','ANALYST'); ENAME JOB KING PRESIDENT MARTIN SALESMAN ALLEN SALESMAN TURNER SALESMAN WARD SALESMAN
2-19 Copyright Oracle Corporation, All rights reserved. Reglas de prioridad Orden EvaluadoOperador 1Aritméticos 2Concatenación 3Comparación 4 IS [NOT] NULL, LIKE, [NOT] IN 5[NOT] BETWEEN 6NOT 7AND 8OR
2-20 Copyright Oracle Corporation, All rights reserved. Reglas de prioridad ENAME JOB SAL KING PRESIDENT 5000 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN 1250 ENAME JOB SAL KING PRESIDENT 5000 MARTIN SALESMAN 1250 ALLEN SALESMAN 1600 TURNER SALESMAN 1500 WARD SALESMAN 1250 SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE job='SALESMAN' 4 OR job='PRESIDENT' 5 AND sal>1500;
2-21 Copyright Oracle Corporation, All rights reserved. Reglas de prioridad ENAME JOB SAL KING PRESIDENT 5000 ALLEN SALESMAN 1600 ENAME JOB SAL KING PRESIDENT 5000 ALLEN SALESMAN 1600 Uso de paréntesis para forzar prioridad. SQL> SELECT ename, job, sal 2 FROM emp 3 WHERE (job='SALESMAN' 4 OR job='PRESIDENT') 5 AND sal>1500;
2-22 Copyright Oracle Corporation, All rights reserved. Cláusula ORDER BY Ordenar filas con la cláusula ORDER BY. ASC: orden ascendente, por defecto.ASC: orden ascendente, por defecto. DESC: orden descendente.DESC: orden descendente. Cláusula ORDER BY va al final del SELECTCláusula ORDER BY va al final del SELECT Ordenar filas con la cláusula ORDER BY. ASC: orden ascendente, por defecto.ASC: orden ascendente, por defecto. DESC: orden descendente.DESC: orden descendente. Cláusula ORDER BY va al final del SELECTCláusula ORDER BY va al final del SELECT SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate; ENAME JOB DEPTNO HIREDATE SMITH CLERK DEC-80 ALLEN SALESMAN FEB rows selected.
2-23 Copyright Oracle Corporation, All rights reserved. Clasificación en orden descendente SQL> SELECT ename, job, deptno, hiredate 2 FROM emp 3 ORDER BY hiredate DESC; ENAME JOB DEPTNO HIREDATE ADAMS CLERK JAN-83 SCOTT ANALYST DEC-82 MILLER CLERK JAN-82 JAMES CLERK DEC-81 FORD ANALYST DEC-81 KING PRESIDENT NOV-81 MARTIN SALESMAN SEP rows selected.
2-24 Copyright Oracle Corporation, All rights reserved. Clasificación por alias de columna SQL> SELECT empno, ename, sal*12 annsal 2 FROM emp 3 ORDER BY annsal; EMPNO ENAME ANNSAL SMITH JAMES ADAMS MARTIN WARD MILLER TURNER rows selected.
2-25 Copyright Oracle Corporation, All rights reserved. Clasificación por múltiples columnas La lista de ORDER BY es el orden de clasificación Puede ordenar por una columna no seleccionada. SQL> SELECTename, deptno, sal 2 FROM emp 3 ORDER BY deptno, sal DESC; ENAME DEPTNO SAL KING CLARK MILLER FORD rows selected.
2-26 Copyright Oracle Corporation, All rights reserved. Resumen SELECT*|{[DISTINCT] column|expression [alias],...} FROM table [WHEREcondition(s)] [ORDER BY{column, expr, alias} [ASC|DESC]]; Uso de cláusula WHERE para restringir filas: – Uso de condiciones de comparación. – Uso de BETWEEN, IN, LIKE y NULL. – Operadores lógicos AND, OR y NOT. – Uso de la cláusula ORDER BY.
2-27 Copyright Oracle Corporation, All rights reserved. Visión General de la Práctica Seleccionar datos y cambiar el orden de las filas mostradas. Seleccionar datos y cambiar el orden de las filas mostradas. Restringir las filas usando la cláusula WHERE. Restringir las filas usando la cláusula WHERE. Ordenación de filas usando la cláusula ORDER BY. Ordenación de filas usando la cláusula ORDER BY. Seleccionar datos y cambiar el orden de las filas mostradas. Seleccionar datos y cambiar el orden de las filas mostradas. Restringir las filas usando la cláusula WHERE. Restringir las filas usando la cláusula WHERE. Ordenación de filas usando la cláusula ORDER BY. Ordenación de filas usando la cláusula ORDER BY.