Comandos de administración de base de datos básica MySQL - Parte I


La base de datos es un conjunto estructurado de datos almacenados electrónicamente. El concepto de base de datos era conocido por nuestros antepasados u200bu200bincluso cuando no había computadoras, sin embargo, crear y mantener dicha base de datos era un trabajo muy tedioso. En una base de datos manual, digamos de 100 páginas, si tiene que buscar a todos los empleados cuyo salario fue inferior a 10k, piense en lo difícil que habría sido.

En el mundo de hoy, simplemente no puede escapar de la base de datos. En este momento, millones de bases de datos están trabajando en todo el mundo para almacenar y obtener datos de todo tipo, ya sean datos estratégicos, registros de empleados o tecnologías web.

La base de datos a menudo se denomina proceso de back-end, ya que no es visible para el usuario final ni el usuario final interactúa directamente con la base de datos. Trabajan en procesos de front-end, a saber, PHP, VB, ASP.NET, etc. y le piden al front-end que se ocupe de la base de datos en el back-end.

Hay varios servidores y clientes de bases de datos disponibles como Oracle, MySQL, MySQLi, MariaDB, MongoDB, etc. La sintaxis de todos estos es más o menos la misma. Dominar uno significa controlar la mayoría de ellos y aprender las consultas de una base de datos es muy fácil y divertido.

Comencemos con consultas simples en la base de datos. Usaremos MySQL, que viene incluido con la mayoría de las distribuciones de Linux de forma predeterminada, puede instalarlo manualmente desde el repositorio, si no está instalado de forma predeterminada en su caso.

Bueno, una consulta de base de datos es una simple pieza de código que se envía a la base de datos para obtener un resultado personalizado y refinado, según sea necesario.

Instalar la base de datos MySQL

Utilice el administrador de paquetes "yum" o "apt" para instalar la base de datos MySQL.

# yum install mysql mysql-client mysql-server  (on Yum based Systems)

# apt-get install mysql mysql-client mysql-server (on Apt based Systems)

Inicie el servicio de base de datos MySQL como:

# service mysqld start
or
# service mysql start

Bien, la instalación de una base de datos MySQL lo llevará a la configuración donde se le pedirá que configure la contraseña de administrador, etc. Una vez que haya terminado de instalar e iniciar el servidor, vaya a su indicador de MySQL.

# mysql -u root -p

Reemplace root con su nombre de usuario configurado e ingrese la contraseña cuando se le solicite, si la credencial de inicio de sesión es correcta, estará en el indicador de MySQL en un abrir y cerrar de ojos.

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 195 

Server version: 5.5.31-0+wheezy1 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. 
Other names may be trademarks of their respective owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Ahora, realizar consultas en este mensaje es muy educativo y divertido.

mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

Nota: Informa que la consulta fue correcta, significa que se creó la base de datos. Puede verificar su base de datos recién creada como.

mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

Nota: observe su base de datos en el resultado anterior.

Ahora debe seleccionar la base de datos para trabajar en ella.

mysql> use tecmint;
Database changed
mysql>

Aquí crearemos una tabla que diga "minttec" con tres campos como:

mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

Nota: La consulta anterior dice OK, lo que significa que la tabla se creó sin ningún error. Para verificar la tabla, ejecute la siguiente consulta.

mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

Las cosas van bien hasta ahora. ¡Sip! Puede ver las columnas que creó en la tabla "minttec" como:

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 
3 rows in set (0.00 sec)

mysql>

Fue nada menos que una magia. De todos modos te contaré sobre los tipos de declaración y su significado.

  1. Int is Integer
  2. Varchar is char having variable length as defined. The value after Type is the length of field up-to which it can store data.

De acuerdo, ahora debemos agregar una columna que diga "apellido" después de la columna "nombre".

mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; 
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

Ahora, verifíquelo en su tabla.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 

4 rows in set (0.00 sec) 

mysql>

Ahora agregaremos una columna a la derecha que diga una columna "país" a la derecha del correo electrónico.

mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0  Duplicates: 0  Warnings: 0 

mysql>

Verifique la consulta de inserción de columna anterior.

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
| country    | varchar(15) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 

mysql>

¿Qué hay de insertar valores en el campo?

mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email protected]' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

¿Qué tal si inserta más de 1 valor a la vez en la tabla anterior?

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email protected]' , 'India' ), ('3' , 'user' , 'singh' , '[email protected]' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email protected]' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

Verifique la inserción anterior.

mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email protected] | India   | 
|    2 | Narad      | Shrestha  | [email protected]     | India   | 
|    3 | user       | singh     | [email protected]      | Aus     | 
|    4 | tecmint    | [dot]com  | [email protected] | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>

Supongamos que la tercera entrada en la salida anterior no es válida y necesitamos eliminar la tercera entrada.

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

Verifique la operación anterior.

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email protected] | India   | 
|    2 | Narad      | Shrestha  | [email protected]     | India   | 
|    4 | tecmint    | [dot]com  | [email protected] | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)

Es necesario editar el id (u003d 4).

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Verifique la consulta anterior.

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Nota: La consulta anterior, tal como se realizó, no es una buena idea. Cambiará la identificación a "4" siempre que el nombre sea "tecmint". Siempre es una buena idea usar más de una columna con la cláusula where para obtener un error mínimo, como:

mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; 
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

Necesitamos quitar (eliminar) una columna que pensamos que no tiene importancia, digamos "país" aquí.

mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

Verifique la tabla.

mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email protected] | 
|    2 | Narad      | Shrestha  | [email protected]     | 
|    6 | tecmint    | [dot]com  | [email protected] | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>

¿No cree que el nombre de nuestra tabla "minttec" no es muy relevante? ¿Qué tal cambiarlo a tecmint_table?

mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>

Vea todas las tablas de la base de datos actual.

mysql> show tables; 

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+
1 row in set (0.00 sec) 

mysql>

Se ha cambiado el nombre de la tabla. Ahora haga una copia de seguridad de la base de datos MySQL anterior, en una sola línea de comando sin ninguna herramienta sofisticada. Ejecute el siguiente código en su terminal y no en el indicador de mysql.

# mysqldump -u root -p tecmint > tecmint.sql

check the dumped file on your desktop which would have contents something like
-- MySQL dump 10.13  Distrib 5.5.31, for debian-linux-gnu (i686) --
-- Server version 5.5.31-0+wheezy1 -- 
Dump completed on 2013-09-02 12:55:37

Siempre es una buena idea mantener una copia de seguridad de las bases de datos MySQL. Restaurar los datos de MySQL respaldados es nuevamente una línea simple de código que necesita ejecutar en el indicador de su terminal y no en el indicador de mysql.

Pero, espere primero, eliminaremos la base de datos para verificar si nuestra restauración es perfecta.

mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

Busque la base de datos "tecmint" en su servidor de base de datos.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| my_database        | 
| mysql              | 
| performance_schema | 
| phpmyadmin         | 
| sisso              | 
| test               | 
+--------------------+

7 rows in set (0.00 sec) 
mysql>

¡Excelente! La base de datos se perdió, pero no debemos preocuparnos, tenemos la copia de seguridad.

Para restaurar la base de datos perdida, ejecute el siguiente comando.

# mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

OOPS! Un error, oye no hemos creado la base de datos tecmint. Así que vaya a su indicador de mysql y cree una base de datos "tecmint".

mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

Ahora es el momento de ejecutar el comando de restauración en el indicador de shell (estrictamente).

# mysql -u root -p tecmint < tecmint.sql 
Enter password:

Verifica tu base de datos.

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
8 rows in set (0.00 sec)

Verifique el contenido de la base de datos.

mysql> show tables from tecmint;

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+ 
1 row in set (0.00 sec)

mysql>

Verifique el contenido de su tabla restaurada.

mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email protected] | 
|    2 | Narad      | Shrestha  | [email protected]     | 
|    6 | tecmint    | [dot]com  | [email protected] | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

Este no es el final definitivamente, cubriremos el concepto de clave principal, clave externa, múltiples tablas y consultas en ejecución usando un script PHP simple en la siguiente parte del artículo.

No olvide decirnos cómo se sintió al leer el artículo. Sus comentarios son muy apreciados. Manténgase saludable y en sintonía, permanezca conectado a Tecmint.