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;