Spec-Zone.ru › MySQL 5.7

3.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 см. в Главе 11, Типы данных.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/creating-tables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API