← Назад к вопросам

Что такое таблица в SQL?

1.3 Junior🔥 61 комментариев
#SQL и базы данных

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Таблица в SQL: Основная единица хранения данных

Определение

Таблица в SQL — это основная структура хранения данных в реляционной базе данных, представляющая собой двумерное хранилище в виде сетки строк (records) и столбцов (columns/fields). Каждая таблица содержит информацию об одной сущности или объекте.

Структура таблицы

┌─────────┬──────────┬─────────┐
│ user_id │ name     │ email   │  ← Столбцы (columns)
├─────────┼──────────┼─────────┤
│ 1       │ Иван     │ ivan@...
│ 2       │ Мария    │ maria@...
│ 3       │ Петр     │ petr@...
└─────────┴──────────┴─────────┘
      ↑
    Строки (rows)

Компоненты таблицы

Столбцы (Columns)

  • Определяют структуру данных
  • Имеют тип данных (INT, VARCHAR, DATE, BOOLEAN и т.д.)
  • Имеют имя и ограничения (NOT NULL, UNIQUE, DEFAULT)
  • Пример: user_id (INT), name (VARCHAR), created_at (TIMESTAMP)

Строки (Rows)

  • Это отдельные записи данных
  • Содержат значения для каждого столбца
  • Каждая строка представляет один объект/сущность

Первичный ключ (Primary Key)

  • Уникально идентифицирует каждую строку
  • Не может быть NULL
  • Обычно это user_id, product_id, transaction_id

Пример создания таблицы

CREATE TABLE users (
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    age INT CHECK (age >= 18),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    is_active BOOLEAN DEFAULT TRUE
);

Типы данных в таблицах

ТипПримерПрименение
INT, BIGINT42, 1000000Числовые ID, количества
VARCHAR(n)"Иван"Текст переменной длины
DECIMAL(10,2)99.99Деньги, точные расчёты
BOOLEANtrue/falseФлаги, статусы
DATE2024-01-15Даты
TIMESTAMP2024-01-15 14:30:00Время события
JSON{"key": "value"}Гибкие данные

Основные операции с таблицами

INSERT — добавление строк

INSERT INTO users (name, email, age)
VALUES (Иван, ivan@mail.ru, 25);

SELECT — получение данных

SELECT user_id, name, email FROM users WHERE age > 30;

UPDATE — изменение данных

UPDATE users SET is_active = FALSE WHERE age > 65;

DELETE — удаление данных

DELETE FROM users WHERE user_id = 5;

Связи между таблицами

Таблицы редко существуют отдельно. Обычно они связаны через внешние ключи (Foreign Keys):

CREATE TABLE orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    order_date TIMESTAMP,
    amount DECIMAL(10,2),
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);

Запрос с объединением таблиц:

SELECT u.name, COUNT(o.order_id) as total_orders
FROM users u
LEFT JOIN orders o ON u.user_id = o.user_id
GROUP BY u.name;

Индексы для оптимизации

Индекс ускоряет поиск данных:

CREATE INDEX idx_user_email ON users(email);
CREATE UNIQUE INDEX idx_unique_email ON users(email);

После индексирования SELECT по email работает намного быстрее.

Нормализация таблиц

Плохо — всё в одной таблице:

users: user_id | name | city_name | city_population

Хорошо — разделено по сущностям:

users: user_id | name | city_id
cities: city_id | city_name | population

Это предотвращает дублирование и облегчает обновление данных.

Применение для Product Analyst

Примеры таблиц в аналитике:

  • events — логирование действий пользователей
  • users — информация о пользователях
  • transactions — платежи и покупки
  • products — каталог товаров
  • sessions — сессии пользователей

Типовые запросы Product Analyst:

-- Топ товаров по продажам
SELECT p.name, COUNT(t.transaction_id) as sales
FROM transactions t
JOIN products p ON t.product_id = p.product_id
GROUP BY p.name
ORDER BY sales DESC
LIMIT 10;

-- Когортный анализ
SELECT 
    DATE_TRUNC(month, u.created_at) as cohort,
    COUNT(u.user_id) as new_users
FROM users u
GROUP BY cohort;

Итог

Таблица — это фундамент реляционной базы данных. Она организует данные в структурированный формат, который можно легко запрашивать, фильтровать и анализировать. Понимание структуры таблиц — базовый навык для любого аналитика.

Что такое таблица в SQL? | PrepBro