Как создавать таблицы в MySQL


Существует два популярных типа баз данных: реляционные и нереляционные. Нереляционные предполагают отказ от табличной модели хранения. В них используется модель, которая оптимально подходит под конкретные требования типа хранимых данных. Так, в нереляционных БД данные могут храниться в виде пары «ключ — значение», JSON-файлов или графов.

Реляционные базы данных — это привычные нам таблицы с предопределёнными связями между данными. Информация хранится в строках и столбцах, и каждая строка содержит какие-то данные, относящиеся к одному объекту/сущности. Среди реляционных БД известны Oracle DB, PostgreSQL, MySQL и т. д. Давайте разберёмся, как создать MySQL таблицу, менять её и вносить данные.

Синтаксис CREATE TABLE

Перед созданием таблицы укажите базу данных, в которую она будет записана. Это делается командой USE:

USE name_database;

Для создания таблиц в MySQL используются особые запросы с указанием атрибутов таблицы. В этих запросах также описываются типы данных в атрибутах, их описание и ограничения. Самый распространённый способ создания таблиц MySQL с нуля — это с помощью инструкции CREATE TABLE. Вот пример, как создать таблицу MySQL:

CREATE TABLE Table_Name
(
    column_name_one column_type_one,
    column_name_two column_type_two,
    ...,
    column_name_X column_type_X,
);

Синтаксис простой. Table_Name — имя создаваемой таблицы (рекомендуем присваивать осмысленное имя), column_name — имя столбца, а column_type — тип данных, которые будут храниться в столбце.

Можно создать MySQL таблицу, скопировав уже существующую. Для этого используется сочетание CREATE TABLE и SELECT. Например, так: CREATE TABLE New_Table_Name [AS] SELECT * FROM Original_Table_Name;

Для переименования уже созданной таблицы используйте команду RENAME TABLE:

RENAME TABLE old_name TO new_name;

Дополнительные параметры таблиц

В описание иногда необходимо добавлять следующие параметры:

  • PRIMARY KEY — определяем колонку или множество колонок как первичный ключ.
  • AUTO_INCREMENT— определяем, что значение колонки при появлении в таблице новых записей автоматически увеличивается. В таблице можно задавать только одну AUTO_INCREMENT колонку.
  • UNIQUE — определяем, что все значения в колонке для всех записей должны быть уникальными.
  • NOT NULL — определяем, что значения в колонке не должны быть нулевыми (Null).
  • DEFAULT — задаём значения по умолчанию. Параметр не применим к типам BLOB, TEXT, GEOMETRY и JSON.

Названия таблиц и столбцов

Старайтесь присваивать осмысленные названия для таблиц и столбцов, тогда и вам, и другому разработчику даже через год будет понятно, где что находится. Использование транслита или стандартных имён вроде table1/table2 не приветствуется. А вот названия Users, Sales, Calls информативны и логичны — по ним легко определить, что за данные содержатся в таблице. Аналогичный подход рекомендуется и при переименовании столбцов. Максимальная длина названия — 64 символа.

Типы данных в MySQL

MySQL поддерживает работу с разными типами данных. Их можно разделить на числовые, символьные, бинарные и временные типы. Расскажем детальнее о каждом.

Числовые типы данных в MySQL

INT

К этому типу относятся  диапазон целочисленных значений от −2147483648 до 2147483647. Занимает в памяти 4 байта.

DECIMAL

Используется для хранения точных дробных чисел (число занимаемых в памяти байт зависит от выбранной точности). Может принимать два параметра DECIMAL(precision, scale). Этот тип рекомендуется для работы с  валютами и координатами.

TINYINT 

Используется для хранения целых чисел от −127 до 128. Занимает 1 байт памяти. Атрибут UNSIGNED позволяет запретить отрицательные значения.

BOOL 

Используется для однозначного ответа 0 или 1 на вопрос «false» или «true». Имеет синоним BOOLEAN.

FLOAT 

Используется для хранения дробных чисел с плавающей запятой (точкой) хранит до 24 знаков после запятой. Занимает 4 байта в памяти.

 

Символьные типы данных в MySQL

VARCHAR(N)

Используется для хранения текстовых данных переменной длины. Занимаемая память зависит от длины строки. Параметр N определяет максимальную длину строки.

CHAR(N)

Используется для хранения данных фиксированной длины. Каждая запись занимает ровно столько памяти, сколько необходимо для хранения строки длиной N. Параметр N определяет максимальную длину строки.

TEXT 

Используется для хранения текстовых данных объёмом до 65 KB

 

Временные типы данных в MySQL

DATE

Хранится только дата в диапазоне от 1000-01-01 по 9999-12-31 и формате 'YYYY-MM-DD'. Используется для хранения дат рождения, исторических дат, начиная с 11 века. Занимает 3 байта памяти.

TIME

Хранится только время в диапазоне от '-838:59:59.00' до '838:59:59.00' и формате  'hh:mm:ss'. Занимает 3 байта памяти.

DATETIME

Объединяет дату и время в диапазоне от 1001 по 9999 год в формате: 'YYYY-MM-DD hh:mm:ss'. Не зависит от часового пояса. Точность — до 1 секунды. Занимает 8 байт памяти.

TIMESTAMP

Хранит дату и время в диапазоне от '1970-01-01 00:00:01' до '2038-01-19 03:14:07' в виде количества секунд (и микросекунд). Занимает 4 байта памяти. Зависит от часового пояса.

 

Бинарные типы данных в MySQL

BLOB 

Используется для хранения в бинарном виде файлов, фото, документов, аудио и видеоконтента объёмом до 65 КБ.

LARGEBLOB 

Используется для хранения в бинарном виде файлов, фото, документов, аудио и видеоконтента объёмом до 4 ГБ.

 

Изменение структуры таблицы

Команда ALTER TABLE позволяет быстро добавить столбцы. Можно добавить одновременно несколько столбцов с разными данными. Вот пример, как добавить в MySQL столбцы с почтой возрастом, семейным статусом сотрудников:

ALTER TABLE Table_name
ADD email VARCHAR(50),
ADD age INT,
ADD has_family BOOLEAN;

Удаление таблицы

Для удаления таблицы используется оператор DROP TABLE. Эта процедура навсегда удаляет все хранящиеся в таблице данные, индексы, триггеры, ограничения и разрешения. Пример команды на удаление таблицы MySQL:

DROP TABLE Table_name;

Будьте осторожны с командой удаления таблицы — вернуть данные обратно без наличия бэкапов будет почти невозможно.


Полезный материал?
0
0
автор: Всеволод
опубликовано: 25.08.2022
Читайте нас: 
Последние статьи
Вверх!