Це та сама лекція, з якої цілком можна було б почати наш курс. Але тоді твої перші задачі й лекції були б дуже нудними. Якщо б ти вирішив попрацювати один день будівельником, з чого б ти хотів почати: вивчити типи й форми цегли чи порулити баштовим краном 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 у стовпці, де зберігаються віки. Ловити такі помилки буде дуже складно.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ