Таблица - это фундаментальная структура хранения данных в реляционных базах данных, представляющая собой двумерную матрицу из строк и столбцов.
Пример создания таблицы:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
department VARCHAR(50),
salary DECIMAL(10,2)
);
Поле - это отдельный столбец в таблице, который хранит определенный атрибут данных. Каждое поле имеет:
Тип данных | Описание | Пример |
---|---|---|
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() -- Значение по умолчанию
);
Таблицы могут быть связаны через:
Пример связанных таблиц:
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
);
Таблицы - это:
Поля - это:
Ключевые принципы работы с таблицами и полями:
Правильное проектирование таблиц и полей - основа эффективной и надежной базы данных.