Creando una tabla
Crear la base de datos es la parte
más fácil, pero en este momento la
base de datos está vacía, como lo
indica el comando SHOW TABLES:
mysql> SHOW TABLES;
Empty set (0.00 sec)La parte un tanto complicada
es decidir la estructura que debe tener nuestra
base de datos: qué tablas se necesitan y
qué columnas estarán en cada tabla.
En principio, necesitamos una tabla
que contenga un registro para cada una de nuestras
mascotas.
|
Ésta puede ser una tabla llamada
mascotas, y debe contener por lo menos el nombre de cada
uno de nuestros animalitos. Ya que el nombre en sí
no es muy interesante, la tabla debe contener alguna otra
información. Por ejemplo, si más de una
persona en nuestra familia tiene una mascota, es probable
que tengamos que guardar la información acerca
de quien es el dueño de cada mascota. Así
mismo, también sería interesante contar
con alguna información más descriptiva tal
como la especie, y el sexo de cada mascota.
¿Y que sucede con la edad?. Esto
puede ser también de interés, pero no es
una buena idea almacenar este dato en la base de datos.
La edad cambia conforme pasa el tiempo, lo cual significa
que debemos de actualizar los registros frecuentemente.
En vez de esto, es una mejor idea guardar un valor fijo,
tal como la fecha de nacimiento. Entonces, cuando necesitemos
la edad, la podemos calcular como la diferencia entre
la fecha actual y la fecha de nacimiento. MySQL proporciona
funciones para hacer operaciones entre fechas, así
que no hay ningún problema.
Al almacenar la fecha de nacimiento en
lugar de la edad tenemos algunas otras ventajas:
Podemos usar la base de datos para tareas
tales como generar recordatorios para cada cumpleaños
próximo de nuestras mascotas. Podemos calcular
la edad en relación a otras fechas que la fecha
actual. Por ejemplo, si almacenamos la fecha en que murió
nuestra mascota en la base de datos, es fácil calcular
que edad tenía nuestro animalito cuando falleció.
Es probable que estemos pensando en otro tipo de información
que sería igualmente útil en la tabla "mascotas",
pero para nosotros será suficiente por ahora contar
con información de nombre, propietario, especie,
nacimiento y fallecimiento.
Usaremos la sentencia CREATE TABLE para
indicar como estarán conformados los registros
de nuestras mascotas.
mysql> CREATE TABLE mascotas(
-> nombre VARCHAR(20), propietario VARCHAR(20),
-> especie VARCHAR(20), sexo CHAR(1), nacimiento DATE,
-> fallecimento DATE);
Query OK, 0 rows affected (0.02 sec)
mysql>VARCHAR es una buena elección
para los campos nombre, propietario, y especie, ya que
los valores que almacenarán son de longitud variable.
No es necesario que la longitud de estas columnas sea
la misma, ni tampoco que sea de 20. Se puede especificar
cualquier longitud entre 1 y 255, lo que se considere
más adecuado. Si resulta que la elección
de la longitud de los campos que hemos hecho no resultó
adecuada, MySQL proporciona una sentencia ALTER TABLE
que nos puede ayudar a solventar este problema.
El campo sexo puede ser representado en
una variedad de formas, por ejemplo, "m" y "f",
o tal vez "masculino" y "femenino",
aunque resulta más simple la primera opción.
El uso del tipo de dato DATE para los campos
nacimiento y fallecimento debe de resultar obvio.
Ahora que hemos creado la tabla, la sentencia
SHOW TABLES debe producir algo como:
mysql> SHOW TABLES;
+---------------------+
| Tables_in_zoologico |
+---------------------+
| mascotas |
+---------------------+
1 row in set (0.00 sec)
mysql>Para verificar que la tabla fué
creada como nosotros esperabamos, usaremos la sentencia
DESCRIBE:
mysql> DESCRIBE mascotas;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| nombre | varchar(20) | YES | | NULL | |
| propietario | varchar(20) | YES | | NULL | |
| especie | varchar(20) | YES | | NULL | |
| sexo | char(1) | YES | | NULL | |
| nacimiento | date | YES | | NULL | |
| fallecimento | date | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
mysql>Podemos hacer uso de la sentencia
DESCRIBE en cualquier momento, por ejempo, si olvidamos
los nombres ó el tipo de las columnas en la tabla.
|