Это та лекция, с которой вполне можно было начать наш курс. Но тогда ваши первые задачи и лекции были бы очень скучными. Если бы вы решили поработать один день строителем, с чего бы вы хотели начать: изучить типы и формы кирпичей или порулить башенным краном 30 минут? То-то и оно :)
Ученик — это не сосуд, который нужно наполнить, это факел, который нужно зажечь (и не сжечь при этом)! Я стараюсь не рассказать вам все что знаю, а сделать сделать это так, чтобы вам было интересно. И именно сейчас самое время начать знакомиться с типами данных.
Тип данных в PostgreSQL — это указание того, какого рода информация будет храниться в определённом столбце таблицы. Например, числа, текст или даты. Это чуть похоже на то, как вы выбираете коробку для хранения: маленькая для мелочей, большая для ботинок, прозрачная для ниток, чтобы сразу понимать, что где лежит.
Пример:
- Если вы хотите хранить возраст человека, вам подойдёт числовой тип данных.
- Если нужно сохранить имя, вам понадобятся текстовые типы данных.
- А чтобы отметить дату регистрации, логично использовать тип данных даты.
Зачем нужны типы данных?
Типы данных помогают:
- Ограничивать вводимую информацию. Например, вы не сможете вставить текст, где ожидается число.
- Структурировать данные. Четко понимая, что в каком столбце находится, легче строить запросы и анализировать информацию.
- Экономить ресурсы. Используя правильные типы, вы уменьшаете потребление памяти.
- Сохранять точность. Например, финансовые расчёты требуют чисел с фиксированной запятой.
Пример для вдохновения
Представьте себе таблицу для хранения информации о студентах:
id |
name |
age |
enrollment_date |
|---|---|---|---|
| 1 | Otto Mars | 22 | 2023-01-15 |
| 2 | Anna Song | 19 | 2023-02-10 |
Здесь id — это уникальный идентификатор (число), name — текст, age — число возраста, а enrollment_date — дата зачисления студента. Все эти данные имеют разные типы данных, потому что они описывают разные аспекты объекта.
Классификация типов данных в PostgreSQL
PostgreSQL обладает невероятной гибкостью в работе с типами данных. Ниже приведена краткая классификация.
Основные категории типов данных:
Числовые типы
- Для хранения целых чисел (например, количество, идентификатор) и чисел с дробной частью (например, деньги).
- Примеры:
INTEGER,NUMERIC,FLOAT.
Текстовые типы
- Для хранения текстов и строк (например, имена, адреса).
- Примеры:
CHAR,VARCHAR,TEXT.
Логический тип
- Для хранения логических значений
TRUE(истина) илиFALSE(ложь). - Пример:
BOOLEAN.
- Для хранения логических значений
Типы для работы с датами и временем
- Для хранения дат, времени или их комбинации.
- Примеры:
DATE,TIME,TIMESTAMP.
Специальные типы
- Уникальные идентификаторы, JSON-объекты, массивы и многое другое.
- Примеры:
UUID,JSONB,ARRAY.
Особенности типов данных в PostgreSQL
PostgreSQL поддерживает огромное разнообразие встроенных типов и позволяет создавать кастомные (пользовательские) типы данных. Это делает работу с этой СУБД особенно мощной для сложных систем, где нужны специфические требования к данным.
Интересно, что в PostgreSQL вы можете даже хранить географические данные или выполнять запросы вроде "Найди кафе в радиусе 500 метров от меня". Для таких задач используются специальные типы данных.
Что даёт явное указание типов данных?
Иногда кажется, что было бы удобно сделать все колонки в таблице текстовыми — ведь текст может хранить всё. Но это плохая практика! Указание подходящих типов данных позволяет:
Упрощать запросы. Если PostgreSQL знает, что в колонке только числа, он быстрее выполняет подсчёты, например SUM().
Избегать ошибок. Представьте, что случайно сохранили "тридцать два" вместо 32 в столбце, где хранятся возраста. Ловить такие ошибки будет крайне сложно.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ