Создание таблиц: CREATE TABLE, определение столбцов и типов данных

Введение: Почему CREATE TABLE — это фундамент SQL 🏗️

Создание таблиц — это первый шаг к структурированному хранению данных. Представьте, что таблица — это Excel-лист с чётко заданными правилами: именами столбцов, типами данных и ограничениями. Команда CREATE TABLE позволяет определить эту структуру программно.


Синтаксис CREATE TABLE: Базовая структура 🛠️

Минимальный запрос выглядит так:

CREATE TABLE имя_таблицы (
    столбец1 тип_данных,
    столбец2 тип_данных,
    ...
);

Пример: Создадим таблицу users для хранения данных о пользователях.

CREATE TABLE users (
    user_id INT,
    name VARCHAR(50),
    email VARCHAR(100),
    registration_date DATE
);

Разберём детали:

  • user_id — целое число (идеально для ID).
  • name и email — строки с ограничением длины (VARCHAR).
  • registration_date — дата без времени.

Основные типы данных: Выбираем правильно 🔍

Числовые типы

  • INT — целые числа (например, возраст или количество).
  • DECIMAL(p, s) — числа с фиксированной точностью (цена: DECIMAL(10, 2)).
  • FLOAT — числа с плавающей точкой (научные данные).

Строковые типы

  • VARCHAR(n) — строка переменной длины (до n символов).
  • CHAR(n) — строка фиксированной длины (например, коды стран CHAR(2)).
  • TEXT — длинный текст (описания, статьи).

Дата и время

  • DATE — дата (год-месяц-день).
  • TIME — время (часы:минуты:секунды).
  • TIMESTAMP — дата и время (например, 2023-10-05 14:30:00).

Продвинутые примеры: Добавляем ограничения 🚦

Ограничения (CONSTRAINTS) — это правила для данных. Самые полезные:

  • PRIMARY KEY — уникальный идентификатор.
  • NOT NULL — запрет на пустые значения.
  • DEFAULT — значение по умолчанию.
  • UNIQUE — уникальность значений в столбце.

Пример: Улучшенная версия таблицы users.

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    registration_date DATE DEFAULT CURRENT_DATE,
    is_active BOOLEAN DEFAULT TRUE
);

Что изменилось:

  • user_id — теперь первичный ключ.
  • name — обязательно к заполнению.
  • email — уникален для каждого пользователя.
  • registration_date — по умолчанию сегодняшняя дата.
  • is_active — флаг активности (по умолчанию TRUE).

Реальные сценарии: Таблицы для интернет-магазина 🛒

Пример: Создаём связанные таблицы products и orders.

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10, 2) CHECK (price > 0),
    category VARCHAR(50)
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    user_id INT REFERENCES users(user_id),
    product_id INT REFERENCES products(product_id),
    quantity INT DEFAULT 1,
    order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Особенности:

  • products.price — цена не может быть отрицательной (CHECK).
  • orders.user_id и orders.product_id — внешние ключи (REFERENCES).
  • orders.quantity — количество товара (по умолчанию 1).

Частые ошибки и как их избежать ⚠️

  1. Слишком длинные VARCHAR
    Не используйте VARCHAR(255) «на всякий случай». Оптимизируйте длину (VARCHAR(50) для имени).

  2. Игнорирование PRIMARY KEY
    Всегда добавляйте первичный ключ — это ускорит поиск и избежит дублей.

  3. Неправильные типы данных
    Например, не храните даты как строки — используйте DATE или TIMESTAMP.

  4. Отсутствие индексов
    Для часто запрашиваемых столбцов (например, email) добавьте UNIQUE или индекс (но это тема отдельного урока 😉).


Итог: Ваш первый шаг к структурированным данным 🎯

  • CREATE TABLE — это каркас вашей базы данных.
  • Типы данных (INT, VARCHAR, DATE) определяют, что можно хранить.
  • Ограничения (PRIMARY KEY, NOT NULL) защищают от некорректных данных.

Попробуйте прямо сейчас: Создайте таблицу tasks с полями task_id, description, deadline и status. Добавьте первичный ключ и значение по умолчанию для status!

Скрыть рекламу навсегда

📘 VK Видео — обучение без ограничений

Все уроки доступны без VPN, без блокировок и зависаний.

Можно смотреть с телефона, планшета или компьютера — в любое время.

▶️ Смотреть на VK Видео