5.3.2 Создание таблицы
Создание базы данных — это простая часть, но на этом этапе она пуста, как говорит SHOW TABLES:
mysql> SHOW TABLES;
Empty set (0.00 sec)
Сложнее решить, какой должна быть структура вашей базы данных: какие таблицы вам нужны и какие столбцы должны быть в каждой из них.
Вам нужна таблица, которая содержит запись для каждого вашего домашнего животного. Ее можно назвать таблицей pet, и она должна, как минимум, содержать имя каждого животного. Поскольку само имя не очень интересно, таблица должна содержать другую информацию. Например, если в вашей семье больше одного человека держит домашних животных, вы можете указать владельца каждого животного. Вы также можете записать некоторые основные описательные данные, такие как вид и пол.
А как насчет возраста? Это может быть интересно, но хранить его в базе данных не стоит. Возраст меняется со временем, что означает, что вам придется часто обновлять свои записи. Вместо этого лучше хранить фиксированное значение, например, дату рождения. Затем, когда вам понадобится возраст, вы можете вычислить его как разницу между текущей датой и датой рождения. MySQL предоставляет функции для выполнения арифметических операций с датами, поэтому это несложно. Хранение даты рождения вместо возраста имеет и другие преимущества:
Вы можете использовать базу данных для задач, таких как создание напоминаний о предстоящих днях рождения домашних животных. (Если вам кажется, что этот тип запроса немного глуп, обратите внимание, что тот же вопрос можно задать в контексте бизнес-базы данных, чтобы определить клиентов, которым необходимо отправить поздравления с днем рождения на текущей неделе или месяце, для того, чтобы этот компьютерный помощник имел свой личный штрих.)
Вы можете рассчитать возраст по отношению к датам, отличным от текущей даты. Например, если вы храните дату смерти в базе данных, вы можете легко рассчитать, сколько лет было домашнему животному в момент смерти.
Вы, вероятно, можете придумать и другие типы информации, которые были бы полезны в таблице pet, но пока что приведенных достаточно: имя, владелец, вид, пол, дата рождения и смерть.
Используйте оператор CREATE TABLE для указания структуры вашей таблицы:
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
VARCHAR — хороший выбор для столбцов name, owner и species, так как значения столбцов различаются по длине. Длины в этих определениях столбцов могут быть разными и не должны быть 20. Обычно вы можете выбрать любую длину от 1 до 65535, что вам кажется наиболее разумным. Если вы сделаете неправильный выбор и позже потребуется более длинное поле, MySQL предоставляет оператор ALTER
TABLE.
Для представления пола в записях животных можно выбрать несколько типов значений, например, 'm' и 'f', или, возможно, 'male' и 'female'. Проще всего использовать одиночные символы 'm' и 'f'.
Использование типа данных DATE для столбцов birth и death — довольно очевидный выбор.
После создания таблицы 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 в любое время, например, если вы забудете имена столбцов в вашей таблице или какие у них типы.
Дополнительную информацию о типах данных MySQL см. в Главе 13, Типы данных.
© 2025 Oracle
Licensed under the GPLv2 License.