11 Lenguaje SQL: Funciones
Si consideramos que MySQL es rico en lo que respecta a operadores, en lo que se refiere a funciones, podemos considerarlo millonario. MySQL dispone de multitud de funciones.
Pero no las explicaremos aquí, ya que este curso incluye una referencia completa. Tan sólo las agruparemos por tipos, e incluiremos los enlaces correspondientes a la documentación de cada una.
Funciones de control de flujo
Las funciones de esta categoría son:
IF | Elección en función de una expresión booleana |
IFNULL | Elección en función de si el valor de una expresión es NULL |
NULLIF | Devuelve NULL en función del valor de una expresión |
Funciones matemáticas
Las funciones de la categoría de matemáticas son:
ABS | Devuelve el valor absoluto |
ACOS | Devuelve el arcocoseno |
ASIN | Devuelve el arcoseno |
ATAN y ATAN2 | Devuelven el arcotangente |
CEILING y CEIL | Redondeo hacia arriba |
COS | Coseno de un ángulo |
COT | Cotangente de un ángulo |
CRC32 | Cálculo de comprobación de redundancia cíclica |
DEGREES | Conversión de grados a radianes |
EXP | Cálculo de potencias de e |
FLOOR | Redondeo hacia abajo |
LN | Logaritmo natural |
LOG | Logaritmo en base arbitraria |
LOG10 | Logaritmo en base 10 |
LOG2 | Logaritmo en base dos |
MOD o % | Resto de una división entera |
PI | Valor del número π |
POW o POWER | Valor de potencias |
RADIANS | Conversión de radianes a grados |
RAND | Valores aleatorios |
ROUND | Cálculo de redondeos |
SIGN | Devuelve el signo |
SIN | Cálculo del seno de un ángulo |
SQRT | Cálculo de la raíz cuadrada |
TAN | Cálculo de la tangente de un ángulo |
TRUNCATE | Elimina decimales |
Funciones de cadenas
Las funciones para tratamiento de cadenas de caracteres son:
ASCII | Valor de código ASCII de un carácter |
BIN | Converión a binario |
BIT_LENGTH | Cálculo de longitud de cadena en bits |
CHAR | Convierte de ASCII a carácter |
CHAR_LENGTH o CHARACTER_LENGTH | Cálculo de longitud de cadena en caracteres |
COMPRESS | Comprime una cadena de caracteres |
CONCAT | Concatena dos cadenas de caracteres |
CONCAT_WS | Concatena cadenas con separadores |
CONV | Convierte números entre distintas bases |
ELT | Elección entre varias cadenas |
EXPORT_SET | Expresiones binarias como conjuntos |
FIELD | Busca el índice en listas de cadenas |
FIND_IN_SET | Búsqueda en listas de cadenas |
HEX | Conversión de números a hexadecimal |
INSERT | Inserta una cadena en otra |
INSTR | Busca una cadena en otra |
LEFT | Extraer parte izquierda de una cadena |
LENGTH u OCTET_LENGTH | Calcula la longitud de una cadena en bytes |
LOAD_FILE | Lee un fichero en una cadena |
LOCATE o POSITION | Encontrar la posición de una cadena dentro de otra |
LOWER o LCASE | Convierte una cadena a minúsculas |
LPAD | Añade caracteres a la izquierda de una cadena |
LTRIM | Elimina espacios a la izquierda de una cadena |
MAKE_SET | Crea un conjunto a partir de una expresión binaria |
OCT | Convierte un número a octal |
ORD | Obtiene el código ASCII, incluso con caracteres multibyte |
QUOTE | Entrecomilla una cadena |
REPEAT | Construye una cadena como una repetición de otra |
REPLACE | Busca una secuencia en una cadena y la sustituye por otra |
REVERSE | Invierte el orden de los caracteres de una cadena |
RIGHT | Devuelve la parte derecha de una cadena |
RPAD | Inserta caracteres al final de una cadena |
RTRIM | Elimina caracteres blancos a la derecha de una cadena |
SOUNDEX | Devuelve la cadena "soundex" para una cadena concreta |
SOUNDS LIKE | Compara cadenas según su pronunciación |
SPACE | Devuelve cadenas consistentes en espacios |
SUBSTRING o MID | Extraer subcadenas de una cadena |
SUBSTRING_INDEX | Extraer subcadenas en función de delimitadores |
TRIM | Elimina sufijos y/o prefijos de una cadena. |
UCASE o UPPER | Convierte una cadena a mayúsculas |
UNCOMPRESS | Descomprime una cadena comprimida mediante COMPRESS |
UNCOMPRESSED_LENGTH | Calcula la longitud original de una cadena comprimida |
UNHEX | Convierte una cadena que representa un número hexadecimal a cadena de caracteres |
Funciones de comparación de cadenas
Además de los operadores que vimos para la comparación de cadenas, existe una función:
STRCMP | Compara cadenas |
Funciones de fecha
Funciones para trabajar con fechas:
ADDDATE | Suma un intervalo de tiempo a una fecha |
ADDTIME | Suma tiempos |
CONVERT_TZ | Convierte tiempos entre distintas zonas horarias |
CURDATE o CURRENTDATE | Obtener la fecha actual |
CURTIME o CURRENT_TIME | Obtener la hora actual |
DATE | Extraer la parte correspondiente a la fecha |
DATEDIFF | Calcula la diferencia en días entre dos fechas |
DATE_ADD | Aritmética de fechas, suma un intervalo de tiempo |
DATE_SUB | Aritmética de fechas, resta un intervalo de tiempo |
DATE_FORMAT | Formatea el valor de una fecha |
DAY o DAYOFMONTH | Obtiene el día del mes a partir de una fecha |
DAYNAME | Devuelve el nombre del día de la semana |
DAYOFWEEK | Devuelve el índice del día de la semana |
DAYOFYEAR | Devuelve el día del año para una fecha |
EXTRACT | Extrae parte de una fecha |
FROM_DAYS | Obtener una fecha a partir de un número de días |
FROM_UNIXTIME | Representación de fechas UNIX en formato de cadena |
GET_FORMAT | Devuelve una cadena de formato |
HOUR | Extrae la hora de un valor time |
LAST_DAY | Devuelve la fecha para el último día del mes de una fecha |
MAKEDATE | Calcula una fecha a partir de un año y un día del año |
MAKETIME | Calcula un valor de tiempo a partir de una hora, minuto y segundo |
MICROSECOND | Extrae los microsegundos de una expresión de fecha/hora o de hora |
MINUTE | Extrae el valor de minutos de una expresión time |
MONTH | Devuelve el mes de una fecha |
MONTHNAME | Devuelve el nombre de un mes para una fecha |
NOW o CURRENT_TIMESTAMP o LOCALTIME o LOCALTIMESTAMP o SYSDATE | Devuelve la fecha y hora actual |
PERIOD_ADD | Añade meses a un periodo (año/mes) |
PERIOD_DIFF | Calcula la diferencia de meses entre dos periodos (año/mes) |
QUARTER | Devuelve el cuarto del año para una fecha |
SECOND | Extrae el valor de segundos de una expresión time |
SEC_TO_TIME | Convierte una cantidad de segundos a horas, minutos y segundos |
STR_TO_DATE | Obtiene un valor DATETIME a partir de una cadena con una fecha y una cadena de formato |
SUBDATE | Resta un intervalo de tiempo de una fecha |
SUBTIME | Resta dos expresiones time |
TIME | Extrae la parte de la hora de una expresión fecha/hora |
TIMEDIFF | Devuelve en tiempo entre dos expresiones de tiempo |
TIMESTAMP | Convierte una expresión de fecha en fecha/hora o suma un tiempo a una fecha |
TIMESTAMPADD | Suma un intervalo de tiempo a una expresión de fecha/hora |
TIMESTAMPDIFF | Devuelve la diferencia entre dos expresiones de fecha/hora |
TIME_FORMAT | Formatea un tiempo |
TIME_TO_SEC | Convierte un tiempo a segundos |
TO_DAYS | Calcula el número de días desde el año cero |
UNIX_TIMESTAMP | Devuelve un timestamp o una fecha en formato UNIX, segundos desde 1070 |
UTC_DATE | Devuelve la fecha UTC actual |
UTC_TIME | Devuelve la hora UTC actual |
UTC_TIMESTAMP | Devuelve la fecha y hora UTC actual |
WEEK | Calcula el número de semana para una fecha |
WEEKDAY | Devuelve el número de día de la semana para una fecha |
WEEKOFYEAR | Devuelve el número de la semana del año para una fecha |
YEAR | Extrae el año de una fecha |
YEARWEEK | Devuelve el año y semana de una fecha |
De búsqueda de texto
Función de búsqueda de texto:
Funciones de casting (conversión de tipos)
CAST o CONVERT | Conversión de tipos explícita |
Funciones de encripdado
Funciones de encriptado de datos y de checksum:
AES_ENCRYPT y AES_DECRYPT | Encriptar y desencriptar datos usando el algoritmo oficial AES |
DECODE | Desencripta una cadena usando una contraseña |
ENCODE | Encripta una cadena usando una contraseña |
DES_DECRYPT | Desencripta usando el algoritmo Triple-DES |
DES_ENCRYPT | Encripta usando el algoritmo Triple-DES |
ENCRYPT | Encripta str usando la llamada del sistema Unix crypt() |
MD5 | Calcula un checksum MD5 de 128 bits para la cadena string |
PASSWORD u OLD_PASSWORD | Calcula una cadena contraseña a partir de la cadena en texto plano |
SHA o SHA1 | Calcula un checksum SHA1 de 160 bits para una cadena |
Funciones de información
Información sobre el sistema:
BENCHMARK | Ejecuta una expresión varias veces |
CHARSET | Devuelve el conjunto de caracteres de una cadena |
COERCIBILITY | Devuelve el valor de restricción de colección de una cadena |
COLLATION | Devuelve la colección para el conjunto de caracteres de una cadena |
CONNECTION_ID | Devuelve el ID de una conexión |
CURRENT_USER | Devuelve el nombre de usuario y el del host para la conexión actual |
DATABASE | Devuelve el nombre de la base de datos actual |
FOUND_ROWS | Calcular cuántas filas se hubiesen obtenido en una sentencia SELECT sin la cláusula LIMIT |
LAST_INSERT_ID | Devuelve el último valor generado automáticamente para una columna AUTO_INCREMENT |
USER o SESSION_USER o SYSTEM_USER | Devuelve el nombre de usuario y host actual de MySQL |
VERSION | Devuelve la versión del servidor MySQL |
Miscelanea
Funciones generales:
DEFAULT | Devuelve el valor por defecto para una columna |
FORMAT | Formatea el número según la plantilla '#,###,###.## |
GET_LOCK | Intenta obtener un bloqueo con el nombre dado |
INET_ATON | Obtiene el entero equivalente a la dirección de red dada en formato de cuarteto con puntos |
INET_NTOA | Obtiene la dirección en formato de cuarteto con puntos dado un entero |
IS_FREE_LOCK | Verifica si un nombre de bloqueo está libre |
IS_USED_LOCK | Verifica si un nombre de bloqueo está en uso |
MASTER_POS_WAIT | Espera hasta que el esclavo alcanza la posición especificada en el diario maestro |
RELEASE_LOCK | Libera un bloqueo |
UUID | Devuelve un identificador único universal |
De grupos
Funciones de grupos:
AVG | Devuelve el valor medio |
BIT_AND | Devuelve la operación de bits AND para todos los bits de una expresión |
BIT_OR | Devuelve la operación de bits OR para todos los bits de una expresión |
BIT_XOR | Devuelve la operación de bits XOR para todos los bits de una expresión |
COUNT | Devuelve el número de valores distintos de NULL en las filas recuperadas por una sentencia SELECT |
COUNT DISTINCT | Devuelve el número de valores diferentes, distintos de NULL |
GROUP_CONCAT | Devuelve una cadena con la concatenación de los valores de un grupo |
MIN | Devuelve el valor mínimo de una expresión |
MAX | Devuelve el valor máximo de una expresión |
STD o STDDEV | Devuelve la desviación estándar de una expresión |
SUM | Devuelve la suma de una expresión |
VARIANCE | Devuelve la varianza estándar de una expresión |