MySQL: Polvo somos y en polvo nos convertiremos

Objetivo: revisar los comandos de creación y destrucción de bases de datos, tablas y registros en MySQL.

Con toda nuestra ilusión y repletos de esperanza, creamos una base de datos:

mysql> CREATE DATABASE circunstancias;
Query OK, 1 row affected (0.01 sec)

Una más en la familia:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cdcol              |
| circunstancias     |
| mysql              |
| performance_schema |
| phpmyadmin         |
| test               |
| webauth            |
+--------------------+
8 rows in set (0.01 sec)

Para trabajar con ella, primero la seleccionamos:

mysql> USE circunstancias;
Database changed

Dándole sentido a nuestra existencia, poblamos la incipiente base de datos con tablas a doquier:

mysql> CREATE TABLE anhelos
    -> (
    -> deseo VARCHAR(50),
    -> fecha DATE
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLE objetivos
    -> (
    -> objetivo VARCHAR(50),
    -> fecha DATE
    -> );
Query OK, 0 rows affected (0.05 sec)

Nos autocomplacemos contemplando la estructura de nuestras posesiones:

mysql> DESC anhelos;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| deseo | varchar(50) | YES  |     | NULL    |       |
| fecha | date        | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.02 sec)

mysql> DESC objetivos;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| objetivo | varchar(50) | YES  |     | NULL    |       |
| fecha    | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

mysql> SHOW TABLES;
+--------------------------+
| Tables_in_circunstancias |
+--------------------------+
| anhelos                  |
| objetivos                |
+--------------------------+
2 rows in set (0.00 sec)

Y empezamos a coleccionar, a acumular datos sin ton ni son y nos engañamos creyendo que eso da sentido a nuestras vidas:

mysql> INSERT INTO anhelos VALUES
    -> ('Viajar a Marte', '2015-12-31'),
    -> ('Aprender la receta  de las patatas bravas', '2013-7-31');
Query OK, 2 rows affected (0.06 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM anhelos;
+-------------------------------------------+------------+
| deseo                                     | fecha      |
+-------------------------------------------+------------+
| Viajar a Marte                            | 2015-12-31 |
| Aprender la receta  de las patatas bravas | 2013-07-31 |
+-------------------------------------------+------------+
2 rows in set (0.01 sec)

Pero, ¿por qué engañarme? Nunca iré a Marte; nunca aprenderé la receta de la salsa de las patatas bravas.

Y nada es eterno. Ni nuestros datos:

mysql> DELETE FROM anhelos;
Query OK, 2 rows affected (0.05 sec)

mysql> SELECT * FROM anhelos;
Empty set (0.00 sec)

Ni nuestras tablas:

mysql> DROP TABLE anhelos;
Query OK, 0 rows affected (0.03 sec)

mysql> DROP TABLE objetivos;
Query OK, 0 rows affected (0.03 sec)

mysql> SHOW TABLES;
Empty set (0.00 sec)

Ni nuestra base de datos:

mysql> DROP DATABASE circunstancias;
Query OK, 2 rows affected (0.13 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cdcol              |
| mysql              |
| performance_schema |
| phpmyadmin         |
| test               |
| webauth            |
+--------------------+
7 rows in set (0.01 sec)

Ni nosotros mismos:

mysql> quit
Bye

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2012/12/mysql-polvo-somos-y-en-polvo-nos-convertiremos/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


¡Accede al índice con todos los artículos sobre MySQL!

MySQL – Creando la primera tabla

Ha llegado el momento, al fin, de un acontecimiento trascendental y que difícilmente se olvida: la creación de la primera tabla en MySQL.

Ya sabes que la información se organiza en estructuras denominadas tablas. Conceptualmente son como cualquier tipo de tabla con datos que ya conoces, con sus filas y columnas. En el mundo de las bases de datos a las columnas también se las conoce como campos, y a las filas como registros.

El diseño correcto de las tablas y de las relaciones entre ellas es una habilidad crítica en el mundo de las bases de datos relacionales. Factores como la agilidad, usabilidad o la integridad de una base de datos están supeditados a unas tablas bien diseñadas.

Una base de datos no es más que un modelo que trata de abstraer una realidad determinada. Todo el tiempo que inviertas planificando, analizando y diseñando ese modelo será siempre poco.

Dejaremos las cuestiones de optimización de diseño para cuando hayamos presentado todas las herramientas. Vamos a crear hoy una simple tabla para almacenar datos personales. En el camino presentaremos el tipo de datos VARCHAR y aprenderemos a mostrar la estructura de nuestra tabla recién creada.

Para crear una tabla primero, obviamente, deberás haber creado la base de datos, el contenedor al cual pertenece (con el comando CREATE DATABASE que vimos en una entrega anterior). Pero no basta con que la base de datos exista; además, deberás indicar, con el comando USE, que vas a trabajar con esa base de datos en particular.

Vamos a crear una tabla, denominada personas, perteneciente a la base de datos contactos, y que contendrá tres campos: el nombre, los apellidos y un posible alias con el que podremos referirnos opcionalmente a esa persona.

Lo primero que debes determinar es el tipo de datos de cada campo y su tamaño máximo. En este sencillo ejemplo estamos ante tres campos que contendrán texto. Estimamos que para indicar el nombre nos baste con 20 caracteres, 40 para los apellidos y otros 20 para el alias.

Existe un tipo de datos en MySQL perfecto para este tipo de contenidos: VARCHAR.

VARCHAR permite campos de texto de hasta 65.532 caracteres (255 si estás usando una versión de MySQL anterior a la 5.0.3). Esos son muchos caracteres. Y lo bueno del tipo VARCHAR es que sólo va ocupar lo que realmente esté ocupando cada valor (salvo uno o dos bytes más que emplea para almacenar la longitud exacta).

No esperemos más, metámosle mano a la tabla ya.

Si la base de datos contactos no existe, créala con

CREATE DATABASE contactos;

O emplea cualquier otra que prefieras, da igual. Lo importante aquí es que aprendas ahora el comando para crear tablas, no resolver ninguna necesidad en concreto.

Indica que vas a operar sobre contactos con

USE contactos;

El comando para crear una tabla no podía ser otro: CREATE TABLE. Obsérvalo detalladamente:

mysql> CREATE TABLE personas
    -> (
    -> nombre VARCHAR(20),
    -> apellidos VARCHAR(40),
    -> alias VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.04 sec)

Un comando no termina hasta que no se incluye el punto y coma final. Por lo tanto, el efecto de ir pulsando ENTER es que simplemente abre una nueva línea (señalizada con el cursor ->), hecho que utilizo para dejar el comando con un aspecto más presentable que si lo hubiera escrito todo contiguo en una sola línea:

mysql> CREATE TABLE personas(nombre VARCHAR(20), apellidos VARCHAR(40), alias VARCHAR(20));

Es importante que observes algunos detalles…

En primer lugar, fíjate como todo el conjunto aparece entre un par de paréntesis.

Por otro lado, observa el uso de VARCHAR después del nombre del campo, indicando entre paréntesis el tamaño máximo que ocupará.

Date cuenta, también, de que cada pareja nombre – tipo, viene separada de la siguiente por una coma.

Y, finalmente, no te olvides del punto y coma final, tras el paréntesis de cierre de CREATE TABLE, indicando que tu comando está visto para sentencia.

Ya está la tabla creada. Pero ahora, ¿cómo visualizamos su estructura?

El comando MySQL para conocer la estructura de una tabla es DESCRIBE, que puedes acortar con DESC.

mysql> DESC personas;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| nombre    | varchar(20) | YES  |     | NULL    |       |
| apellidos | varchar(40) | YES  |     | NULL    |       |
| alias     | varchar(20) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

¡Qué buena pinta tiene esto! Vemos el nombre del campo y su tipo. El YES, en la columna Null, indica que puede aceptar valores nulos (es decir, que dejes el contenido en blanco). El NULL en Default corresponde al valor por defecto: si a la hora de introducir datos no especificas un contenido se sobreentiende que dejas el campo en blanco. Ya hablaremos de esto, así como de las otras columnas que aparecen, a su debido momento.

Y esto es todo por hoy, que no es poco. Puedes entretenerte creando otras tablas para afianzar estos conocimientos. O puedes usar alguna de las bases de datos que incluye ya MySQL y hurgar entre la estructura de sus tablas con el comando DESCRIBE.

Javier Montero Gabarró


MySQL – Creando la primera tabla


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Creación de nuestra primera base de datos en MySQL

En la anterior entrega de la serie dimos los primeros pasos firmes en el mundo de MySQL y aprendimos a iniciar y cerrar una sesión contra el servidor. Hoy, ya con más confianza, crearemos nuestra primera base de datos.

Si tienes cierto conocimiento sobre bases de datos relacionales (aunque sea gracias a Access) ya sabrás que una base de datos es un contenedor en el que almacenamos información relacionada y organizada en una serie de estructuras que son las tablas. Antes de que diseñemos las tablas en sí, es preciso que creemos ese contenedor.

Supongamos que deseamos organizar la biblioteca de casa. Queremos tener registro de todos nuestros libros y de todo lo que sucede con ellos. Deseamos poder efectuar búsquedas por autor o por categorías, saber su ubicación exacta, tener un control de los préstamos, o cualquier otra información que nos pudiera ser útil. El primer paso es crear la base de datos, ese contenedor que almacenará toda esa información.

Inicia sesión en MySQL tal como explicamos en el artículo anterior. Si todo va bien, deberás tener a tu disposición el prompt de MySQL.

mysql>

Para crear una base de datos SQL dispone del comando CREATE DATABASE, seguido por el nombre de la base de datos:

mysql> CREATE DATABASE biblioteca;
Query OK, 1 row affected (0.00 sec)

La segunda línea nos confirma que todo ha ido correctamente y nos devuelve incluso el tiempo que ha tardado en realizar la operación.

No es necesario escribir CREATE DATABASE con letras mayúsculas, pero hacerlo es un convenio común adoptado por todos los programadores SQL, diferenciando así de un vistazo, el comando del argumento. Si hubieses escrito create database, en su lugar, el resultado habría sido el mismo.

Sin embargo, mucho cuidado al escribir biblioteca. Dependiendo del sistema operativo que utilices, será sensible a mayúsculas o no. En Windows daría igual escribir BIBLIOTECA que biblioteca, pero en Linux se trataría de bases de datos diferentes.

Observa también el punto y coma con el el que finalizamos el comando. Si por algo se te olvida, no te preocupes, tendrás ocasión de introducirlo en la siguiente línea:

mysql> CREATE DATABASE biblioteca
    -> ;
Query OK, 1 row affected (0.00 sec)

A modo de ejemplo, vamos a crear una segunda base de datos para almacenar nuestros contactos personales:

mysql> CREATE DATABASE contactos;
Query OK, 1 row affected (0.00 sec)

El comando SHOW DATABASES nos devuelve un listado con todas las bases de datos existentes. Veámoslo en acción:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| biblioteca         |
| contactos          |
| mysql              |
+--------------------+
4 rows in set (0.00 sec)

Además de las bases de datos biblioteca y contactos nos encontramos con otras dos que han sido creadas por el sistema.

Vamos a eliminar ahora la base de datos contactos. El comando SQL que nos permite realizar esto es DROP DATABASE:

mysql> DROP DATABASE contactos;
Query OK, 0 rows affected (0.00 sec)

Comprobemos que ha desaparecido del listado:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| biblioteca         |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)

Fin de la excursión. Desconéctate del servidor con

mysql> exit
Bye

exit es un ejemplo de comando que no requiere punto y coma al final.

Ya hemos creado nuestra primera base de datos, biblioteca, contenedor en el que almacenaremos todos los objetos relacionados con nuestra colección de libros. Ya casi estamos en condiciones de crear las tablas, pero antes será necesario un paso previo…

Javier Montero Gabarró


Fecha de la última revisión: 30 de abril de 2012


Creación de nuestra primera base de datos en MySQL


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies