Está en la página 1de 23

SQL posee un nutrido

grupo de funciones

CBY2101 Consultas de Base de Datos


Para comenzar, es
recomendable que te
conectes a Oracle y, en
un usuario nuevo,
ejecutes el script
denominado
CreaBasePropiedades.
sql que se encuentra
disponible en la
pgina, as podrs
probar las sentencias
que revisaremos.
SQL posee un nutrido grupo de funciones que
permiten realizar tareas de diversa ndole.
Estas funciones son de dos tipos: funciones
simples de fila, tambin llamadas funciones de
una sola fila y funciones de grupo, llamadas
tambin funciones agregadas
Estas funciones son una
caracterstica muy poderosa
de SQL y pueden ser usadas
para:

- Modificar datos
individuales.
- Formatear fechas y
nmeros.
- Convertir tipos de datos.
- Realizar clculos sobre los
datos.
- Manipular la salida para
grupos de filas.
La mayora de ellas espera una variable,
columna o una expresin como argumento y
siempre devuelven un valor.
Las funciones de una sola fila
poseen la sintaxis que aprecias
en la imagen, donde:

- Nombre_funcin es el
nombre de la funcin que
deseas utilizar.
- Argn: son los argumentos
que debes proporcionar,
constantes, variables,
campos y/o expresiones.
No obstante, si aprecias
bien, los argumentos son
opcionales, puesto que hay
funciones que no los
requieren.
En general, estas funciones:
- Manipulan elementos de
datos.
- Aceptan argumentos y
devuelven un valor.
- Actan sobre cada fila
devuelta.
- Devuelven un resultado por
fila.
- Pueden modificar el tipo de
dato.
- Se pueden anidar.
- Aceptan argumentos que
pueden ser una columna o una
expresin.
Funciones de caracteres

Las funciones de caracteres aceptan un carcter como argumento y retornan un


valor que puede ser un carcter o un nmero. Se cuentan entre ellas, las funciones
de conversin de caracteres y las funciones de manipulacin de caracteres.
Funciones de conversin de caracteres

Permiten convertir a mayscula, minscula o viceversa el valor de una columna o


expresin. Especficamente:

- LOWER: Convierte el texto de una columna o expresin a minsculas


- UPPER: Convierte el texto de una columna o expresin a maysculas.
- INITCAP: Capitaliza o convierte la inicial de cada palabra a maysculas.
Observa la instruccin y el set de resultados.
La consulta presenta el nombre del empleado
convertido a maysculas con UPPER, luego
convertido a minsculas con LOWER y, por
ltimo, capitalizado con la funcin INITCAP.
Funciones de manipulacin de caracteres

SUBSTR: Devuelve una subcadena de


n caracteres de columna|expresin, a
partir de la posicin m. Si m es
positivo, empieza a contar desde el
principio. Si m es negativo, empieza a
contar desde el final. Si no ponemos
n, devuelve hasta el final de la cadena.
LENGTH: obtiene el nmero de
caracteres o largo de
columna|expresin.
INSTR: Devuelve la posicin de la
ensima aparicin de
texto_buscado en
columna|expresin, buscando a partir
de la posicin m. Si m es negativo,
cuenta la posicin de arranque desde
el final. Por defecto n y m valen 1.
Observa la instruccin y el set de
resultados. La consulta muestra
el nombre completo del
empleado, luego, de esa misma
cadena, extrae con SUBSTR 2
caracteres a contar del tercer
carcter, en la tercera columna
con SUBSTR extrae los ltimos 3
caracteres de la cadena, luego
con INSTR encuentra la posicin
de la primera e a contar del
segundo carcter y, luego
encuentra la posicin de la
segunda e a contar de la
primera encontrada, por ltimo,
obtiene el largo de la cadena con
la funcin LENGTH y luego extrae
3 caracteres a contar del 5
carcter anterior al final de la
cadena
RTRIMLTRIM: Elimina los
espacios en blanco a la derecha
o a la izquierda de la columna o
expresin.
TRIM: Elimina los espacios en
blanco a la izquierda y a la
derecha del texto o columna.
TRIM: Elimina el carcter
especificado de la derecha e
izquierda de la columna o
expresin.
Observa la instruccin y el set de resultados. La consulta aplica la funcin LTRIM para
quitar los espacios a la izquierda de la cadena ALBERTO RIVERA , luego aplica RTRIM
para quitar los espacios a la derecha, luego con TRIM se quitan todos los espacios y,
por ltimo, con TRIM quita la primera y la ltima A de la cadena.
Observa el uso de la tabla DUAL en la consulta. La tabla DUAL es una tabla presente
en todas las instalaciones de Oracle y disponible en todos los esquemas de usuario.
Es una tabla dinmica que puede utilizarse para realizar pruebas y resolver
problemas que se presenten, sin afectar la base de datos. Por omisin, la tabla DUAL
tiene una sola columna llamada DUMMY con valor x, pero luego se adapta a tus
necesidades, como ves en el resultado de la consulta
Funciones de manipulacin de caracteres
(LPAD RPAD CONCAT)

- CONCAT: concatena el valor del


primer argumento con el valor
del segundo argumento.
Equivalente al operador de
concatenacin ||. Acepta slo
dos argumentos.
- LPAD-RPAD: rellena el texto, a la
izquierda o a la derecha, hasta
completar n caracteres, con el
carcter especificado.
- REPLACE: busca el texto
especificado en la columna o
expresin y lo cambia por el
texto indicado como reemplazo.
Observa la instruccin y el set de resultados. La consulta usa LPAD para rellenar el
nombre con asteriscos por la izquierda, hasta completar 10 caracteres, luego con
RPAD rellena a la derecha con el mismo carcter, hasta completar 10 caracteres,
luego rellena el sueldo con 0 ceros hasta completar 10 caracteres. En las columnas
siguientes usa CONCAT para unir paterno y materno.
Recuerda que CONCAT slo recibe dos argumentos, por eso ambos apellidos
aparecen unidos. Si deseas separarlos tendrs que anidar CONCAT dentro de CONCAT
como se aprecia en la ltima columna. Dada esta dificultad, privilegia el uso del
operador de concatenacin sobre el uso de CONCAT.
Funciones de manipulacin de caracteres

Observa la instruccin y el set de resultados.


En la primera columna, la consulta muestra la
direccin tal como est almacenada, en la
segunda columna reemplaza la cadena D/
(decir: de slash) la direccin por una cadena
nula, luego, en la tercera columna, reemplaza
la cadena D/ por la cadena DEPTO NUMERO.
.
Funciones de nmero

Las funciones de nmero se utilizan para


manipular nmeros. Todas estas funciones
aceptan un valor numrico como argumento y
retornan tambin un valor numrico.
- ROUND: redondea la
columna, la expresin o
valor constante a n
posiciones decimales. Si
no se especifica n, o su
valor es cero, el valor se
redondea al valor entero
respectivo. Si n es
negativo, los enteros de la
columna o expresin se
redondean a decenas,
centenas etc. La sintaxis es
la que observas en la
imagen.
- TRUNC: trunca la columna,
la expresin o valor
constante a n posiciones
decimales. Si no se
especifica n, o su valor es
cero, el valor se trunca al
valor entero respectivo. Si n
es negativo, los enteros de
la columna o expresin se
truncan a decenas,
centenas etc. La sintaxis es
la que observas en la
imagen.
- MOD: Devuelve el resto de
la divisin o, en otras
palabras, el resto que
resulta de dividir el
argumento m por n.
Observa las consultas y los respectivos set de
resultados y distingue las diferencias entre
TRUNCAR Y REDONDEAR.
Funciones de nmero

Observa la instruccin y el set de resultados.


La consulta muestra la cifra 25856 truncada y
redondeada a la decena, a la centena, a la
unidad de mil y luego a la decena de mil. En la
ltima columna se usa la funcin MOD para
determinar si un nmero es par.