Tutorial básico de MySQL
Actualizado el 20 de Julio, 2016. Por BoxHosting.
MySQL es un software de código abierto para la gestión de base de datos que ayuda a los usuarios a almacenar, organizar y obtener datos. Es un programa muy poderoso con muchísimas características y flexibilidad. Este tutorial presenta una introducción básica de MySQL.
¿Cómo instalar MySQL en Ubuntu y CentOS?
Si no tiene instalado en su servidor virtual, puede descargarlo como se indica a continuación.
Ubuntu:
sudo apt-get install mysql-server
CentOS:
sudo yum install mysql-server
/etc/init.d/mysqld start
¿Cómo acceder al shell MySQL?
Una vez que haya instalado MySQL en su servidor virtual, puede acceder al shell de MySQL ingresando el siguiente comando en el terminal:
mysql -u root -p
Un mensaje le pedirá el ingreso de la contraseña para el usuario root de MySQL (recuerde no confundir con la clave del usuario root del servidor), luego de ingresarla podrá comenzar a construir su base de datos en MySQL.
Observaciones
- Todos los comandos MySQL terminan en punto y coma, si la frase no termina en punto y coma, el comando no se ejecutará.
- Como convención, los comandos MySQL se escriben generalmente en mayúsculas y los nombres de las bases de datos, tablas, nombres de usuarios o textos se escriben en minúsculas. Esto se hace para que sea más fácil distinguir los comandos MySQL de otros datos, pero no es obligatorio ya que la línea de comandos MySQL no distingue entre mayúsculas y minúsculas.
¿Cómo crear y borrar una Base de Datos MySQL?
MySQL organiza su información en bases de datos; cada una de ellas puede mantener tablas con datos específicos. Puede verificar rápidamente qué bases de datos tiene disponibles ingresando:
SHOW DATABASES;
Su pantalla mostrará algo como lo siguiente:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.02 sec)
Puede crear una base de datos usando el siguiente comando:
CREATE DATABASE nombre_de_basededatos;
Por ejemplo, creemos una base de datos llamada "empresa".
En MySQL, la manera más sencilla y utilizada para eliminar objetos es usando Drop. Puede eliminar una base de datos usando el siguiente comando:
DROP DATABASE database name;
¿Cómo acceder a una base de datos MySQL?
Una vez que tenga su nueva base de datos, puede comenzar a llenarla con información.
El primer paso es crear una nueva tabla dentro de la base de datos, para abrir la base de datos que desea utilizar puede usar el siguiente comando:
USE empresa;
De la misma manera en que puede consultar las bases de datos disponibles, también puede ver un resumen de las tablas que contiene la base de datos seleccionada:
SHOW tables;
Debido a que acaba de crear la base de datos, MySQL no tiene tablas para mostrar dentro de ella, por lo tanto obtendrá el siguiente mensaje: Empty set (0.01 sec)
.
¿Cómo crear una tabla en MySQL?
Digamos que desea llevar un registro y seguimiento de los clientes de su empresa usando MySQL.
Ingrese el siguiente comando para crear una nueva tabla MySQL:
CREATE TABLE clientes (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, nombre VARCHAR(30), apellido VARCHAR(30), suscripcion_activa CHAR(1), vencimiento_contrato DATE);
Expliquemos qué logra este comando parámetro a parámetro:
- Se ha creado una tabla llamada clientes en la base de datos empresa
- Hemos establecido 5 columnas dentro de dicha tabla: id, nombre, apellido, suscripción activa y vencimiento del contrato.
- La columna "id" es la clave primaria de la tabla e identifica de forma única cada fila de la tabla. El comando INT NOT NULL PRIMARY KEY AUTO_INCREMENT indica que la clave primaria o Primary Key es de tipo entero, no nula, y aumenta automáticamente para numerar a cada fila.
- Las columnas nombre y apellido están limitadas con el comando VARCHAR para que no tengan un máximo de 30 caracteres de longitud.
- La columna "suscripción activa" registra si la suscripción del cliente se encuentra activa usando una sola letra: 'S' o 'N'.
- La columna "vencimiento del contrato" mostrará la fecha en que vence o venció el contrato del cliente. MySQL utiliza el siguiente formato para las fechas aaaa-mm-dd (en el orden: año, mes y día).
Veamos entonces cómo aparece la tabla dentro de la base de datos cuando utilizamos el comando SHOW TABLES;
:
mysql> SHOW TABLES;
+-------------------+
| Tables_in_empresa |
+-------------------+
| clientes |
+-------------------+
1 row in set (0.00 sec)
Siempre podemos recordar la organización de una tabla usando el siguiente comando:
DESCRIBE clientes;
Tenga en cuenta que, aunque la línea de comandos MySQL no distingue entre mayúsculas y minúsculas, los nombres de tablas y bases de datos sí distinguen entre mayúsculas y minúsculas: empresa no es igual a Empresa o EMPRESA.
mysql> DESCRIBE clientes;
+----------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| nombre | varchar(30) | YES | | NULL | |
| apellido | varchar(30) | YES | | NULL | |
| suscripcion_activa | char(1) | YES | | NULL | |
| vencimiento_contrato | date | YES | | NULL | |
+----------------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
¿Cómo agregar información a una tabla MySQL?
¡Ya hemos logrado crear una tabla para trabajar! Es el momento de llenarla con datos.
Puede utilizar el siguiente formato para insertar información en cada fila:
INSERT INTO `clientes` (`id`,`nombre`,`apellido`,`suscripcion_activa`,`vencimiento_contrato`) VALUES (NULL, "Claudio", "Bravo","S", '2017-01-13');
Cuando ingrese el comando podrá ver algo similar a lo siguiente:
Query OK, 1 row affected (0.04 sec)
Vamos a llenar la tabla con algunos otros datos:
INSERT INTO `clientes` (`id`,`nombre`,`apellido`,`suscripcion_activa`,`vencimiento_contrato`) VALUES (NULL, "Arturo", "Vidal","S", '2017-02-20');
INSERT INTO `clientes` (`id`,`nombre`,`apellido`,`suscripcion_activa`,`vencimiento_contrato`) VALUES (NULL, "Luis", "Gardel","N", '2016-03-13');
INSERT INTO `clientes` (`id`,`nombre`,`apellido`,`suscripcion_activa`,`vencimiento_contrato`) VALUES (NULL, "Rossana", "Gonzalez","S", '2016-11-21');
Podemos usar el siguiente comando para dar un vistazo a los datos en nuestra tabla: SELECT * FROM clientes;
Este comando permite hacer una consulta de los datos dentro de la tabla clientes. El asterisco (*) indica que estamos seleccionando todos los datos dentro de la tabla, pero hay innumerables combinaciones. Puede ver el siguiente artículo de MySQL donde se explica el uso y sintaxis del SELECT.
¿Cómo actualizar información en una tabla?
Ahora que hemos creado una tabla con datos, es muy probable que necesite actualizar alguno de ellos. Imagine que ha pasado la fecha de vencimiento del contrato de Rossana, ahora la columna suscripcion_activa debe mostrar el carácter 'N'. Puede actualizar la tabla como se indica:
UPDATE `clientes` SET `suscripcion_activa` = 'N' WHERE `clientes`.`nombre` ='Rossana';
Recuerde que esto es un ejemplo visual para una tabla con pocos datos, es probable que necesite verificar y crear muchas más variables en una tabla de una base de datos real. Sin embargo, puede hacer pruebas con distintas combinaciones a modo de práctica en una base de datos que no esté en producción. Este comando añadiría información en las celdas especificadas, aun cuando éstas estén vacías.
¿Cómo agregar y eliminar una columna?
Tal como se mencionó, puede que necesite información adicional dentro de la tabla. Por ejemplo, digamos que desea agregar el correo electrónico de cada cliente.
Podemos hacerlo usando el siguiente comando:
ALTER TABLE clientes ADD email VARCHAR(45);
Por defecto, este comando añade la columna "email" al final de la tabla, y el comando VARCHAR limita este dato a 45 caracteres.
En caso de que desee colocar esa columna en un punto específico de la tabla, podemos completar el comando de la siguiente forma:
ALTER TABLE clientes ADD email VARCHAR(45) AFTER apellido;
Ahora la columna "email" quedará después de la columna apellido.
También puede borrar una columna usando el siguiente comando:
ALTER TABLE clientes DROP email;
Tenga especial cuidado al borrar una columna, una tabla o una base de datos. Solo ejecute comandos de eliminación de datos cuando tenga seguridad de lo que está por realizar.
¿Cómo borrar una fila?
Si es necesario, también puede eliminar filas de la tabla. Use el siguiente comando:
DELETE FROM [nombre_de_la_tabla] WHERE [nombre_columna]=[texto_en_celda];
Digamos que Luis ya no forma parte de la cartera de clientes de la empresa, podemos borrar el registro de esa fila ingresando:
DELETE FROM clientes WHERE nombre='Luis';
¡Veamos una captura del procedimiento!, preste especial atención al id de cada cliente. ¿Observa cómo se mantiene el id original?
¡Ya tiene los conocimientos básicos para comenzar a trabajar en MySQL! Para salir de la línea de comandos de MySQL puede usar: quit
. Recibirá un simple: Bye
.
Recursos adicionales
- Este tutorial explora los comandos más básicos de MySQL. Puede visitar la documentación oficial para desarrolladores de MySQL: Documentación MySQL