Создание таблиц: 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).
Частые ошибки и как их избежать ⚠️
-
Слишком длинные
VARCHAR
Не используйтеVARCHAR(255)«на всякий случай». Оптимизируйте длину (VARCHAR(50)для имени). -
Игнорирование
PRIMARY KEY
Всегда добавляйте первичный ключ — это ускорит поиск и избежит дублей. -
Неправильные типы данных
Например, не храните даты как строки — используйтеDATEилиTIMESTAMP. -
Отсутствие индексов
Для часто запрашиваемых столбцов (например,email) добавьтеUNIQUEили индекс (но это тема отдельного урока 😉).
Итог: Ваш первый шаг к структурированным данным 🎯
CREATE TABLE— это каркас вашей базы данных.- Типы данных (
INT,VARCHAR,DATE) определяют, что можно хранить. - Ограничения (
PRIMARY KEY,NOT NULL) защищают от некорректных данных.
Попробуйте прямо сейчас: Создайте таблицу tasks с полями task_id, description, deadline и status. Добавьте первичный ключ и значение по умолчанию для status!