Modelado físico avanzado relacional de bases de datos
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:
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
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');
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;
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);
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');
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;