Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porRoberto Alejandro Santos Rubio Modificado hace 8 años
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.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.