MySQL es un sistema de gestión de bases de datos que cuenta con una doble licencia. Por una parte es de código abierto, pero por otra, cuenta con una versión comercial gestionada por la compañía Oracle. Actualmente, es la base de datos de código abierto más famosa y utilizada en el mundo entero.
Una de las principales características de MySQL es que trabaja con bases de datos relacionales, es decir, utiliza tablas múltiples que se interconectan entre sí para almacenar la información y organizarla correctamente.
MySQL sirve para almacenar toda la información que se desee en bases de datos relacionales, como también para administrar todos estos datos sin apenas complicaciones gracias a su interfaz visual y a todas las opciones y herramientas de las que dispone. Es algo esencial, sobre todo en webs que cuentan con la opción de registrar usuarios para que inicien sesión.
Para las compañías, usar esta herramienta es vital por las facilidades que plantea y las utilidades que tiene. Si se cuenta con un listado de clientes, un catálogo de productos o incluso una gran selección de contenidos multimedia disponible, MySQL ayuda a gestionarlo todo debida y ordenadamente. Es esencial para el buen funcionamiento de una web.
Crear una base de datos: create database [databasename];
Listar todas las base de datos en el servidor: show databases;
Cambiar a una base de datos: use [db name];
Ver todas las tablas de una base de datos: show tables;
Ver los formatos de campo de la base de datos: describe [table name];
Eliminar una base de datos: drop database [database name];
Eliminar una tabla de la base de datos: drop table [table name];
Devolver todos los registros de una tabla: SELECT * FROM [table name];
Devolver las columnas y la información de la columna correspondiente a la tabla designada:
show columns from [table name];
Mostrar ciertas filas seleccionadas con el valor «lo que sea»: SELECT * FROM [table name] WHERE [field name] = «whatever»;
Mostrar todos los registros que contengan el nombre «Bob» AND el número de teléfono ‘3444444’: SELECT * FROM [table name] WHERE name = «Bob» AND phone_number = ‘3444444’;
Mostrar todos los registros que contienen el nombre «Bob» AND el número de teléfono ‘3444444’ ordenados por el campo «phone_number»:
SELECT * FROM [table name] WHERE name != «Bob» AND phone_number = ‘3444444’ order by phone_number;
Mostrar todos los registros que comienzan con la palabra ‘bob’ AND el número de teléfono ‘3444444’: SELECT * FROM [table name] WHERE name like «Bob%» AND phone_number = ‘3444444’;
Usar una expresión regular para encontrar registros. Usar «REGEXP BINARY» para forzar la sensibilidad a las mayúsculas. Esto encuentra cualquier registro que comience con «a»:
SELECT * FROM [table name] WHERE rec RLIKE «^a$»;
Mostrar registros únicos: SELECT DISTINCT [column name] FROM [table name];
Mostrar los registros seleccionados, ordenados en orden ascendente (asc) o descendente (desc):
SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
Devolver un número de filas: SELECT COUNT(*) FROM [table name];
Sumar el contenido de la columna: SELECT SUM(*) 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=statement to join birthday in person table with primary illustration id;
Cambiar a mysql db. Crear un nuevo usuario:
INSERT INTO [table name] (Host,User,Password) VALUES(‘%’,’user’,PASSWORD(‘password’));
Cambiar la contraseña de un usuario (desde el shell de Unix):
[mysql dir]/bin/mysqladmin -u root -h hostname.blah.org -p password ‘new-password’
Cambiar la contraseña de un usuario (desde el prompt de MySQL):
SET PASSWORD FOR ‘user’@’hostname’ = PASSWORD(‘passwordhere’);
Permitir que el usuario «bob» se conecte con el servidor de localhost usando la contraseña «passwd»: grant usage on *.* to bob@localhost identified by ‘passwd’;
Cambiar a mysql db. Otorgar 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 (‘%’,’databasename’,’username’,’Y’,’Y’,’Y’,’Y’,’Y’,’N’);
Otra alternativa sería: grant all privileges on databasename.* to username@localhost;
Actualizar datos en una tabla:
UPDATE [table name] SET Select_priv = ‘Y’,Insert_priv = ‘Y’,Update_priv = ‘Y’ where [field name] = ‘user’;
Eliminar filas de una tabla: DELETE from [table name] where [field name] = ‘whatever’;
Actualizar base de datos permissions/privilages: FLUSH PRIVILEGES;
Eliminar una columna: alter table [table name] drop column [column name];
Agregar una nueva columna de una base de datos:
alter table [table name] add column [new column name] varchar (20);
Cambiar el nombre de una columna:
alter table [table name] change [old column name] [new column name] varchar (50);
Crear una columna única para no tener inconvenientes:
alter table [table name] add unique ([column name]);
Hacer más grande una columna:
alter table [table name] modify [column name] VARCHAR(3);
Eliminar una columna única de una tabla:
alter table [table name] drop index [colmn name];
Cargar un archivo CSV dentro de 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 en una copia de seguridad. El backup posee comandos sql para recrear todos las db: [mysql dir]/bin/mysqldump -u root -ppassword –opt >/tmp/alldatabases.sql
Volcar una base de datos para el back up:
[mysql dir]/bin/mysqldump -u username -ppassword –databases databasename >/tmp/databasename.sql
Volver una tabla de una base de datos:
[mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
Restaurar una base de datos (o tabla) de un backup:
[mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql
Crear una tabla de ejemplo 1:
CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3),officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups
VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));
Crear una tabla de ejemplo 2:
create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastnamevarchar(50) default ‘bato’);