Está en la página 1de 30

3

Uso de funciones de una sola fila para


personalizar la salida
Objetivos

Después de completar esta lección, debería poder hacer lo


siguiente:
• Describir varios tipos de funciones disponibles en SQL
• Usar funciones de caracteres, números y fechas en
sentencias SELECT

3 -2
Agenda de la lección

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones numéricas
• Trabajando con fechas
• Funciones de fecha

3 -3
Funciones SQL

Aporte Producción

Función

argumento 1 La función realiza la


acción
argumento 2
Resultado
valor

argumento norte

3 -4
Dos tipos de funciones SQL

Funciones

Unica fila Fila múltiple


funciones funciones

Devolver un resultado Devolver un resultado


por fila por juego de filas

3 -5
Funciones de una sola fila

Funciones de una sola fila:


• Manipular elementos de datos
• Aceptar argumentos y devolver un valor
• Actuar en cada fila que se devuelve
• Devolver un resultado por fila
• Puede modificar el tipo de datos
• Se puede anidar
• Aceptar argumentos que pueden ser una columna o una
expresión
nombre_función [( arg1, arg2,... )]

3 -6
Funciones de una sola fila

Personaje

Unica fila
General Número
funciones

Conversión Fecha

3 -7
Agenda de la lección

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones numéricas
• Trabajando con fechas
• Funciones de fecha

3 -8
Funciones de caracteres

Personaje
funciones

Conversión de casos Manipulación de personajes


funciones funciones

MÁS BAJO CONCAT


SUPERIOR SUBSTR
INITCAP LONGITUD
INSTRUCCIÓN
LPAD | RPAD
RECORTAR
REEMPLAZAR

3 -9
Funciones de conversión de casos

Estas funciones convierten el caso de las cadenas de


caracteres:
Función Resultado
INFERIOR ( ' Curso de SQL ' curso de sql
)
SUPERIOR ( ' Curso de SQL ' CURSO SQL
)
INITCAP( ' Curso SQL ' ) Curso Sql

3 -11
Uso de funciones de conversión de casos

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


departamento del empleado Higgins:
SELECCIONE id_empleado, apellido, id_departamento
DE empleados
WHERE apellido = 'higgins';

SELECCIONE id_empleado, apellido, id_departamento


DE empleados
DONDE INFERIOR(apellido) = 'higgins';

3 -12
Funciones de manipulación de caracteres

Estas funciones manipulan cadenas de caracteres:

Función Resultado
CONCAT('Hola', 'Mundo') Hola Mundo
SUBSTR('HolaMundo ' ,1,5) Hola
LONGITUD('HolaMundo') 10
INSTR('HolaMundo', 'W') 6
LPAD(salario,10, ' * ' ) ****24000
RPAD(salario, 10, '*') 24000*****
REEMPLAZAR Negro y azul
('JACK y JUE','J','BL')
TRIM('H' DE 'HolaMundo') elloMundo

3 -13
Uso de las funciones de manipulación de
caracteres

SELECCIONE id_empleado, CONCAT(nombre, apellido) NOMBRE,


job_id, LONGITUD (apellido), 2
INSTR(apellido, 'a') "¿Contiene 'a'?"
DE empleados
3
WHERE SUBSTR(job_id, 4) = 'REP';

1 2 3

3 -14
Agenda de la lección

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones numéricas
• Trabajando con fechas
• Funciones de fecha

3 -15
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
REDONDO(45.926, 2) 45.93
TRONCO(45.926, 2) 45.92
MOD(1600, 300) 100

3 -16
Uso de la función REDONDA

1 2

SELECCIONE REDONDO (45.923,2), REDONDO (45.923,0),


REDONDO(45.923,-1) 3
DESDE DOBLE;

1 2 3
DUAL es una tabla ficticia que puede usar para ver los resultados
de funciones y cálculos.

3 -17
Uso de la función TRUNC

1 2

SELECCIONAR TRONCO(45.923,2), TRONCO(45.923),


TRONCO(45.923,-1) 3
DESDE DOBLE;

1 2 3

3 -18
Uso de la función MOD

Para todos los empleados con el cargo de representante de


ventas, calcule el resto del salario después de dividirlo por
5000.
SELECCIONE apellido, salario, MOD (salario, 5000)
DE empleados
WHERE job_id = 'SA_REP';

3 -19
Agenda de la lección

• Funciones SQL de una sola fila


• Funciones de caracteres
• Funciones numéricas
• Trabajando con fechas
• Funciones de fecha

3 -20
Trabajar con fechas

• La base de datos de Oracle almacena fechas en un formato


numérico interno: siglo, año, mes, día, horas, minutos y
segundos.
• El formato de visualización de fecha predeterminado es DD-
MON-RR.
– Le permite almacenar fechas del siglo XXI en el siglo XX
especificando solo los dos últimos dígitos del año
– Le permite almacenar fechas del siglo XX en el
siglo XXI de la misma manera
SELECCIONE apellido, fecha_contratación
DE empleados
WHERE fecha_contratación < ' 01-FEB-88 ';

3 -21
Formato de fecha RR

Año
Año corriente
corriente Fecha específica 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 La fecha de regreso La fecha de regreso
dígitos del 0 – 49 es en el siglo actual. es en el siglo
año en anterior al actual
curso son: La fecha de regreso La fecha de regreso
50 – 99 es en el siglo es en el siglo actual.
posterior al actual.

3 -22
Uso de la función SYSDATE

SYSDATE es una función que devuelve:


• Fecha
• Tiempo

SELECCIONE la fecha del sistema


DESDE dual ;

3 -24
Aritmética con fechas

• Sume o reste un número ao desde una fecha para obtener


un valor de fecha resultante.
• Resta dos fechas para encontrar el número de días entre
esas fechas.
• Agregue horas a una fecha dividiendo el número de horas
por 24.

3 -25
Uso de operadores aritméticos
con fechas

SELECCIONE last_name, (SYSDATE-hire_date)/7 COMO SEMANAS


DE empleados
DONDE departamento_id = 90;

3 -26
Agenda de la lección

• Funciones SQL de una sola fila


• Funciones de carácter
• Funciones numéricas
• Trabajando con fechas
• Funciones de fecha

3 -27
Funciones de manipulación de fechas

Función Resultado
MESES_ENTRE Número de meses entre dos fechas
ADD_MESES Agregar meses calendario hasta la fecha
DÍA SIGUIENTE Al día siguiente de la fecha especificada
ÚLTIMO DÍA Último día del mes

REDONDO Fecha redonda


TRONCO fecha truncada

3 -28
Uso de funciones de fecha

Función Resultado
MESES_ENTRE 19.6774194
('01-SEP-95','11-ENE-94')
AGREGAR_MESES ('31-ENE-96',1) '29-FEB-96'
NEXT_DAY ('01-SEP-95','VIERNES') '08-SEP-95'
LAST_DAY ('01-FEB-95') '28-FEB-95'

3 -29
Uso de funciones ROUND y TRUNC con fechas

Asumir SYSDATE = '25-JUL-03' :

Función Resultado
RONDA(SISFECHA,'MES') 01-AGO-03
ROUND(SISDATE,'AÑO') 01-ENE-04
TRUNC(FECHA DEL SISTEMA, 'MES') 01-JUL-03
TRUNC(SYSDATE,'AÑO') 01-ENE-03

3 -30
Resumen

En esta lección, debería haber aprendido a:


• Realizar cálculos sobre datos usando funciones
• Modificar elementos de datos individuales usando funciones

3 -31
Práctica 3: Resumen

Esta práctica cubre los siguientes temas:


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

3 -32

También podría gustarte