Variables
En SGBDs con servidor como mySQL, PostgreSQL o Oracle, las variables de sistema y usuario son fundamentales para la configuración y personalización del entorno de la base de datos.
Estas variables permiten ajustar el comportamiento del servidor, definir parámetros de conexión y almacenar información específica del usuario.
Las variables de sistema son aquellas que afectan a todo el servidor de base de datos y su configuración. Por ejemplo, en MySQL, se pueden utilizar variables como max_connections
para definir el número máximo de conexiones simultáneas permitidas.
Por otro lado, las variables de usuario son específicas de cada sesión de usuario y se utilizan para almacenar información temporal durante la ejecución de un programa. Estas variables se pueden definir y utilizar dentro de procedimientos almacenados, funciones y scripts SQL.
Variables de sistema
Las variables de sistema son configuraciones globales que afectan al comportamiento del servidor de base de datos.
Algunos comandos para trabajar con variables de sistema en MySQL son:
-- Mostrar todas las variables de sistema
SHOW VARIABLES;
-- Mostrar el valor de una variable específica
SHOW VARIABLES LIKE 'max_connections';
-- Cambiar el valor de una variable de sistema
SET GLOBAL max_connections = 200;
Algunas variables importantes en MySQL son:
max_connections
: Define el número máximo de conexiones simultáneas permitidas al servidor.innodb_buffer_pool_size
: Establece el tamaño del buffer pool de InnoDB, que es crucial para el rendimiento de las transacciones.sql_mode
: Configura el modo SQL del servidor, puede tomar valores comoSTRICT_TRANS_TABLES
,NO_ZERO_IN_DATE
, etc.character_set_server
: Define el conjunto de caracteres predeterminado del servidor, comoutf8mb4
.collation_server
: Establece la colación predeterminada del servidor, que afecta al ordenamiento y comparación de cadenas de texto.tmpdir
: Especifica el directorio temporal utilizado por el servidor para almacenar archivos temporales.log_bin
: Habilita o deshabilita el registro binario, que es esencial para la replicación y recuperación de datos.wait_timeout
: Define el tiempo de espera en segundos antes de cerrar una conexión inactiva.interactive_timeout
: Establece el tiempo de espera para conexiones interactivas antes de cerrarlas.
Variables de usuario
Las variables de usuario son específicas de cada sesión y se utilizan para almacenar información temporal durante la ejecución de un programa. Se pueden definir y utilizar dentro de procedimientos almacenados, funciones y scripts SQL.
Algunos comandos para trabajar con variables de usuario en MySQL son:
-- Definir una variable de usuario
mysql> SET @test = "hola sql!";
Query OK, 0 rows affected (0.000 sec)
-- Mostrar el valor de una variable de usuario
mysql> SELECT @test;
+-----------+
| @test |
+-----------+
| hola sql! |
+-----------+
1 row in set (0.000 sec)
-- Usar una variable de usuario en una consulta
mysql> SELECT * FROM empleados WHERE nombre = @test;
Las variables de usuario se definen con el prefijo @
y pueden ser utilizadas en consultas SQL, procedimientos almacenados y funciones. Estas variables son útiles para almacenar resultados intermedios o valores que se necesitan a lo largo de una sesión.