La creación de la base de datos ha sido una tarea sencilla,
pero hasta ahora permanece vacía, como le muestra SHOW
TABLES
:
mysql> SHOW TABLES; Empty set (0.00 sec)
La parte difícil es decidir cómo debería ser la estructura de su base de datos: qué tablas necesitará, y qué columnas habrá en cada tabla.
Querrá una tabla para contener un registro por cada mascota.
Esta tabla puede llamarse pet
, y debería
contener, como mínimo, el nombre de cada animal. Dado que el
nombre no es muy relevante por sí mismo, tendría que tener
más información. Por ejemplo, si más de una persona en su
familia tendrá mascotas, querrá listar también el dueño de
cada animal. Y algunos otros datos descriptivos básicos, como
especie y sexo.
¿Qué hacer con la edad? Podría ser de interés, pero no es un buen dato para almacenar en una base de datos. La edad cambia a medida que pasa el tiempo, lo cual significa que debería actualizar la base de datos a menudo. En lugar de esto, es mejor almacenar un valor fijo, como la fecha de nacimiento. De este modo, cada vez que requiera saber la edad, podrá calcularla como la diferencia entre la fecha de nacimiento y la fecha actual. MySQL provee funciones para realizar cálculos con fechas, por lo que no es dificultoso. Almacenar la fecha de nacimiento en lugar de la edad tiene otras ventajas:
Puede usar la base de datos para tareas como generar recordatorios para los próximos cumpleaños de mascotas. (Si piensa que este tipo de consultas no es importante, considere que es lo mismo que haría en un contexto de base de datos de negocios para identificar aquellos clientes a los que habrá que enviar una tarjeta por su cumpleaños, para conseguir ese toque personal con la asistencia del ordenador).
Puede calcular edades en relación a otras fechas además de la actual. Por ejemplo, almacenar la fecha de muerte de una mascota le posibilita calcular la edad que tenía a ese momento.
Probablemente pensará en otros tipos de información que
resultarían útiles dentro de la tabla pet
pero los identificados hasta ahora son suficientes: name
(nombre), owner (propietario), species (especie), sex (sexo),
birth (nacimiento) y death (muerte).
Debe usar la sentencia CREATE TABLE
para
especificar la estructura de una tabla:
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
El tipo de dato VARCHAR
es una buena
elección para las columnas name
,
owner
, y species
porque
los datos que allí se almacenan no son de longitud uniforme. En
realidad no es necesario que todas estas columnas tengan la
misma longitud ni que ésta sea 20
. En MySQL
5.0.3 y versiones posteriores, normalmente se puede adoptar
cualquier longitud entre 1
y
65535
, según lo que se crea más razonable.
(Nota: Anteriormente a MySQL
5.0.3, el límite de longitud era 255.) Si en el futuro debiera
aumentar la longitud de estos campos, MySQL tiene la sentencia
ALTER TABLE
.
Hay varios tipos de datos que podrían usarse para representar
el sexo en los registros de animales, tal como
'm'
y 'f'
, o
'male'
(masculino) y
'female'
(femenino). Lo más simple es usar
los caracteres 'm'
y 'f'
.
Es obvio el uso del tipo de dato DATE
para
las columnas birth
y
death
.
Luego de crear una tabla, SHOW TABLES
debería producir una salida:
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | pet | +---------------------+
Para verificar que la tabla ha sido creada en la forma esperada,
utilice la sentencia DESCRIBE
:
mysql> DESCRIBE pet; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | | species | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | death | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+
DESCRIBE
puede ser utilizada en cualquier
momento, por ejemplo, si olvida los nombres o el tipo de dato de
las columnas de la tabla.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.