Sunteți pe pagina 1din 41

3

Single-row Function Funciones sobre filas individuales

OBJETIVOS
Al completar esta leccin, deben de ser capaces de realizar lo siguiente: Describir varios tipos de funciones disponibles en SQL. Usar las funciones de carcter, numricas y de fecha en el estatuto SELECT. Describir el uso de las funciones de conversin.

FUNCIONES SQL

Funcin
Arg1

Arg2

Resultado

ArgN

LOS DOS TIPOS DE FUNCIONES SQL


Funciones

Funciones sobre filas individuales

Funciones sobre mltiples filas

FUNCIONES SOBRE FILAS


INDIVIDUALES
Manipulan

unidades de dato. Varios argumentos, un valor de salida. Actan sobre cada una de las filas regresadas. Regresan un resultado por fila. Pueden modificar tipos de datos. Pueden ser anidadas.
nombre_funcion (columna|expresin, [arg1, arg2, ])

FUNCIONES SOBRE FILAS


INDIVIDUALES
Caracter

General
Singlerow Functions

Numero

Conver -sin

Fecha

FUNCIONES CARACTER
Funciones Caracter

Case conversion functions

Character manipulation function

LOWER UPPER INITCAP

CONCAT SUBSTR LENGTH INSTR LPAD

CASE CONVERSION FUNCTIONS


Cambian

las maysculas y minsculas de cadenas de caracteres.


Funcin LOWER(SQL Course) UPPER(SQL Course) INITCAP(SQL Course) Resultado sql course SQL COURSE Sql Course

USANDO LAS FUNCIONES DE


MAYSCULAS Y MINSCULAS
La siguiente sentencia no nos arrojar ningn resultado, porque las maysculas y minsculas no corresponden a lo que tenemos en la base de datos.

SELECT EMPLOYEE_ID, LAST_NAME, DEPARTAMENT_ID FROM EMPLOYEES WHERE LAST_NAME = taylor;


Si desconocemos cmo esta la informacin en la base de datos, nos conviene convertir a minsculas lo que tenemos en la base de datos y compararlo con una cadena tambin en minsculas. SELECT EMPLOYEE_ID, LAST_NAME, DEPARTAMENT_ID FROM EMPLOYEES WHERE LOWER(LAST_NAME) = taylor;

FUNCIONES DE MANIPULACIN DE CARACTERES


Funcin CONCAT(Good, String) SUBSTR(String, 1, 3) LENGTH(String) INSTR(String, r) LPAD(SALARY, 10, *) Resultado GoodString Str 6 3 ******5000

USANDO EL LAS FUNCIONES DE


MANIPULACIN DE CARACTERES
SELECT LAST_NAME, CONCAT(LAST_NAME, FIRST_NAME), LENGTH(LAST_NAME), INSTR(LAST_NAME, s) FROM EMPLOYEES WHERE SUBSTR(LAST_NAME, 2, 2) = ar;
LAST_NAME CONCAT(LAST_NAME, FIRST_NAME) LENGTH(LAST_NAME) INSTR(LAST_NAME,a)

Hartstein

HartsteinMichael

Markle
Marlow Marvins Partners Sarchand Vargas

MarkleSteven
MarlowJames MarvinsMattea PartnersKaren SarchandNandita VargasPeter

6
6 7 8 8 6

0
0 7 8 0 6

FUNCIONES NUMRICAS
ROUND:

Redondea valores a un decimal

especfico. ROUND(45.926, 2)
TRUNC:

45.93

Trunca valores a un decimal especfico. TRUNC(45.926, 2) 45.92

MOD:

Regresa el residuo de la divisin. MOD(1600, 300) 100

USANDO LA FUNCIN ROUND


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

USANDO LA FUNCIN TRUNC


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

USANDO LA FUNCIN MOD


SELECT LAST_NAME, SALARY, COMMISSION_PCT, SALARY*COMMISSION_PCT COMM, MOD(SALARY, SALARY*COMMISSION_PCT) MOD FROM EMPLOYEES WHERE COMMISSION_PCT >= .3;

TRABAJANDO CON FECHAS


Oracle

almacena las fechas internamente en formato numrico: siglo, ao, mes, da, horas, minutos, segundos. El formato por defecto, para la configuracin regional de Mxico, es DD/MM/YY. SYSDATE es una funcin que me regresa la fecha y hora del sistema. DUAL es una tabla comodn que se usa para ver SYSDATE.

ARITMTICA CON FECHAS


Suma

a una fecha o resta de una fecha un nmero, para obtener como resultado una fecha. Restar dos fechas para encontrar el nmero de das entre dichas fechas. Suma horas a una fecha dividiendo el nmero de horas entre 24.

USANDO LOS OPERADOR ARITMTICOS CON FECHAS


SELECT LAST_NAME, (SYSDATE-HIRE_DATE)/7 SEMANAS FROM EMPLOYEES WHERE DEPARTMENT_ID = 100;

FUNCIONES DE FECHAS
Funcin
MONTHS_BETWEEN ADD_MONTHS NEXT_DAY LAST_DAY ROUND

TRUNC

Descripcin Nmero de meses entre dos fechas Agrega meses a la fecha Siguiente da de la semana de la fecha ltimo da del mes Redondea fecha Trunca fecha

USANDO FUNCIONES DE FECHA

MONTHS_BETWEEN(01/09/95,11/01/94) 19.6774194

ADD_MONTHS(11/01/94, 6) 11-JUL-94
NEXT_DAY(01/09/95, Viernes) 08-SEP-95 LAST_DAY(01/09/95)

30-SEP-95

USANDO FUNCIONES DE FECHA

ROUND(TO_DATE(25/07/95), MONTH) 01/08/95 ROUND(TO_DATE(25/07/95), YEAR) 01/01/96

TRUNC(TO_DATE(25/07/95), MONTH) 01/07/95


TRUNC(TO_DATE(25/07/95), YEAR) 01/01/95

Nota: para esta funcin se debe de escribir en ingls el segundo argumento.

FUNCIONES DE CONVERSIN
Conversin de Tipo de Datos

Conversin Implcita

Conversin Explcita

CONVERSIN IMPLCITA DE TIPOS DE DATOS


En

asignaciones, Oracle puede convertir automticamente:


A NUMERO FECHA VARCHAR2 VARVHAR2

De VARCHAR2 o CHAR VARCHAR2 o CHAR NMERO FECHA

CONVERSIN IMPLCITA DE TIPOS DE DATOS


En

evaluacin de expresiones, Oracle puede convertir automticamente:


A NUMERO FECHA

De VARCHAR2 o CHAR VARCHAR2 o CHAR

CONVERSIN EXPLCITA DE TIPOS DE DATO

FUNCIN TO_CHAR CON FECHAS


TO_CHAR(fecha, fmt)

El

modelo de formato (format model):

Debe ser encerrado entre comillas simples y es sensible a maysculas y minsculas. Puede incluir cualquier elemento de un formato vlido de fecha. Puede utilizarse un fm para remover blancos o ceros a la izquierda. Debe ser separado del valor de fecha por medio de una coma.

ELEMENTOS MODELOS DE FORMATOS DE FECHAS


Modelo de Formato
YYYY

Significado
Ao completo con nmeros Ao en palabras Mes en valor de 2 dgitos Nombre completo del mes Da numrico Abreviacin de 3 letras del nombre del da de la semana Nombre completo del da de la semana

YEAR
MM MONTH

D
DY DAY

ELEMENTOS DEL MODELO DE


FORMATO FECHA
Los

elementos de tiempo dan formato a la parte de la fecha que contiene la hora.


HH24:MI:SS AM 15:45:32 PM

Se

pueden agregar cadenas de caracteres encerrndolas en doble comillas.


DD DE MONTH 12 DE OCTUBRE

Los

sufijos de los das los deletrean.


ddspth fourteenth

USANDO LA FUNCIN TO_CHAR CON FECHAS


SELECT LAST_NAME, TO_CHAR(HIRE_DATE, DD Month YYYY) Fecha de contratacin FROM EMPLOYEES;

FUNCIN TO_CHAR CON NMEROS


TO_CHAR(nmero, fmt)

Se

usan los siguientes formatos con la funcin TO_CHAR para desplegar valores numricos como carcter.
9 0 $ L Representa un nmero Forza a que se muestre a un cero Muestra un signo de dlar flotante Usa el smbolo flotante de la moneda local

. ,

Imprime un punto decimal Imprime un indicador de miles

USANDO LA FUNCIN TO_CHAR CON FECHAS


SELECT FIRST_NAME, SALARY, TO_CHAR(SALARY, $99,999) FMT_SALARY FROM EMPLOYEES WHERE UPPER(LAST_NAME) = KING;

FUNCIONES TO_NUMBER Y TO_DATE


Usa

la funcin TO_NUMBER para convertir cadenas de caracteres a nmeros con formato.


TO_NUMBER(caracter)

Usa

la funcin TO_DATE para convertir cadenas de caracteres a fechas con formato.


TO_DATE(caracter[, fmt])

FORMATO DE FECHA RR
Ao Actual 1995
1995 2001 2001

Fecha 27-OCT-95
27-OCT-17 27-OCT-17 27-OCT-95

Formato RR 1995
2017 2017 1995

Formato YY 1995
1917 2017 2095

Si el ao especificado en dos dgitos es 0 - 49 0 - 49 50 - 99

Si los dos dgitos del ao actual son

Regresa la fecha Regresa la fecha con el siglo con el siglo actual. anterior. Regresa la fecha Regresa la fecha con el siglo con el siglo actual. siguiente.

50 - 99

FUNCIN NVL
Convierte

un valor nulo a un valor vlido

Los valores que se pueden usar son los de fecha, carcter y nmero. Los tipos de dato deben de coincidir:
NVL(COMMISSION_PCT, 0) NVL(HIRE_DATE, 01-JAN-97) NVL(PHONE_NUMBER, Sin telfono)

USANDO LA FUNCIN NVL


SELECT LAST_NAME, SALARY, COMMISION_PCT, (SALARY*12)+NVL(COMMISSION_PCT*SALARY, 0) NVL, (SALARY*12)+(COMMISSION_PCT*SALARY) NULL FROM EMPLOYEES;

FUNCIN DECODE
Facilita

condiciones haciendo el trabajo de un CASE o de un IF-THEN-ELSE

DECODE(columna/expresin, condicin1, resultado1 [, condicin2, resultado2, ] [, default])

USANDO LA FUNCIN DECODE


SELECT JOB_ID, SALARY, DECODE(SUBSTR(JOB_ID, 4, 3), 'MAN', SALARY*1.20, 'CLE', SALARY*1.15, 'REP', SALARY*1.10, SALARY) "SALARIO AJUSTADO" FROM EMPLOYEES;

ANIDANDO FUNCIONES
Las

funciones sobre filas individuales pueden ser anidadas a cualquier nivel. Las funciones anidadas son evaluadas del nivel ms interno al ms externo.

F3(F2(F1(col, arg1), arg2), arg3)


Paso 1 = Resultado 1 Paso 2 = Resultado 2 Paso 3 = Resultado 3

ANIDANDO FUNCIONES
SELECT LAST_NAME, NVL(TO_CHAR(MANAGER_ID), Sin Jefe) FROM EMPLOYEES WHERE MANAGER_ID IS NULL;

RESMEN
Usa

las funciones para:

Realizar clculos sobre datos Modificar elementos de datos individuales Manipular la salida de un grupo de filas Cambiar los formatos de fecha que se muestran Convertir los tipos de datos de las columnas

RESMEN PRCTICA
Crear

consultas que requieran el uso de funciones numricas, carcter y de fecha. Usar la concatenacin con funciones. Escribir consultas sin tomar en cuenta maysculas y minsulas para probar la utilidad de las funciones de carcter. Realizar clculos de aos y meses de servicio de los empleados. Determinar la fecha en que se evaluarn a los empleados.

S-ar putea să vă placă și