3.3.2 Создание таблицы
Как вы уже успели убедиться, создать базу данных было просто. Однако пока
что в ней ничего нет - в этом можно удостовериться при помощи команды SHOW
TABLES
:
mysql> SHOW TABLES;
Empty set (0.00 sec)
Гораздо труднее определиться со структурой своей базы, т.е. с тем, какие
могут понадобиться таблицы, и какие столбцы должны содержаться в каждой из
них.
Вам обязательно будет нужна таблица, содержащая по записи на каждое из
животных. Назвать ее можно pet
, и храниться в ней будут, как минимум,
имена. Но так как само по себе имя неинформативно, в таблице должны будут
присутствовать и другие данные. Например, если домашние животные есть
более чем у одного члена вашей семьи, в таблицу можно добавить и имя
владельца каждого животного. Кроме того, в базу стоит внести и
описательную информацию - например, вид и пол животного.
Но вот как быть с возрастом? Эта информация тоже может оказаться полезной,
но хранить такие данные в базе неудобно. Возраст со временем меняется, а
это значит, что придется довольно часто обновлять записи. Значительно
удобнее хранить фиксированные значения - например, даты рождения. В таком
случае возраст всегда можно получить, вычислив разницу между текущей датой
и датой рождения. В MySQL есть функции для арифметических действий над
данными, так что это совсем несложно. Хранение даты рождения имеет и
другие преимущества:
-
Базу данных можно использовать для выдачи напоминаний о приближающихся
днях рождения животных (не спешите улыбаться: та же задача может
возникнуть и при работе с деловой базой данных, которая должна уметь
напоминать о днях рождения клиентов, облегчая таким образом рассылку
поздравлений).
-
Возраст можно подсчитывать относительно любой даты, а не только для
текущей. Например, если записать в базу и дату смерти животного,
всегда можно будет узнать, сколько лет ему было на момент смерти.
Можно было бы придумать и еще какие-нибудь данные, которые неплохо было бы
хранить в таблице pet, но пока что мы ограничимся уже выбранными: именем
(name
), именем владельца (owner
), видом (species
), полом (sex
), датой
рождения (birth
) и датой смерти (death
).
При помощи команды CREATE TABLE
определим структуру новой таблицы:
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
Тип VARCHAR
отлично подойдет для хранения имени животного, имени владельца
и названия вида, так как длина данных этого типа может варьироваться.
Конечно, длины таких столбцов вовсе не должны совпадать и не должны быть
равны 20 - можно выбрать любое значение в пределах от 1 до 255 (если при
выборе длины столбца вы ошибетесь, и при работе с базой окажется, что
столбец маловат, можно будет исправить ошибку при помощи команды ALTER
TABLE
).
Пол животного можно обозначать несколькими способами, например буквами "m"
и "f", или словами male (мужской) и female (женский). С буквами "m" и "f"
будет проще.
Применение типа данных DATE
для хранения дат рождения и смерти вполне
очевидно.
Теперь, когда таблица создана, команда SHOW TABLES
должна вывести
следующее:
mysql> SHOW TABLES;
+---------------------+
| Tables in menagerie |
+---------------------+
| pet |
+---------------------+
Проверить, правильно была ли таблица создана в соответствии с планом,
можно при помощи команды 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
можно в любое время, например, если вы
забудете имена столбцов или типы, к которым они относятся.