Comandos para administrar bases de datos mysql desde SSH

Comparte:

Comandos:

Ingresar al monitor: mysql -u [username] -p; (Pedirá la contraseña)

Mostrar todas las bases de datos: show databases;

Ingresar a una base de datos: mysql -u [username] -p [database] (will prompt for password)

Crear una nueva base de datos: create database [database];

Seleccionar una base de datos: use [database];

Ver qué base de datos está en uso: select database();

Mostrar todas las tablas: show tables;

Ver la estructura de la table: describe [table];

Listar todos los indexes de una tabla: show index from [table];

Crear una nueva table con columnas: CREATE TABLE [table] ([column] VARCHAR(120), [another-column] DATETIME);

Añadir una columna: ALTER TABLE [table] ADD COLUMN [column] VARCHAR(120);

Añadir una columna con un unique, auto-incrementing ID: ALTER TABLE [table] ADD COLUMN [column] int NOT NULL AUTO_INCREMENT PRIMARY KEY;

Insertar un registro: INSERT INTO [table] ([column], [column]) VALUES (‘[value]’, [value]’);

Función de MySQL para la entrada de fecha y hora: NOW()

Seleccionar un registro: SELECT * FROM [table];

Explicar los registros: EXPLAIN SELECT * FROM [table];

Seleccionar parte de un registro: SELECT [column], [another-column] FROM [table];

Contar la cantidad de registros: SELECT COUNT([column]) FROM [table];

Contar y seleccionar un grupo de registros: SELECT *, (SELECT COUNT([column]) FROM [table]) AS count FROM [table] GROUP BY [column];

Seleccionar un registro específico: SELECT * FROM [table] WHERE [column] = [value]; (Selectors: <, >, !=; combine múltiple selectors with AND, OR)

Seleccionar registros que contienen el valor [value]: SELECT * FROM [table] WHERE [column] LIKE ‘%[value]%’;

Seleccionar registros que comienzan con el valor [value]: SELECT * FROM [table] WHERE [column] LIKE ‘[value]%’;

Seleccionar registros que comienzan con con “val” y terminan con “ue”: SELECT * FROM [table] WHERE [column] LIKE ‘[val_ue]’;

Seleccionar un rango: SELECT * FROM [table] WHERE [column] BETWEEN [value1] and [value2];

Seleccionar con orden personalizado y límite único : SELECT * FROM [table] WHERE [column] ORDER BY [column] ASC LIMIT [value]; (Order: DESC, ASC)

Actualizar registro: UPDATE [table] SET [column] = ‘[updated-value]’ WHERE [column] = [value];

Eliminar registros: DELETE FROM [table] WHERE [column] = [value];

Borrar todos los registros de una tabla (Sin eliminar la table): DELETE FROM [table]; (También pone en cero los incremetales)

Eliminar todos los registros de una tabla: truncate table [table];

Borrar columnas de una tabla: ALTER TABLE [table] DROP COLUMN [column];

Eliminar tablas: DROP TABLE [table];

Eliminar bases de datos: DROP DATABASE [database];

Personalizar los nombres de las columnas de salida: SELECT [column] AS [custom-column] FROM [table];

Exportación de un volcado de la base de datos: mysqldump -u [username] -p [database] > db_backup.sql
Use –lock-tables=false option for locked tables

Importar un volcado de la base de datos: mysql -u [username] -p -h localhost [database] < db_backup.sql

Salida: exit;

Funciones adicionales

Seleccionar sin duplicados: SELECT distinct name, email, acception FROM owners WHERE acception = 1 AND date >= 2015-01-01 00:00:00

Calcular el número de registro totales: SELECT SUM([column]) FROM [table];

Contar el número total de columnas [column] y grupo por [category-column]: SELECT [category-column], SUM([column]) FROM [table] GROUP BY [category-column];

Obtener el valor más largo [column]: SELECT MAX([column]) FROM [table];

Obtener el valor más pequeño: SELECT MIN([column]) FROM [table];

Obtener el valor promedio: SELECT AVG([column]) FROM [table];

Obtener el valor promedio redondeado y grupo po [category-column]: SELECT [category-column], ROUND(AVG([column]), 2) FROM [table] GROUP BY [category-column];

Múltipes tablas

Seleccionar de multiples tablas: SELECT [table1].[column], [table1].[another-column], [table2].[column] FROM [table1], [table2];

Combinar filas de diferentes tablas: SELECT * FROM [table1] INNER JOIN [table2] ON [table1].[column] = [table2].[column];

Combinar filas de tablas diferentes, sin usar la condición join: SELECT * FROM [table1] LEFT OUTER JOIN [table2] ON [table1].[column] = [table2].[column]; (The left table is the first table that appears in the statement.)

Renombrar la columna o tabla usando un alias: SELECT [table1].[column] AS ‘[value]’, [table2].[column] AS ‘[value]’ FROM [table1], [table2];

Funciones de usuario

Listar todos los usuarios: SELECT User,Host FROM mysql.user;

Crear un nuevo usuario: CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;

Grant ALL access to user for * tables: GRANT ALL ON database.* TO ‘user’@’localhost’;

Find out the IP Address of the Mysql Host : SHOW VARIABLES WHERE Variable_name = ‘hostname’; (source)

Otros

Cambiar contraseña de una base de datos mysql: set password for ‘prefijo_db’@’localhost’ = password(‘aquielpassword’);