La gestión de base de datos es una de las tareas más comunes que competen a todas las industrias, desde las más pequeñas, hasta las más grandes corporaciones. Es normal que muchos utilicen herramientas como en el caso de PhpMyAdmin para administrar la base de datos, pero no siempre es el caso cuando no existe interfaz gráfica y no hay más remedio de utilizar la consola, por eso hoy les traigo como administrar MySQL desde la consola y sobrevivir en el intento.
Iniciar sesión.
mysql -h hostname -u root -p
Crear una base de datos en el servidor SQL.
create database [databasename];
Listar todas las bases de datos en el servidor SQL.
show databases;
Cambiar de base de datos.
use [db name];
Ver todas las tablas en la base de datos.
show tables;
Para ver los formatos de los campos de la base de datos.
describe [table name];
Borrar la base de datos.
drop database [database name];
Borrar una tabla.
drop table [table name];
Mostrar toda la información de una tabla.
SELECT * FROM [table name];
Devuelve las columnas y la información de las columnas correspondientes a la tabla designada.
show columns from [table name];
Mostrar ciertas filas seleccionadas con el valor "algo".
SELECT * FROM [table name] WHERE [field name] = "algo";
Mostrar todos los registros que contengan el nombre "Luis" Y el número de teléfono '1234567'.
SELECT * FROM [table name] WHERE name = "Luis" AND phone_number = '1234567';
Mostrar todos los registros que no contengan el nombre "Luis" Y el número de teléfono '1234567' ordenados por el campo phone_number.
SELECT * FROM [table name] WHERE name != "Luis" AND phone_number = '1234567' order by phone_number;
Mostrar todos los registros que empiecen por las letras "Luis" Y el número de teléfono "1234567".
SELECT * FROM [table name] WHERE name like "Luis%" AND phone_number = '1234567';
Utilice una expresión regular para encontrar registros. Utilice "REGEXP BINARY" para forzar la distinción entre mayúsculas y minúsculas. Esto encuentra cualquier registro que empiece por a.
SELECT * FROM [table name] WHERE rec RLIKE "^a$";
Mostrar los registros únicos.
SELECT DISTINCT [column name] FROM [table name];
Mostrar los registros seleccionados ordenados de forma ascendente (asc) o descendente (desc).
SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
Contar los registros.
SELECT COUNT(*) FROM [table name];
Unir tablas en columnas comunes.
select lookup.illustrationid, lookup.personid, person.birthday from lookup left join person on lookup.personid = person.personid;
Cambie a la base de datos mysql. Cree un nuevo usuario.
INSERT INTO [table name] (Host,User,Password) VALUES('%','user',PASSWORD('password'));
Cambiar la contraseña de un usuario (desde el Shell Unix).
mysqladmin -u root -h hostname.blah.org -p password 'new-password';
Cambiar a mysql db. Dar privilegios de usuario para una db.
INSERT INTO [table name] (Host,Db,User,Select_priv,Insert_priv,Update_priv, Delete_priv,Create_priv,Drop_priv) VALUES ('%','db','user','Y','Y','Y','Y','Y','N');
Para actualizar la información que ya está en una tabla.
UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = 'user';
Borrar registro(s) de una tabla.
DELETE from [table name] where [field name] = 'algo';
Actualizar permisos/privilegios de una base de datos.
FLUSH PRIVILEGES;
Borrar columna
alter table [table name] drop column [column name];
Añadir una nueva columna a una tabla.
alter table [table name] add column [new column name] varchar (20);
Cambiar nombre de columna.
alter table [table name] change [old column name] [new column name] varchar (50);
Haz una columna única para que no haya duplicados.
alter table [table name] add unique ([column name]);
Ampliar una columna.
alter table [table name] modify [column name] VARCHAR(3);
Borrar el índice de una tabla.
alter table [table name] drop index [colmn name];
Cargar un archivo CSV en una tabla.
LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);
Volcar todas las bases de datos para la copia de seguridad. El archivo de copia de seguridad es para recrear todas las db's.
mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql
Volcar una base de datos para la copia de seguridad.
mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql
Volcar una tabla para la copia de seguridad.
mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
Restaurar una copia de seguridad.
mysql -u username -ppassword databasename < /tmp/databasename.sql