Criar o banco de dados é a parte fácil, mas neste ponto ele
está vazio, como o SHOW TABLES
mostrará:
mysql> SHOW TABLES;
Empty set (0.00 sec)
A parte mais difícil é decidir qual a estrutura que seu banco de dados deve ter: quais tabelas você precisará e que colunas estarão em cada uma delas.
Você irá precisar de uma tabela para guardar um registro para
cada um de seus animais de estimação. Esta tabela pode ser
chamada pet
, e ela deve conter, pelo menos, o
nome de cada animal. Como o nome por si só não é muito
interessante, a tabela deverá conter outras informações. Por
exemplo, se mais de uma pessoa na sua família também tem
animais, você pode desejar listar cada dono. Você pode também
desejargravar algumas informações descritivas básicas como
espécie e sexo.
Que tal a idade? Pode ser do interesse, mas não é uma boa coisa para se armazenar em um banco de dados. A idade muda à medida em que o tempo passa, o que significa que você sempre terá de atualizar seus registros. Em vez disso, é melhor armazenar um valor fixo como a data de nascimento. Então, sempre que você precisar da idade, basta você calculá-la como a diferença entre a data atual e a data de aniversário. O MySQL fornece funções para fazer aritmética de datas, então isto não é difícil. Armazenando datas de aniversário no lugar da idade também oferece outras vantagens:
Você pode usar o banco de dados para tarefas como gerar lembretes para aniversários que estão chegando. (Se você pensa que este tipo de query é algo bobo, perceba que é a mesma questão que você perguntar no contexto de um banco de dados comercial para identificar clientes para quais você precisará enviar cartão de aniversário, para um toque pessoal assistido pelo computador.)
Você pode calcular a idade em relação a outras datas diferente da data atual. Por exemplo, se você armazenar a data da morte no banco de dados, você poderá facilmente calcular qual a idade que o bicho tinha quando morreu.
Você provavelmente pode pensar em outros tipos de informações
que poderão ser úteis na tabela pet
, mas as
identificadas até o momento são suficientes por agora:
nome(name), dono(owner), espécie(species), sexo(sex), data de
nascimento(birth) e data da morte(death).
Utilize a senteça CREATE TABLE
para
especificar o layout de sua tabela:
mysql>CREATE TABLE pet (nome VARCHAR(20), owner VARCHAR(20),
->species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR
é uma boa escolha para os campos
name
, owner
, e
species
porque os valores da coluna são de
tamanho variável. Os tamanhos destas colunas não precisam
necessáriamente de ser os mesmos e não precisam ser
20
. Você pode escolher qualquer tamanho de
1
a 255
, o que você achar
melhor. (Se você não fizer uma boa escolha e depois precisar
de um campo maior, o MySQL fornece o comando ALTER
TABLE
.)
O sexo dos animais podem ser representados em várias formas,
por exemplo, "m"
e "f"
ou
mesmo "macho"
e "fêmea"
.
É mais simples usar os caracteres "m"
e
"f"
.
O uso do tipo de dados DATE
para as colunas
birth
e death
são
obviamente a melhor escolha.
Agora que você criou uma tabela, a instrução SHOW
TABLES
deve produzir alguma saída:
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| pet |
+---------------------+
Para verificar se sua tabela foi criada da forma que você
esperava, utilize a instrução 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 | |
+---------+-------------+------+-----+---------+-------+
Você pode usar DESCRIBE
a qualquer hora, por
exemplo, se você esquecer os nomes das colunas na sua tabela ou
de que tipos elas têm.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.