Está en la página 1de 31

Uso de Funciones de Una Sola Fila para

Personalizar la Salida

Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para lo


siguiente:
• Describir los diferentes tipos de funciones disponibles en
SQL
• Utilizar caracteres, números y funciones de fecha en
sentencias SELECT

3-2 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones de número
• Trabajo con fechas
• Funciones de fecha

3-3 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones SQL

Entrada Salida

Función

arg 1 La función realiza la


acción
arg 2
Resultado
valor

arg n

3-4 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Dos Tipos de Funciones SQL

Funciones

Una sola fila Varias filas


funciones funciones

Devuelve un resultado Devuelve un resultado


por fila por juego de filas

3-5 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Una Sola Fila

Funciones de una sola fila:


• Manipular elementos de datos
• Aceptar argumentos y devolver un valor
• Actuar en cada fila devuelta
• Devolver un resultado por fila
• Posibilidad de modificar el tipo de dato
• Posibilidad de anidamiento
• Aceptar argumentos que pueden ser una columna o una
expresión
function_name [(arg1, arg2,...)]

3-6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Una Sola Fila

Carácter

Una sola fila


General Número
funciones

Conversión Date

3-7 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones de número
• Trabajo con fechas
• Funciones de fecha

3-8 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Carácter

Carácter
funciones

Conversión de caracteres Manipulación de caracteres


funciones funciones

LOWER CONCAT
UPPER SUBSTR
INITCAP LENGTH
INSTR
LPAD | RPAD
TRIM
REPLACE

3-9 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Conversión de Caracteres

Estas funciones convierten las mayúsculas/minúsculas para


cadenas de caracteres:
Función Resultado
LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE
INITCAP('SQL Course') Sql Course

3-11 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de Funciones de Conversión de Caracteres

Mostrar el número de empleado, nombre y número de


departamento del empleado Higgins:
SELECT employee_id, last_name, department_id
FROM employees
WHERE last_name = 'higgins';

SELECT employee_id, last_name, department_id


FROM employees
WHERE LOWER(last_name) = 'higgins';

3-12 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Manipulación de Caracteres

Estas funciones manipulan las cadenas de caracteres:

Función Resultado
CONCAT('Hello', 'World') HelloWorld
SUBSTR('HelloWorld',1,5) Hello
LENGTH('HelloWorld') 10
INSTR('HelloWorld', 'W') 6
LPAD(salary,10,'*') *****24000
RPAD(salary, 10, '*') 24000*****
REPLACE BLACK and BLUE
('JACK and JUE','J','BL')
TRIM('H' FROM 'HelloWorld') elloWorld

3-13 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de las Funciones de Manipulación de
Caracteres

1
SELECT employee_id, CONCAT(first_name, last_name) NAME,
job_id, LENGTH (last_name), 2
INSTR(last_name, 'a') "Contains 'a'?"
FROM employees 3
WHERE SUBSTR(job_id, 4) = 'REP';

1 2 3

3-14 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones de número
• Trabajo con fechas
• Funciones de fecha

3-15 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones Numéricas

• ROUND: redondea el valor a un decimal especificado


• TRUNC: trunca el valor a un decimal especificado
• MOD: devuelve el resto de la división

Función Resultado
ROUND(45.926, 2) 45.93
TRUNC(45.926, 2) 45.92
MOD(1600, 300) 100

3-16 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Función ROUND

1 2
SELECT ROUND(45.923,2), ROUND(45.923,0),
ROUND(45.923,-1) 3
FROM DUAL;

1 2 3
DUAL es una tabla pública que puede utilizar para ver los
resultados de funciones y cálculos.

3-17 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Función TRUNC

1 2
SELECT TRUNC(45.923,2), TRUNC(45.923),
TRUNC(45.923,-1) 3
FROM DUAL;

1 2 3

3-18 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Función MOD

Para todos los empleados con un puesto de vendedor, calcular


el resto del salario después de dividirlo entre 5.000.

SELECT last_name, salary, MOD(salary, 5000)


FROM employees
WHERE job_id = 'SA_REP';

3-19 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones de número
• Trabajo con fechas
• Funciones de fecha

3-20 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Trabajo con Fechas

• Oracle Database almacena fechas en un formato numérico


interno: siglo, año, mes, día, horas, minutos y segundos.
• El formato de visualización de la fecha por defecto es
DD-MON-RR.
– Permite almacenar fechas del siglo 21 en el siglo 20
especificando sólo los dos últimos dígitos del año
– De la misma forma, permite almacenar fechas del
siglo 20 en el siglo 21

SELECT last_name, hire_date


FROM employees
WHERE hire_date < '01-FEB-88';

3-21 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Formato de Fecha RR

AñoActual
Año Actual Fecha Especificada Formato RR Formato YY
1995 27-OCT-95 1995 1995
1995 27-OCT-17 2017 1917
2001 27-OCT-17 2017 2017
2001 27-OCT-95 1995 2095

Si el año de dos dígitos especificado es:

0–49 50–99
Si dos de La fecha de La fecha de
los dígitos 0–49 devolución está en devolución está en el
del año el siglo actual siglo anterior al actual
actual son: La fecha de devolución La fecha de
50–99 está en el siglo devolución está en
posterior al actual el siglo actual

3-22 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de la Función SYSDATE

SYSDATE es una función que devuelve:


• Fecha
• Hora

SELECT sysdate
FROM dual;

3-24 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Operadores Aritméticos con Fechas

• Sumar o restar un número de una fecha para obtener un


valor de fecha resultante.
• Restar dos fechas para obtener el número de días entre
esas fechas.
• Agregar horas a una fecha dividendo entre el número de
horas entre 24.

3-25 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de Operadores Aritméticos
con Fechas

SELECT last_name, (SYSDATE-hire_date)/7 AS WEEKS


FROM employees
WHERE department_id = 90;

3-26 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Agenda

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones de número
• Trabajo con fechas
• Funciones de fecha

3-27 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Funciones de Manipulación de Fecha

Función Resultado
MONTHS_BETWEEN Número de meses entre dos fechas
ADD_MONTHS Agregar meses de calendario a fecha
NEXT_DAY Siguiente día de la fecha especificada
LAST_DAY Último día del mes

ROUND Redondear fecha


TRUNC Truncar fecha

3-28 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de las Funciones de Fecha

Función Resultado
MONTHS_BETWEEN 19.6774194
('01-SEP-95','11-JAN-94')
ADD_MONTHS (‘31-JAN-96',1) '29-FEB-96'
NEXT_DAY ('01-SEP-95','FRIDAY') '08-SEP-95'
LAST_DAY ('01-FEB-95') '28-FEB-95'

3-29 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Uso de las Funciones ROUND y TRUNC con Fechas

Supongamos SYSDATE = '25-JUL-03':

Función Resultado
ROUND(SYSDATE,'MONTH') 01-AUG-03
ROUND(SYSDATE ,'YEAR') 01-JAN-04
TRUNC(SYSDATE ,'MONTH') 01-JUL-03
TRUNC(SYSDATE ,'YEAR') 01-JAN-03

3-30 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Prueba

¿Cuáles de las siguientes afirmaciones sobre funciones de una


sola fila son ciertas?
1. Manipular elementos de datos
2. Aceptar argumentos y devolver un valor por argumento
3. Actuar en cada fila devuelta
4. Devuelve un resultado por juego de filas
5. Posibilidad de modificar el tipo de dato
6. Posibilidad de anidamiento
7. Aceptar argumentos que pueden ser una columna o una
expresión

3-31 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Resumen

En esta lección, debe haber aprendido lo siguiente:


• Realizar cálculos de datos utilizando funciones
• Modificar elementos de datos individuales utilizando
funciones

3-32 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.
Práctica 3: Visión General

En esta práctica se abordan los siguientes temas:


• Escritura de una consulta que muestre la fecha actual
• Creación de consultas que requieran el uso de funciones
numéricas, de carácter y de fecha
• Realización de cálculos de años y meses de servicio de un
empleado

3-33 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados.