Funciones (varias)
Hemos cubierto muchas de las funciones más importantes en SQL, pero todavía hay algunas categorías adicionales que pueden ser útiles en distintos contextos. Aquí tienes algunas funciones que podrían faltar:
1. Funciones de Bitwise (Operaciones de Bits) #
Estas funciones permiten manipular bits dentro de valores numéricos.
- BIT_AND(), BIT_OR(), BIT_XOR() (MySQL)
- &(AND), |(OR), #(XOR) (PostgreSQL)
Ejemplo:
1-- MySQL 2SELECT BIT_AND(5, 3); -- 1 3SELECT BIT_OR(5, 3); -- 7 4SELECT BIT_XOR(5, 3); -- 6
2. Funciones de Control de Errores #
Estas ayudan a manejar errores dentro de las consultas:
- IFNULL() (MySQL) / COALESCE() (PostgreSQL, MySQL, SQLite) – Manejo de valores nulos.
- NULLIF() – Compara dos valores y devuelve NULL si son iguales.
Ejemplo:
1-- MySQL, PostgreSQL 2SELECT COALESCE(NULL, 'Valor por defecto');
3. Funciones de Optimización de Consultas #
- EXPLAIN - Analiza la ejecución de una consulta.
- ANALYZE - Evalúa el rendimiento de una consulta en PostgreSQL.
- INDEX FUNCTIONS - Uso de índices para mejorar la búsqueda de datos.
Ejemplo:
1-- PostgreSQL 2EXPLAIN ANALYZE SELECT * FROM empleados WHERE salario > 50000;
4. Funciones de Gestión de Concurrencia #
Para manejar múltiples usuarios accediendo a la base de datos al mismo tiempo:
- LOCK TABLES (MySQL)
- ADVISORY LOCKS (PostgreSQL)
Ejemplo:
1-- PostgreSQL 2SELECT pg_advisory_lock(1234);
5. Funciones de Manejo de Archivos y Directorios #
Algunas bases de datos permiten leer/escribir archivos directamente:
- LOAD_FILE() (MySQL)
- pg_read_file() (PostgreSQL)
Ejemplo:
1-- MySQL 2SELECT LOAD_FILE('/var/lib/mysql-files/datos.txt');
6. Funciones de Sesión y Usuario #
- CURRENT_USER(), SESSION_USER() - Devuelven información sobre el usuario actual.
- USER(), SYSTEM_USER() - Información sobre el usuario de la sesión en MySQL.
Ejemplo:
1-- MySQL, PostgreSQL 2SELECT CURRENT_USER;
Resumen del tema
Conceptos clave #
- Operaciones Bitwise: operadores y funciones a nivel de bits (
BIT_AND,BIT_OR,BIT_XOR,&,|,#) para banderas numéricas y máscaras de bits. - Manejo de Nulos y Errores:
COALESCE()eIFNULL()ofrecen alternativas seguras frente a datos incompletos. - Diagnóstico y Rendimiento:
EXPLAINyEXPLAIN ANALYZErevelan los planes de ejecución, costos y cuellos de botella de las consultas. - Concurrencia y Sesión: bloqueos explícitos y consultivos (
pg_advisory_lock), junto a funciones de introspección del usuario activo (CURRENT_USER,SESSION_USER).
Qué debes recordar #
Conocer las herramientas de análisis (EXPLAIN) y las funciones del sistema permite depurar problemas de concurrencia, permisos y rendimiento en entornos productivos.