Comandos mysql
Comandos mysql
Manejo de Fechas:
-- Obtener fecha y hora actual
SELECT NOW(), CURDATE(), CURTIME();
-- Agregar días, meses, años
SELECT DATE_ADD(NOW(), INTERVAL 7 DAY);
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH);
-- Diferencia entre fechas
SELECT DATEDIFF('2025-06-01', '2025-05-24');
-- Formatear fechas
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s');
Triggers (Disparadores):
CREATE TRIGGER nombre_trigger
AFTER INSERT ON tabla
FOR EACH ROW
BEGIN
-- lógica
INSERT INTO auditoria (evento) VALUES ('Insert realizado');
END;
Subconsultas:
-- Subconsulta en SELECT
SELECT nombre FROM empleados
WHERE departamento_id = (SELECT id FROM departamentos WHERE nombre = 'Ventas');
-- Subconsulta en FROM
SELECT AVG(salario) FROM (
SELECT salario FROM empleados WHERE departamento_id = 1
) AS sub;
-- Subconsulta con EXISTS
SELECT nombre FROM empleados e
WHERE EXISTS (
SELECT 1 FROM proyectos p WHERE p.empleado_id = e.id
);
Manejo de Cadenas:
-- Concatenar
SELECT CONCAT(nombre, ' ', apellido) FROM empleados;
-- Buscar dentro de una cadena
SELECT * FROM productos WHERE nombre LIKE '%telefono%';
-- Longitud, mayúsculas, minúsculas
SELECT LENGTH(nombre), UPPER(nombre), LOWER(nombre) FROM empleados;
-- Subcadenas y reemplazos
SELECT SUBSTRING(nombre, 1, 3), REPLACE(nombre, 'a', 'x') FROM empleados;
Tipos ENUM y SET:
-- ENUM: valor único entre opciones
CREATE TABLE ejemplo_enum (
estado ENUM('activo', 'inactivo', 'pendiente')
);
-- SET: múltiples valores de una lista
CREATE TABLE ejemplo_set (
permisos SET('lectura', 'escritura', 'ejecución')
);
Tipo BLOB (Binary Large Object):
CREATE TABLE archivos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
datos BLOB
);
Crear Tabla a partir de Otra:
-- Crear nueva tabla con estructura de otra
CREATE TABLE nueva_tabla LIKE tabla_existente;
-- Crear nueva tabla con datos seleccionados
CREATE TABLE empleados_ventas AS
SELECT * FROM empleados WHERE departamento = 'Ventas';
Manejo en Cascada (ON DELETE / ON UPDATE CASCADE):
CREATE TABLE pedidos (
id INT PRIMARY KEY,
cliente_id INT,
FOREIGN KEY (cliente_id) REFERENCES clientes(id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
Administración de Usuarios (MySQL):
-- Crear usuario
CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'contraseña';
-- Dar permisos
GRANT SELECT, INSERT, UPDATE ON basedatos.* TO 'usuario'@'localhost';
-- Revocar permisos
REVOKE UPDATE ON basedatos.* FROM 'usuario'@'localhost';
-- Eliminar usuario
DROP USER 'usuario'@'localhost';
--ver usuarios
SELECT user, host FROM mysql user; //hay que poner el "." despues de mysql