Что такое таблицы и поля?sql-12

Таблицы в SQL

Таблица - это фундаментальная структура хранения данных в реляционных базах данных, представляющая собой двумерную матрицу из строк и столбцов.

Характеристики таблиц:

  • Имеют уникальное имя в пределах схемы базы данных
  • Состоят из строк (записей) и столбцов (полей)
  • Содержат данные об одном типе сущностей (например, "Пользователи", "Заказы")
  • Могут быть связаны с другими таблицами через отношения

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

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    department VARCHAR(50),
    salary DECIMAL(10,2)
);

Поля в SQL

Поле - это отдельный столбец в таблице, который хранит определенный атрибут данных. Каждое поле имеет:

  1. Имя - уникальное в пределах таблицы
  2. Тип данных - определяет вид хранимой информации
  3. Ограничения - правила для данных

Основные типы полей:

Тип данныхОписаниеПример
INTЦелое числоage INT
VARCHAR(n)Строка переменной длиныemail VARCHAR(100)
BOOLEANЛогическое значениеis_active BOOLEAN
DATEДатаbirth_date DATE
DECIMAL(p,s)Число с фиксированной точностьюprice DECIMAL(10,2)

Ограничения полей:

CREATE TABLE users (
    id INT PRIMARY KEY,                 -- Первичный ключ
    username VARCHAR(50) UNIQUE,        -- Уникальное значение
    email VARCHAR(100) NOT NULL,        -- Обязательное поле
    age INT CHECK (age >= 18),          -- Проверка условия
    created_at TIMESTAMP DEFAULT NOW()  -- Значение по умолчанию
);

Взаимосвязь таблиц

Таблицы могут быть связаны через:

  1. Первичные ключи (PRIMARY KEY) - уникальные идентификаторы
  2. Внешние ключи (FOREIGN KEY) - ссылки на первичные ключи других таблиц

Пример связанных таблиц:

CREATE TABLE departments (
    dept_id INT PRIMARY KEY,
    dept_name VARCHAR(100) NOT NULL
);

CREATE TABLE employees (
    emp_id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    dept_id INT REFERENCES departments(dept_id)  -- Внешний ключ
);

Практический пример

Рассмотрим пример базы данных интернет-магазина:

-- Таблица клиентов
CREATE TABLE customers (
    customer_id INT PRIMARY KEY AUTO_INCREMENT,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    registration_date DATE DEFAULT CURRENT_DATE
);

-- Таблица заказов
CREATE TABLE orders (
    order_id INT PRIMARY KEY AUTO_INCREMENT,
    customer_id INT NOT NULL,
    order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    total_amount DECIMAL(12,2) CHECK (total_amount > 0),
    status VARCHAR(20) DEFAULT 'NEW',
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

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

Процесс организации полей в таблицах для:

  • Устранения избыточности данных
  • Уменьшения аномалий при изменении
  • Повышения целостности данных

Пример нормализации:

-- Денормализованная таблица
CREATE TABLE denormalized_orders (
    order_id INT,
    customer_name VARCHAR(100),
    product_name VARCHAR(100),
    -- ... другие поля
);

-- Нормализованные таблицы
CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    name VARCHAR(100)
);

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    name VARCHAR(100)
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT REFERENCES customers(customer_id)
);

CREATE TABLE order_items (
    order_id INT REFERENCES orders(order_id),
    product_id INT REFERENCES products(product_id),
    quantity INT
);

Резюмируем

Таблицы - это:

  • Основные структурные единицы реляционных БД
  • Организованные наборы данных в виде строк и столбцов
  • Средства для хранения информации о сущностях

Поля - это:

  • Отдельные атрибуты таблицы
  • Столбцы с определенным типом данных
  • Элементы, определяющие структуру хранения информации

Ключевые принципы работы с таблицами и полями:

  1. Каждая таблица должна иметь первичный ключ
  2. Поля должны иметь подходящие типы данных
  3. Следует использовать ограничения для сохранения целостности
  4. Нормализация помогает избежать дублирования данных
  5. Связи между таблицами реализуются через ключи

Правильное проектирование таблиц и полей - основа эффективной и надежной базы данных.