Обзор типов данных: 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 — локальная установка не требуется.
Все уроки этого курса
- Что такое RDBMS и почему важны таблицы
- Первичные ключи и уникальность
- NULL: третье логическое значение
- Обзор типов данных: INT VARCHAR DATE BOOLEAN