42
Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. S.Q.L. Funciones Funciones

SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L.S.Q.L.

FuncionesFunciones

Page 2: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Funciones

�Además de las funciones agregadas, vistas anteriormente, se pueden utilizar otras funciones:

� de fecha y hora

� de conversión, entre tipos de datos

� de caracteres

Page 3: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Funciones

�Para realizar los ejemplos se utilizan las

tablas del práctico:

clientes (ci_cli, numero)

productos (id_pro, descripcion, precio, tipo)

facturan (fecha, cli_id, pro_id, vta_cant)

Page 4: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

Funciones de Funciones de

Fecha y HoraFecha y Hora

Page 5: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�Funciones� DAY� MONTH� YEAR� WEEKDAY� EXTEND � TODAY - Fecha del Sistema (date)� CURRENT - Fecha del Sistema (datetime)

Page 6: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

��DAYDAY� Retorna el día de un atributo de tipo

date.

� Consulta 1:

�Obtener el total ($) de las ventas realizadas el día 30 de cada mes.

Page 7: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�CONSULTA 1:SELECT SUM(cantidad * precio) Total

FROM FACTURAN F, PRODUCTOS P

WHERE F.ID_PROD = P.ID_PROD

AND DAY(fecDAY(fechaha) = 30) = 30

Page 8: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

��MONTHMONTH� Retorna el mes de un atributo de tipo

date.

� Consulta 2:

�Obtener el total ($) de las ventas realizadas el mes de marzo.

Page 9: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�CONSULTA 2:SELECT SUM(cantidad * precio) Total

FROM FACTURAN F, PRODUCTOS P

WHERE F.ID_PROD = P.ID_PROD

AND MONTH(MONTH(FECHAFECHA) = 3) = 3

Page 10: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

��YEARYEAR

� Retorna el año de un atributo de tipo date.

� Consulta 3:

�Obtener el total ($) de las ventas realizadas en el año 2009.

Page 11: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�CONSULTA 3:SELECT SUM(cantidad * precio) Total

FROM FACTURAN F, PRODUCTOS P

WHERE F.ID_PROD = P.ID_PROD

AND YEAR(YEAR(FECHAFECHA) = 200) = 20099

Page 12: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�CONSULTA 4:

SELECT DAY(DAY(FECHAFECHA) DIA,) DIA,

MONTH(MONTH(FECHAFECHA) MES,) MES,

YEAR(YEAR(FECHAFECHA) A) AÑÑOO

FROM FACTURAN

Page 13: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

��WEEKDAYWEEKDAY

� Retorna el día de la semana de un atributo de tipo date.

� 0 corresponde a Domingo

� 1 corresponde a Lunes

� y así sucesivamente

Page 14: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�CONSULTA 5:�Obtener el total ($) de las ventas

realizadas los días Viernes.

Page 15: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�CONSULTA 5:SELECT SUM(cantidad * precio) Total

FROM FACTURAN F, PRODUCTOS P

WHERE F.ID_PROD = P.ID_PROD

AND WEEKDAY(WEEKDAY(FECHAFECHA) = 5) = 5

Page 16: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�CONSULTA 6:

SELECT WEEKDAY(WEEKDAY(FECHAFECHA) )

DIA_DE_SEMANADIA_DE_SEMANA

FROM VENTAS

Page 17: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

��EXTENDEXTEND� Retorna solamente la parte especificada

en un atributo de tipo datetime.

� Sintaxis:

��EXTEND(atribEXTEND(atrib, , FirstFirst TO TO LastLast))

Page 18: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Fecha y Hora

�EJEMPLOS:� fecha = 2009-08-05 14:55:33

EXTEND(fecha, EXTEND(fecha, monthmonth toto minute)minute)0808--05 14:5505 14:55

EXTEND(fecha, EXTEND(fecha, yearyear toto dayday))20092009--0808--0505

EXTEND(fecha, EXTEND(fecha, hourhour toto secondsecond))14:55:3314:55:33

Page 19: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

Funciones de Funciones de

ConversiConversióónn

Page 20: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Conversión

�Funciones

� DATE

� TO_CHAR

� TO_DATE

Page 21: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Conversión

��DATEDATE

� Convierte una cadena de caracteres en una fecha.

Page 22: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Conversión

�EJEMPLOS:DATE(DATE(‘‘1/1/991/1/99’’))

1/1/991/1/99

DATE(DATE(‘‘331/11/122/99/99’’))

3131/1/122/99/99

Page 23: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Conversión

��TO_CHARTO_CHAR

� Convierte una fecha en una cadena de caracteres, según un formato específicado.

Page 24: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Conversión

�EJEMPLOS:�� fecha = 18/09/2009fecha = 18/09/2009

TO_CHAR(fecha, TO_CHAR(fecha, ““%A %d %B %Y%A %d %B %Y””))

Martes 18 Agosto 2009Martes 18 Agosto 2009

Page 25: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Conversión

��TO_DATETO_DATE

� Convierte una cadena de caracteres en una fecha, según un formato específicado.

Page 26: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Conversión

�EJEMPLOS:TO_DATE(TO_DATE(““19991999--1111--5 13:555 13:55””, ,

““%Y%Y--%m%m--%d %H:%M%d %H:%M””))19991999--1111--05 13:5505 13:55

TO_DATE(TO_DATE(““6/9/20016/9/2001””,,““%d/%m/%Y%d/%m/%Y””))

6/9/20016/9/2001

Page 27: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

Funciones de Funciones de

CaracteresCaracteres

Page 28: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

�Funciones� LOWER

� UPPER

� INITCAP

� REPLACE

� SUBSTRING

� CONCAT

Page 29: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��LOWERLOWER� Cambia una cadena de

caracteres a minúsculas.

Page 30: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��UPPERUPPER� Cambia una cadena de

caracteres a mayúsculas.

Page 31: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��INITCAPINITCAP� Cambia una cadena de

caracteres de forma título.

� hola informix - dbaccess

�� Hola Hola InformixInformix -- DbaccessDbaccess

Page 32: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��REPLACEREPLACE� Sustituye una cadena de caracteres

por otra.� Ejemplo:�� REPLACE(nombre, REPLACE(nombre, ““ssss””, , ““cccc””))

�instrussssión instrucccción�diressssión direcccción�assssión acccción

Page 33: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��SUBSTRINGSUBSTRING� Muestra una cadena de

caracteres a partir de una posición y hasta un largo determinado (opcional).

Page 34: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

�EJEMPLOS:� nom=‘Hola Informix-dbaccess’

SUBSTRING(nomSUBSTRING(nom, FROM 1 FOR 4), FROM 1 FOR 4)HolaHola

SUBSTRING(nomSUBSTRING(nom, FROM 6), FROM 6)

InformixInformix--dbaccessdbaccessSUBSTRING(nomSUBSTRING(nom, FROM 6 FOR 14), FROM 6 FOR 14)InformixInformix

Page 35: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��CONCATCONCAT� Concatena dos cadenas de

caracteres en una sola

Page 36: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

�EJEMPLOS:� nom=‘Fulano’� ape=‘De Tal’

CONCATCONCAT(nom(nom, , apeape))FulanoDeFulanoDe TalTal

Page 37: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

OtrasOtras

FuncionesFunciones

Page 38: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

�Funciones� ROUND

� TRUNC

� USER

� SITENAME

Page 39: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��ROUND(VAL,N_DEC)ROUND(VAL,N_DEC)� Redondea un valor numérico

Val = 2,769

ROUND(val,2)2,77

Page 40: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��TRUNC(VAL,N_DEC)TRUNC(VAL,N_DEC)� Quita decimales de un valor

numérico

Val = 2,769

TRUNC(val,2)2,76

Page 41: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��USERUSER� Devuelve el nombre de usuario

actual

Page 42: SQL - Funcionescarambula.net/wp-content/uploads/2010/09/SQL-Funciones.pdf · Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010 S.Q.L. -Funciones Además

Prof. Leonardo Carámbula - Sistemas de Bases de Datos II – C.E.T.P. – 2010

S.Q.L. - Caracteres

��SITENAMESITENAME� Devuelve el nombre del

servidor actual