0Pricing
SQL Academy · Урок

Обзор типов данных: INT VARCHAR DATE BOOLEAN

Изучите основные типы данных SQL: целые числа, varchar/text, даты и временные метки, логические значения и десятичные числа, а также научитесь выбирать подходящий тип для каждого столбца

«Обзор типов данных: INT VARCHAR DATE BOOLEAN» — бесплатный урок SQL Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения SQL Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс SQL Academy содержит 4 уроков всего.

Почему типы важны

У каждого столбца есть фиксированный тип. Тип определяет:

  • Какие значения допустимы
  • Сколько места занимает каждая строка
  • Какие операторы и функции применимы
  • Как планировщик выбирает индексы и соединения

Целочисленные типы

В PostgreSQL есть три размера целых чисел:

SMALLINT  -- 2 bytes,  -32768 to 32767
INTEGER   -- 4 bytes,  ±2.1 billion       (alias: INT)
BIGINT    -- 8 bytes,  ±9.2 quintillion

-- Auto-incrementing variants:
SMALLSERIAL  BIGSERIAL  SERIAL

Числовой тип / десятичные числа

Для денежных значений и точных десятичных чисел используйте NUMERIC(precision, scale) — никогда не используйте FLOAT.

CREATE TABLE invoices (
  id BIGSERIAL PRIMARY KEY,
  amount NUMERIC(12, 2) NOT NULL,   -- up to 10 digits + 2 decimals
  tax_rate NUMERIC(5, 4) NOT NULL   -- 0.0875 = 8.75%
);

FLOAT и NUMERIC

REAL (4 байта) и DOUBLE PRECISION (8 байт) являются неточными типами: они округляют двоичные дроби. Подходят для научных расчётов, но ужасны для денег.

-- Inexact:
SELECT 0.1::FLOAT + 0.2::FLOAT;   -- 0.30000000000000004

-- Exact:
SELECT 0.1::NUMERIC + 0.2::NUMERIC;  -- 0.3

Текстовые типы: VARCHAR и TEXT

В PostgreSQL есть два основных текстовых типа:

-- VARCHAR(n) — variable-length, max n characters
email VARCHAR(255)

-- TEXT — variable-length, no declared limit
description TEXT

-- In PostgreSQL both have the same performance.
-- VARCHAR(n) just adds a length check.
-- CHAR(n) (fixed-length, blank-padded) — avoid.

Дата и время

Используйте типы даты и времени — никогда не храните даты как строки:

DATE         -- 2024-03-15
TIME         -- 14:30:00
TIMESTAMP    -- 2024-03-15 14:30:00      (no time zone)
TIMESTAMPTZ  -- 2024-03-15 14:30:00+02   (recommended)
INTERVAL     -- 1 day, 3 hours

-- Prefer TIMESTAMPTZ unless you have a strong reason not to.

Логический тип

BOOLEAN хранит значения TRUE, FALSE или NULL.

CREATE TABLE tasks (
  id BIGSERIAL PRIMARY KEY,
  done BOOLEAN NOT NULL DEFAULT false
);

SELECT * FROM tasks WHERE done;        -- shorthand for done = true
SELECT * FROM tasks WHERE NOT done;

UUID

Для глобально уникальных идентификаторов:

CREATE TABLE api_keys (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id BIGINT NOT NULL,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

JSON и JSONB

Для документов с частично структурированными данными:

-- JSON   — text, preserves whitespace, no index
-- JSONB  — binary, deduplicated keys, indexable with GIN

CREATE TABLE events (
  id BIGSERIAL PRIMARY KEY,
  payload JSONB NOT NULL
);

Массивы

Столбцы PostgreSQL могут быть массивами любого базового типа:

CREATE TABLE posts (
  id BIGSERIAL PRIMARY KEY,
  title TEXT NOT NULL,
  tags TEXT[] NOT NULL DEFAULT '{}'
);

INSERT INTO posts (title, tags) VALUES
  ('Hello', ARRAY['sql', 'intro']);

SELECT * FROM posts WHERE 'sql' = ANY(tags);

Выбор подходящего типа

Практические правила:

  • Деньги → NUMERIC (никогда не используйте FLOAT)
  • Идентификаторы → BIGSERIAL или UUID
  • Даты → TIMESTAMPTZ для событий, DATE для календарных дней
  • Короткие коды → VARCHAR(n); длинный текст → TEXT
  • Флаги → BOOLEAN

Повторение

Выбирайте самый узкий подходящий тип.

  • Правильные типы = меньшие индексы, более точная статистика и меньше ошибок
  • NUMERIC для точных десятичных чисел
  • TIMESTAMPTZ для временных меток событий
  • Не храните типизированные данные как строки — Вы потеряете проверку и индексацию

Быстрая проверка

Вам нужно сохранить цену товара. Какой тип следует выбрать?

Часто задаваемые вопросы

Урок «Обзор типов данных: INT VARCHAR DATE BOOLEAN» бесплатный?

Да — полный текст урока «Обзор типов данных: INT VARCHAR DATE BOOLEAN» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс SQL Academy, подпишись на CoddyKit PRO. Курс SQL Academy содержит 4 уроков всего.

Чему я научусь в уроке «Обзор типов данных: INT VARCHAR DATE BOOLEAN»?

Изучите основные типы данных SQL: целые числа, varchar/text, даты и временные метки, логические значения и десятичные числа, а также научитесь выбирать подходящий тип для каждого столбца Ты практикуешь SQL Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать SQL Academy?

Предыдущий опыт не требуется. SQL Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Обзор типов данных: INT VARCHAR DATE BOOLEAN»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке SQL Academy?

Да. Каждый урок SQL Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Что такое RDBMS и почему важны таблицы
  2. Первичные ключи и уникальность
  3. NULL: третье логическое значение
  4. Обзор типов данных: INT VARCHAR DATE BOOLEAN
← Назад к SQL Academy