La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Copyright  Oracle Corporation, 1998. All rights reserved. 3 Funciones de una sola fila.

Presentaciones similares


Presentación del tema: "Copyright  Oracle Corporation, 1998. All rights reserved. 3 Funciones de una sola fila."— Transcripción de la presentación:

1 Copyright  Oracle Corporation, 1998. All rights reserved. 3 Funciones de una sola fila

2 3-2 Copyright  Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Describir varios tipos de funciones disponibles en SQL. Describir varios tipos de funciones disponibles en SQL. Utilizar funciones de caracteres, numéricas y fechas en sentencias SELECT. Utilizar funciones de caracteres, numéricas y fechas en sentencias SELECT. Describir el uso de funciones de conversión. Describir el uso de funciones de conversión.

3 3-3 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones SQL Función Entrada arg 1 arg 2 arg n La función realiza la acción SalidaValorresultado

4 3-4 Copyright  Oracle Corporation, 1998. All rights reserved. Dos tipos de funciones SQL Funciones Funciones de una sola fila Funciones de varias filas

5 3-5 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones de una sola fila Manipulan ítems de datos.Manipulan ítems de datos. Aceptan argumentos y devuelven un valor.Aceptan argumentos y devuelven un valor. Actúan sobre cada fila devuelta.Actúan sobre cada fila devuelta. Devuelven un resultado por fila.Devuelven un resultado por fila. Pueden modificar el tipo de dato.Pueden modificar el tipo de dato. Se pueden anidar.Se pueden anidar. Aceptan argumentos columna o expresión.Aceptan argumentos columna o expresión. Manipulan ítems de datos.Manipulan ítems de datos. Aceptan argumentos y devuelven un valor.Aceptan argumentos y devuelven un valor. Actúan sobre cada fila devuelta.Actúan sobre cada fila devuelta. Devuelven un resultado por fila.Devuelven un resultado por fila. Pueden modificar el tipo de dato.Pueden modificar el tipo de dato. Se pueden anidar.Se pueden anidar. Aceptan argumentos columna o expresión.Aceptan argumentos columna o expresión. function_name [(arg1, arg2,...])

6 3-6 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones de una sola fila Conversión Carácter Número Fecha General Funciones de una sola fila

7 3-7 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones de caracteres Funciones de caracteres LOWERUPPERINITCAP CONCATSUBSTRLENGTHINSTR De manipulación mayúsculas/minúsculas de caracteres LPAD | RPAD TRIMREPLACE Entrada: cadena de caracteres. Salida: cadena de caracteres o numéricos. Entrada: cadena de caracteres. Salida: cadena de caracteres o numéricos.

8 3-8 Copyright  Oracle Corporation, 1998. All rights reserved. FunciónResultado Funciones de manipulación de mayúsculas/minúsculas Conversión de cadenas de caracteres LOWER('Curso SQL') UPPER ('Curso SQL') INITCAP('Curso SQL') curso sql CURSO SQL Curso Sql

9 3-9 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de funciones de manipulación de mayúsculas/minúsculas Visualizar el número de empleado, nombre y nº de departamento de “Blake”. SQL> SELECTempno, ename, deptno 2 FROMemp 3 WHEREename = 'blake'; no rows selected SQL> SELECTempno, ename, deptno 2 FROMemp 3 WHEREename = 'blake'; no rows selected EMPNO ENAME DEPTNO --------- ---------- --------- 7698 BLAKE 30 EMPNO ENAME DEPTNO --------- ---------- --------- 7698 BLAKE 30 SQL> SELECTempno, ename, deptno 2 FROMemp 3 WHERE LOWER(ename) = 'blake';

10 3-10 Copyright  Oracle Corporation, 1998. All rights reserved. CONCAT(‘Hello’, ‘World’) SUBSTR(‘HelloWord’,1,5) LENGTH(‘HelloWorld’) INSTR(‘HelloWorld’, ‘w’) LPAD(salary,10,’*’) RPAD(salary,10,’*’) TRIM(‘H’ FROM ‘Hello’) HelloWord Hello 10 6 *****24000 24000***** ello FunciónResultado Funciones de manipulación de caracteres Manipulación de cadenas de caracteres

11 3-11 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de funciones de manipulación de caracteres SQL> SELECT ename, CONCAT (ename, job), LENGTH(ename), 2 INSTR(ename, 'A') 3 FROM emp 4 WHERE SUBSTR(job,1,5) = 'SALES'; ENAME CONCAT(ENAME,JOB) LENGTH(ENAME) INSTR(ENAME,'A') ---------- ------------------- ------------- ---------------- MARTIN MARTINSALESMAN 6 2 ALLEN ALLENSALESMAN 5 1 TURNER TURNERSALESMAN 6 0 WARD WARDSALESMAN 4 2

12 3-12 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones numéricas ROUND:Redondea un valor al decimal. ROUND(45.926, 2)45.93 TRUNC:Trunca un valor al decimal. TRUNC(45.926, 2) 45.92 MOD:Devuelve el resto de la división MOD(1600, 300) 100 ROUND:Redondea un valor al decimal. ROUND(45.926, 2)45.93 TRUNC:Trunca un valor al decimal. TRUNC(45.926, 2) 45.92 MOD:Devuelve el resto de la división MOD(1600, 300) 100 Entrada: valores numéricos. Salida: valores numéricos.

13 3-13 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de la función ROUND Visualizar el valor 45.923 redondeado a 2, 0, y -1 posiciones decimales. SQL> SELECT ROUND(45.923,2), ROUND(45.923,0), 2 ROUND(45.923,-1) 3 FROM DUAL; ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1) --------------- -------------- ----------------- 45.92 46 50

14 3-14 Copyright  Oracle Corporation, 1998. All rights reserved. SQL> SELECT TRUNC(45.923,2), TRUNC(45.923), 2 TRUNC(45.923,-1) 3 FROM SYS.DUAL; TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-1) --------------- ------------- --------------- 45.92 45 40 Uso de la función TRUNC Visualizar el valor 45.923 con TRUNC a 2, 0, y -1 posiciones decimales.

15 3-15 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de la Función MOD Calcular el resto de dividir el salario entre la comisión de cada empleado, cuyo trabajo sea “VENDEDOR”. SQL> SELECTename, sal, comm, MOD(sal, comm) 2 FROMemp 3 WHEREjob = 'SALESMAN'; ENAME SAL COMM MOD(SAL,COMM) ---------- --------- --------- ------------- MARTIN 1250 1400 1250 ALLEN 1600 300 100 TURNER 1500 0 1500 WARD 1250 500 250

16 3-16 Copyright  Oracle Corporation, 1998. All rights reserved. Trabajo con fechas Oracle almacena fechas en un formato numérico interno. Oracle almacena fechas en un formato numérico interno. – Siglo, año, mes, día, horas, minutos, segundos. El formato de fecha por defecto es DD-MON-RR. El formato de fecha por defecto es DD-MON-RR. SYSDATE es una función que devuelve la fecha y hora del servidor de la base de datos. SYSDATE es una función que devuelve la fecha y hora del servidor de la base de datos. DUAL es una tabla virtual de la Base de Datos, que puede ser usada para inspeccionar SYSDATE. DUAL es una tabla virtual de la Base de Datos, que puede ser usada para inspeccionar SYSDATE. Oracle almacena fechas en un formato numérico interno. Oracle almacena fechas en un formato numérico interno. – Siglo, año, mes, día, horas, minutos, segundos. El formato de fecha por defecto es DD-MON-RR. El formato de fecha por defecto es DD-MON-RR. SYSDATE es una función que devuelve la fecha y hora del servidor de la base de datos. SYSDATE es una función que devuelve la fecha y hora del servidor de la base de datos. DUAL es una tabla virtual de la Base de Datos, que puede ser usada para inspeccionar SYSDATE. DUAL es una tabla virtual de la Base de Datos, que puede ser usada para inspeccionar SYSDATE.

17 3-17 Copyright  Oracle Corporation, 1998. All rights reserved. Operadores aritméticos con fechas Sumar o restar un número a una fecha da por resultado una fecha. Sumar o restar un número a una fecha da por resultado una fecha. Restar dos fechas para encontrar el número de días entre ellas. Restar dos fechas para encontrar el número de días entre ellas. Sumar horas a una fecha dividiendo la cantidad de horas por 24. Sumar horas a una fecha dividiendo la cantidad de horas por 24. Sumar o restar un número a una fecha da por resultado una fecha. Sumar o restar un número a una fecha da por resultado una fecha. Restar dos fechas para encontrar el número de días entre ellas. Restar dos fechas para encontrar el número de días entre ellas. Sumar horas a una fecha dividiendo la cantidad de horas por 24. Sumar horas a una fecha dividiendo la cantidad de horas por 24.

18 3-18 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de operadores aritméticos en fechas SQL> SELECT ename, (SYSDATE-hiredate)/7 WEEKS 2 FROM emp 3 WHERE deptno = 10; ENAME WEEKS ---------- --------- KING 830.93709 CLARK 853.93709 MILLER 821.36566

19 3-19 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones de fecha Número de meses entre dos fechas MONTHS_BETWEEN ADD_MONTHS NEXT_DAY LAST_DAY ROUND TRUNC Suma meses según calendario, a una fecha Siguiente día de la fecha especificada Ultimo día del mes Redondea una fecha Trunca una fecha FUNCIONDESCRIPCION

20 3-20 Copyright  Oracle Corporation, 1998. All rights reserved. MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')MONTHS_BETWEEN ('01-SEP-95','11-JAN-94') Uso de funciones de fecha ADD_MONTHS ('11-JAN-94',6)ADD_MONTHS ('11-JAN-94',6) NEXT_DAY ('01-SEP-95','FRIDAY')NEXT_DAY ('01-SEP-95','FRIDAY') LAST_DAY('01-FEB-95')LAST_DAY('01-FEB-95') 19.6774194 '11-JUL-94' '08-SEP-95' ‘28-SEP-95'

21 3-21 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de funciones de Fecha ROUND(‘ 25-JUL-95’,’MONTH’)ROUND(‘ 25-JUL-95’,’MONTH’) ROUND( ‘25-JUL-95’,’YEAR’)ROUND( ‘25-JUL-95’,’YEAR’) TRUNC( ‘25-JUL-95’,’MONTH’)TRUNC( ‘25-JUL-95’,’MONTH’) TRUNC( ‘25-JUL-95’,’YEAR’)TRUNC( ‘25-JUL-95’,’YEAR’) 01-AUG-95 01-JAN-96 01-JUL-95 01-JAN-95

22 3-22 Copyright  Oracle Corporation, 1998. All rights reserved. Visión General de la Práctica Parte uno Escritura de una consulta que muestre la fecha actual. Escritura de una consulta que muestre la fecha actual. Creación de consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Creación de consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Realización de cálculos de meses y años de servicio para un empleado. Realización de cálculos de meses y años de servicio para un empleado. Escritura de una consulta que muestre la fecha actual. Escritura de una consulta que muestre la fecha actual. Creación de consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Creación de consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Realización de cálculos de meses y años de servicio para un empleado. Realización de cálculos de meses y años de servicio para un empleado.

23 3-23 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones de conversión ConversiónImplícitaConversiónExplícita Conversión de Tipos de Datos

24 3-24 Copyright  Oracle Corporation, 1998. All rights reserved. Conversión implícita del tipo de dato Para asignaciones, Oracle automáticamente puede convertir: VARCHAR2 o CHAR DeA VARCHAR2 o CHAR NUMBER DATE NUMBER DATE VARCHAR2

25 3-25 Copyright  Oracle Corporation, 1998. All rights reserved. Conversión implícita del tipo de dato Para evaluar una expresión, Oracle automáticamente puede convertir: VARCHAR2 o CHAR DeA VARCHAR2 o CHAR NUMBER DATE

26 3-26 Copyright  Oracle Corporation, 1998. All rights reserved. Conversión explícita del tipo de dato NUMBERCHARACTER TO_CHARTO_NUMBER DATETO_CHAR TO_DATE

27 3-27 Copyright  Oracle Corporation, 1998. All rights reserved. Función TO_CHAR con fechas Formato: Formato: Debe encerrarse entre comillas simples y es sensible a mayúsculas/minúsculas. Incluye elemento de formato de fecha válido. Tiene un elemento fm (fill mode) para eliminar espacios en blanco de relleno o suprimir ceros a la izquierda. Está separado de la fecha por una coma. Formato: Formato: Debe encerrarse entre comillas simples y es sensible a mayúsculas/minúsculas. Incluye elemento de formato de fecha válido. Tiene un elemento fm (fill mode) para eliminar espacios en blanco de relleno o suprimir ceros a la izquierda. Está separado de la fecha por una coma. TO_CHAR(date, 'format_model')

28 3-28 Copyright  Oracle Corporation, 1998. All rights reserved. YYYY Elementos del modelo formato de fecha YEAR MM MONTH DY DAY Año completo en número Año en letras Nº del mes con dos dígitos Abreviatura de tres letras del día de la semana Nombre completo del día Nombre completo del mes

29 3-29 Copyright  Oracle Corporation, 1998. All rights reserved. Obtención de la hora: Obtención de la hora: Añadir cadenas de caracteres encerrándolas entre dobles comillas. Añadir cadenas de caracteres encerrándolas entre dobles comillas. Sufijo que permita obtener el nº del día en letra. Sufijo que permita obtener el nº del día en letra. Obtención de la hora: Obtención de la hora: Añadir cadenas de caracteres encerrándolas entre dobles comillas. Añadir cadenas de caracteres encerrándolas entre dobles comillas. Sufijo que permita obtener el nº del día en letra. Sufijo que permita obtener el nº del día en letra. HH24:MI:SS AM15:45:32 PM DD "of" MONTH12 of OCTOBER ddspfifteen Elementos del modelo formato de fecha

30 3-30 Copyright  Oracle Corporation, 1998. All rights reserved. Función TO_CHAR con fechas SQL> SELECTename, 2 TO CHAR(hiredate, 'fmDD Month YYYY') HIREDATE 3 FROM emp; ENAME HIREDATE ---------- ----------------- KING 17 November 1981 BLAKE 1 May 1981 CLARK 9 June 1981 JONES 2 April 1981 MARTIN 28 September 1981 ALLEN 20 February 1981... 14 rows selected.

31 3-31 Copyright  Oracle Corporation, 1998. All rights reserved. Función TO_CHAR con números Use estos formatos con la función TO_CHAR para mostrar un carácter como un número. TO_CHAR(number, ‘format_model') 9 0 $ L., Representa un número Fuerza a que se muestre el 0 (cero) Signo del dólar Usa el símbolo de moneda local Imprime el punto decimal Imprime el indicador de millar

32 3-32 Copyright  Oracle Corporation, 1998. All rights reserved. SQL> SELECTTO_CHAR(sal,'$99,999') SALARY 2 FROMemp 3 WHEREename = 'SCOTT'; SALARY -------- $3,000 Uso de la Función TO_CHAR con números

33 3-33 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de las funciones TO_NUMBER y TO_DATE Convierte una cadena de caracteres a un formato numérico usando la función TO_NUMBER TO_NUMBER(char[, ‘format_model’])) Convierte una cadena de caracteres a un formato de fecha usando la función TO_DATE TO_DATE(char[, ‘format_model’])

34 3-34 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones de anidamiento Las funciones a nivel de fila se pueden anidar hasta cualquier nivel. Las funciones a nivel de fila se pueden anidar hasta cualquier nivel. Funciones anidadas se evalúan desde el nivel más profundo al menos profundo. Funciones anidadas se evalúan desde el nivel más profundo al menos profundo. F3(F2(F1(col,arg1),arg2),arg3) Paso 1 = Resultado 1 Paso 2 = Resultado 2 Paso 3 = Resultado 3

35 3-35 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones de anidamiento SQL> SELECTename, 2 NVL(TO_CHAR(mgr),'No Manager') 3 FROMemp 4 WHEREmgr IS NULL; ENAME NVL(TO_CHAR(MGR),'NOMANAGER') ---------- ----------------------------- KING No Manager

36 3-36 Copyright  Oracle Corporation, 1998. All rights reserved. Funciones generales Funciones que trabajan con cualquier tipo de dato y están relacionadas con el uso de valores nulos: NVL (expr1, expr2) NVL2 (expr1, expr2, expr3) NULLIF (expr1, expr2) COALESCE (expr1, expr2,…, exprn) Funciones que trabajan con cualquier tipo de dato y están relacionadas con el uso de valores nulos: NVL (expr1, expr2) NVL2 (expr1, expr2, expr3) NULLIF (expr1, expr2) COALESCE (expr1, expr2,…, exprn)

37 3-37 Copyright  Oracle Corporation, 1998. All rights reserved. Función NVL Convierte un valor nulo en un valor real. Los tipos de datos pueden ser de fecha, cadenas de caracteres y números. Los tipos de datos deben coincidir: – NVL(comm,0) – NVL(hiredate,'01-JAN-97') – NVL(job,'No Job Yet') Convierte un valor nulo en un valor real. Los tipos de datos pueden ser de fecha, cadenas de caracteres y números. Los tipos de datos deben coincidir: – NVL(comm,0) – NVL(hiredate,'01-JAN-97') – NVL(job,'No Job Yet')

38 3-38 Copyright  Oracle Corporation, 1998. All rights reserved. SQL> SELECT ename, sal, comm, (sal*12)+NVL(comm,0) 2 FROM emp; Uso de la Función NVL ENAME SAL COMM (SAL*12)+NVL(COMM,0) ---------- --------- --------- -------------------- KING 5000 60000 BLAKE 2850 34200 CLARK 2450 29400 JONES 2975 35700 MARTIN 1250 1400 16400 ALLEN 1600 300 19500... 14 rows selected.

39 3-39 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de las funciones NVL2 y NULLIF SELECT last_name, salary, comission_pct, NVL2(comission_pct, ‘SAL+COMM’, ‘SAL’) income FROM employees WHERE department_id IN (50,80) SELECT first_name, NULL_IF(LENGTH(first_name), LENGTH(last_name)) FROM employees

40 3-40 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de la función COALESCE La ventaja de la función COALESCE sobre la función NVL es que puede tomar varios valores alternativos. Si la primera expresión no es nula, devuelve dicha expresión; en caso contrario, realiza una fusión de las expresiones restantes. La ventaja de la función COALESCE sobre la función NVL es que puede tomar varios valores alternativos. Si la primera expresión no es nula, devuelve dicha expresión; en caso contrario, realiza una fusión de las expresiones restantes.

41 3-41 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de la función COALESCE SELECT last_name, COALESCE(commission_pct, salary, 10) comm FROM employees ORDER BY commission_pct

42 3-42 Copyright  Oracle Corporation, 1998. All rights reserved. Expresiones condicionales Proporcionan el uso de la lógica IF- THEN-ELSE dentro de una sentencia SQL. Utilizan dos métodos: – Expresión CASE – Función DECODE Proporcionan el uso de la lógica IF- THEN-ELSE dentro de una sentencia SQL. Utilizan dos métodos: – Expresión CASE – Función DECODE

43 3-43 Copyright  Oracle Corporation, 1998. All rights reserved. La expresión CASE CASE expr WHEN comparison_expr1 THEN return result_expr1 WHEN comparison_expr2 THEN return result_expr2 WHEN comparison_exprn THEN return result_exprn ELSE else_expr END CASE expr WHEN comparison_expr1 THEN return result_expr1 WHEN comparison_expr2 THEN return result_expr2 WHEN comparison_exprn THEN return result_exprn ELSE else_expr END Facilita las consultas condicionales realizando el trabajo de una sentencia IF- THEN-ELSE

44 3-44 Copyright  Oracle Corporation, 1998. All rights reserved. La función DECODE Facilita las consultas condicionales realizando el trabajo de una sentencia IF- THEN-ELSE DECODE(col/expression, search1, result1 [, search2, result2,...,] [, default]) DECODE(col/expression, search1, result1 [, search2, result2,...,] [, default])

45 3-45 Copyright  Oracle Corporation, 1998. All rights reserved. Resumen Use funciones para: Realizar cálculos sobre los datos. Modificar datos de forma individual. Manipular la salida de grupos de filas utilizando funciones. Alterar formatos de fecha en su visualización utilizando funciones. Convertir tipos de datos de columnas. Use funciones para: Realizar cálculos sobre los datos. Modificar datos de forma individual. Manipular la salida de grupos de filas utilizando funciones. Alterar formatos de fecha en su visualización utilizando funciones. Convertir tipos de datos de columnas.

46 3-46 Copyright  Oracle Corporation, 1998. All rights reserved. Visión General de la Práctica Parte dos Crear consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Crear consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Usar concatenación con funciones. Usar concatenación con funciones. Escribir consultas sensibles a mayúsculas/minúsculas. Escribir consultas sensibles a mayúsculas/minúsculas. Ejecutar cálculos sobre años y meses de servicio para un empleado. Ejecutar cálculos sobre años y meses de servicio para un empleado. Determinar la fecha de revisión para un empleado. Determinar la fecha de revisión para un empleado. Crear consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Crear consultas que requieran el uso de funciones numéricas, de caracteres y de fechas. Usar concatenación con funciones. Usar concatenación con funciones. Escribir consultas sensibles a mayúsculas/minúsculas. Escribir consultas sensibles a mayúsculas/minúsculas. Ejecutar cálculos sobre años y meses de servicio para un empleado. Ejecutar cálculos sobre años y meses de servicio para un empleado. Determinar la fecha de revisión para un empleado. Determinar la fecha de revisión para un empleado.


Descargar ppt "Copyright  Oracle Corporation, 1998. All rights reserved. 3 Funciones de una sola fila."

Presentaciones similares


Anuncios Google