Sie sind auf Seite 1von 6

Formacin 2002. Tema 6.

Funciones

TEMA 6 FUNCIONES
1. Expresiones y las funciones. 2. Consultas por grupos. 3. Ejercicios.

Prcticas de Diseo y Gestin de Bases de Datos

Page 1 of 6

Formacin 2002. Tema 6.

Funciones

1. LAS EXPRESIONES Y LAS FUNCIONES. Las funciones se usan dentro de expresiones y actan con los valores de las columnas, variables o constantes. Generalmente producen dos tipos de resultados: o Modificacin de la informacin original: Ej Pasar de maysculas a minsculas una cadena de caracteres. o Informacin calculada, como longitus de una cadena, operacin artimtica entre los valores de una columna. 1.1. Expresiones y funciones aritmticas. Las funciones aritmticas trabajan con tipos de datos de tipo numrico NUMBER. Podemos dividir las funciones aritmticas en tres grupos: o Funciones de valores simples. o Funciones de grupos de valores. o Funciones de listas. Es possible combinar columnas entre s y constantes y columnas con los cuatro operadores aritmticas. Las funciones se usarn en la clusula SELECT. Cuando usamos funciones en SELECT hay que ponerle un alias porque si no nos aparece en esa columna la expresin aritmtica.

1.1.1. Funciones de valores simples

Sintxis ABS (n) CEIL (n) FLOOR (n) MOD (m,n) POWER (m,n) ROUND (n[,m])

SIGN (n) SQRT (n)

Descripcin Retorna el valor absoluto del nmero Retorna el entero ms pequeo mayor o igual a nmero. Retorna el entero ms grande menor o igual a nmero Retorna el resto de m dividido por n. Si n es 0, m es devuelto Retorna m elevado a la n-sima potencia. N debe se un entero; si no, un error ser devuelto. Devuelve n redondeado a m lugares a la derecha del punto decimal; si m es omitido, a 0 lugares. m puede ser negativo entonces redondea a la izquierda del punto decimal. Si n<0, la funcin retorna -1; si n=0, la funcin retorna 0; si n>0, la funcin retorna 1. Retorna la raiz cuadrada de n; si n<0, NULL. SQRT devuelve
Page 2 of 6

Prcticas de Diseo y Gestin de Bases de Datos

Formacin 2002. Tema 6.

Funciones

TRUNC (n,[m])

EXP (n) LOG (n,m) LN (n) SIN (n*PI/180) COS (n *PI/180) TAN (n * PI/180) ASIN (n) ACOS (n) ATAN (n) NVL(valor, exp)

resultado real Trunca n a m dgitos comenzando en el punto decimal. Si m es omitido, trunca 0 lugares. m puede ser negativo para truncar m digitos a la izquierda del punto decimal. Retorna el nmero e elevado a la potencia n. Retorna el logaritmo en base n de m. Retorna el logaritmo neperiano de n. Retorna el seno de n. Retorna el coseno de n. Retorna la tangente de n. Retorna el arcoseno de n. Retorna el arcocoseno de n. Retorna el arcotangente de n. Si valor es nulo se sustituye por exp. Si no la funcin devuelve valor. Esta funcin se puede usar con cualquier tipo de datos.

1.1.2

Funciones de Grupo. Las funciones de grupo afectan a todo el conjunto de una columna. Tambin podemos coger un subconjunto de filas y operar con los valores de algunas columnas. En el argumento de las funciones podemos incluir DISTINCT. Dentro del SELECT podemos incluir tantas funciones como queramos.

Sintxis COUNT SUM AVG MAX MIN STDDEV VARIANCE

Descripcin Cuenta el nmero de ocurrencias en una columna. Calcula la suma de valores en una columna (de tipo numrico). Calcula la media de valores en una columna (de tipo numrcio, promedio). Busca el valo mximo de una columna. Busca el valor mnimo de una columna. Calcula la desviacin stndar de todos los valores de un grupo de filas. Calcula la varianza de todos los valores de un grupo de filas.

Prcticas de Diseo y Gestin de Bases de Datos

Page 3 of 6

Formacin 2002. Tema 6.

Funciones

1.1.3

Funciones de listas. Las funciones de listas trabajan sobre un grupo de columnas dentro de una misma fila. Comparan los valores de cada una de las columnas en el interior de una fila para obtener el mayor o el menor valor de la lista. Descripcin Obtiene el mayor valor de una lista. Obtiene el menor valor de una lista.

Sintxis GREATEST(valor1, valor2...) LEAST(valor1, valor2...) 1.2. Funciones de cadena

El tipo de datos con el que trabajan es CHAR o VARCHAR2. Es decir, trabajan con caracteres alfanumricos. La mayora de los SGBD permiten hacer operaciones de cadena,.... Son importantes TO_CHAR y TO_NUMBER. Descripcin Concatena las dos series de caracteres. Los nombres de columnas son series de caracteres vlidos. Retorna el carcter que tiene ASCII o EBCDIC para el valor n. Pone en maysculas la letra inicial de la serie. Busca la subserie sserie en la serie serie comenzando en la posicin spos. Si se encuentra la que busca, retornar su posicin, si no retornara un cero. Dara el menor valor de la lista dada. Dara el nmero de caracteres que compone la serie. Pone toda la serie de caracteres en minsculas Rellena la parte izquierda de la serie serie con el carcater carac. Elimina caracteres desde la izquierda de serie, que comiencen con el carcter a eliminar hasta el primer carcter no incluido en conjunto. Si la serie 1 tiene valor nulo, retorna la serie 2. Igual que LPAD pero el relleno se efecta a la derecha. Igual que LTRIM pero a partir de la derecha de la
Page 4 of 6

Sintxis Serie 1 || Serie 2 CONCAT (Serie1, Serie2) CHR (n) INITCAP (serie) INSTR (serie, sserie, [,spos])

LEAST (list) LENGTH (serie) LOWER (serie) LPAD (serie, long [,carac]) LTRIM (serie, conjunto)

NVL (serie 1, serie 2) RPAD (serie, long [, carac]) RTRIM (serie, conjunto)

Prcticas de Diseo y Gestin de Bases de Datos

Formacin 2002. Tema 6.

Funciones

SOUNDEX (serie) SUBSTR (serie, spos, [,long]) TO_CHAR (serie) TO_NUMBER (serie) TRANSLATE (col, serie1, serie2) UPPER (serie) 2. CONSULTAS POR GRUPO

serie. Localiza la que se asemeje fonticamente a la serie especificada. Extrae un trozo de la serie de long caracteres comenzando en la posicin spos. Convierte un campo tipo numrico o date en un campo tipo carcter (CHAR). Convierte un campo tipo carcter en datos de tipo nmero. Substituye serie1 por serie2 en la columna col. Pone toda la serie de caracteres en maysculas.

2.1. GROUP BY A la tabla de salida de una consulta se la puede agrupar en un conjunto de grupos tal que todas las filas que pertenecen a un grupo tienen un mismo valor en una columna dada. Las funciones de grupo se calculan para cada grupo. Podemos usar la clusula WHERE para hacer filtro sobre las filas, que ir siempre delante de la clusula GROUP BY. Un grupo es definido como las filas que tienen un valor comn en uno o ms columnas. Estas columnas tienen que estar en la clusula GROUP BY. Solo se devuelve una fila por cada grupo. Las columnas que aparezcan en la clusula GROUP BY no podrn aparecer en la clusula SELECT excepto como argumento para agrupar funciones. 2.2. HAVING Equivale a un WHERE aplicado a grupos. No se podr usar si antes no hemos usado GROUP BY. Los grupos que no cumplen el criterio especificado en HAVING no se ingluyen en el resultado. ANOTACIONES Podemos poner un alias, sobre todo si estamos usando una funcin. Este cambio es slo temporal y slo afecta a la tabla de salida. VALOR NUL Y NVL Cuando una columna con el valor NULL es usada en una expresin aritmtica no tiene sentido, y se usa el valor NVL para asignarle el valor 0.
Page 5 of 6

Prcticas de Diseo y Gestin de Bases de Datos

Formacin 2002. Tema 6.

Funciones

EJERCICIOS
21. Obtener el margen de beneficios de aquellos artculos cuyo coste de adquisicin super las 2000 ptas. 22. Calcular la media de peso de todos los artculos. 23. Calcular la media de peso, el margen mximo (diferencia mxima entre el precio de venta y precio de compra) y la diferencia que se d del mayor precio de venta y el menor precio de compra. Esto se calcular para aquellos artculos con color definido. 24. Contar el nmero de colores diferentes existentes en stock. 25. Calcular el precio de venta medio de los artculos agrupados y ordenados por colores. 26. Calcular el precio de venta medio de los artculos de cada color, excluyendo aquellos artculos cuyo precio de compra es inferior a 100 ptas y adems ordenados por colores. 27. Contar el nmero de colores diferentes, para cada artculo excepto la impresora, y agrupados por colores y nombre. 28. Buscar el color de los artculos cuyo precio de venta medio por color supera las 2000 ptas y ordenados por colores. 29. Preguntar por el nmero de tienda que ha hecho ms de dos ventas entra estas fechas: 20010109 y 20010113. Visualizar tanto el nmero de ventas efectudads como el nmero de artculos. 30. Hacer usando y no usando NVL: Visualizar el nombre, peso, precio venta y suma de pesos y precio ventas.

Prcticas de Diseo y Gestin de Bases de Datos

Page 6 of 6

Das könnte Ihnen auch gefallen